{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Backend: FastAPI", "type": "debugpy", "request": "launch", "module": "uvicorn", "args": [ "app.app:app", "--reload", "--host", "0.0.0.0", "--log-level", "info", "--reload-dir", "app" ], "console": "integratedTerminal", "justMyCode": false, "cwd": "${workspaceFolder}/surfsense_backend", "python": "${command:python.interpreterPath}" }, { "name": "Backend: FastAPI (No Reload)", "type": "debugpy", "request": "launch", "program": "${workspaceFolder}/surfsense_backend/main.py", "console": "integratedTerminal", "justMyCode": false, "cwd": "${workspaceFolder}/surfsense_backend", "python": "${command:python.interpreterPath}" }, { "name": "Backend: FastAPI (main.py)", "type": "debugpy", "request": "launch", "program": "${workspaceFolder}/surfsense_backend/main.py", "console": "integratedTerminal", "justMyCode": false, "cwd": "${workspaceFolder}/surfsense_backend" }, { "name": "Frontend: Next.js", "type": "node", "request": "launch", "cwd": "${workspaceFolder}/surfsense_web", "runtimeExecutable": "npm", "runtimeArgs": ["run", "dev"], "console": "integratedTerminal", "serverReadyAction": { "pattern": "- Local:.+(https?://.+)", "uriFormat": "%s", "action": "debugWithChrome" } }, { "name": "Frontend: Next.js (Server-Side Debug)", "type": "node", "request": "launch", "cwd": "${workspaceFolder}/surfsense_web", "runtimeExecutable": "npm", "runtimeArgs": ["run", "debug:server"], "console": "integratedTerminal", "serverReadyAction": { "pattern": "- Local:.+(https?://.+)", "uriFormat": "%s", "action": "debugWithChrome" } }, { "name": "Celery: Worker", "type": "debugpy", "request": "launch", "module": "celery", "args": [ "-A", "app.celery_app:celery_app", "worker", "--loglevel=info", "--queues=surfsense,surfsense.connectors,surfsense-dev,surfsense-dev.connectors", "--pool=solo" ], "console": "integratedTerminal", "justMyCode": false, "cwd": "${workspaceFolder}/surfsense_backend", "python": "${command:python.interpreterPath}" }, { "name": "Celery: Beat Scheduler", "type": "debugpy", "request": "launch", "module": "celery", "args": [ "-A", "app.celery_app:celery_app", "beat", "--loglevel=info" ], "console": "integratedTerminal", "justMyCode": false, "cwd": "${workspaceFolder}/surfsense_backend", "python": "${command:python.interpreterPath}" } ], "compounds": [ { "name": "Full Stack: Backend + Frontend + Celery", "configurations": [ "Backend: FastAPI", "Frontend: Next.js", "Celery: Worker", "Celery: Beat Scheduler" ], "stopAll": true, "presentation": { "hidden": false, "group": "Full Stack", "order": 1 } }, { "name": "Full Stack: Backend + Frontend", "configurations": [ "Backend: FastAPI", "Frontend: Next.js" ], "stopAll": true, "presentation": { "hidden": false, "group": "Full Stack", "order": 2 } }, { "name": "Full Stack: Backend (No Reload) + Frontend + Celery", "configurations": [ "Backend: FastAPI (No Reload)", "Frontend: Next.js", "Celery: Worker", "Celery: Beat Scheduler" ], "stopAll": true, "presentation": { "hidden": false, "group": "Full Stack", "order": 3 } }, { "name": "Full Stack: Backend (No Reload) + Frontend", "configurations": [ "Backend: FastAPI (No Reload)", "Frontend: Next.js" ], "stopAll": true, "presentation": { "hidden": false, "group": "Full Stack", "order": 4 } } ] }