2025-06-03 00:10:35 -07:00
|
|
|
{
|
|
|
|
|
// 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": [
|
|
|
|
|
{
|
2026-01-07 17:46:38 -08:00
|
|
|
"name": "Backend: FastAPI",
|
2025-06-03 00:10:35 -07:00
|
|
|
"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",
|
2025-06-03 00:33:30 -07:00
|
|
|
"python": "${command:python.interpreterPath}"
|
2025-06-03 00:10:35 -07:00
|
|
|
},
|
2026-02-20 17:28:20 -08:00
|
|
|
{
|
|
|
|
|
"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}"
|
|
|
|
|
},
|
2025-06-03 00:10:35 -07:00
|
|
|
{
|
2026-01-07 17:46:38 -08:00
|
|
|
"name": "Backend: FastAPI (main.py)",
|
2025-06-03 00:10:35 -07:00
|
|
|
"type": "debugpy",
|
|
|
|
|
"request": "launch",
|
|
|
|
|
"program": "${workspaceFolder}/surfsense_backend/main.py",
|
|
|
|
|
"console": "integratedTerminal",
|
|
|
|
|
"justMyCode": false,
|
|
|
|
|
"cwd": "${workspaceFolder}/surfsense_backend"
|
2025-12-18 23:57:57 -08:00
|
|
|
},
|
|
|
|
|
{
|
2026-01-07 17:46:38 -08:00
|
|
|
"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",
|
2026-02-16 00:07:23 -08:00
|
|
|
"--queues=surfsense,surfsense.connectors,surfsense-dev,surfsense-dev.connectors",
|
2026-01-07 17:46:38 -08:00
|
|
|
"--pool=solo"
|
|
|
|
|
],
|
|
|
|
|
"console": "integratedTerminal",
|
|
|
|
|
"justMyCode": false,
|
|
|
|
|
"cwd": "${workspaceFolder}/surfsense_backend",
|
|
|
|
|
"python": "${command:python.interpreterPath}"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "Celery: Beat Scheduler",
|
2025-12-18 23:57:57 -08:00
|
|
|
"type": "debugpy",
|
|
|
|
|
"request": "launch",
|
2026-01-07 17:46:38 -08:00
|
|
|
"module": "celery",
|
|
|
|
|
"args": [
|
|
|
|
|
"-A",
|
|
|
|
|
"app.celery_app:celery_app",
|
|
|
|
|
"beat",
|
|
|
|
|
"--loglevel=info"
|
|
|
|
|
],
|
2025-12-18 23:57:57 -08:00
|
|
|
"console": "integratedTerminal",
|
|
|
|
|
"justMyCode": false,
|
|
|
|
|
"cwd": "${workspaceFolder}/surfsense_backend",
|
2026-01-07 17:46:38 -08:00
|
|
|
"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
|
2025-12-18 23:57:57 -08:00
|
|
|
}
|
2026-02-20 17:28:20 -08:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"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
|
|
|
|
|
}
|
2025-06-03 00:10:35 -07:00
|
|
|
}
|
|
|
|
|
]
|
2026-01-07 17:46:38 -08:00
|
|
|
}
|