Перейти до вмісту

Dev-сервери

SnakeFlow керує будь-якою кількістю dev-серверів — Next.js, Vite, FastAPI, Django, Rails, Go, Rust, PHP — будь-який runtime і команда.

Кожен сервер працює у іменованому терміналі VS Code; статус перевіряється за TCP-портом і наявністю терміналу. Індикатори — у сайдбарі та status bar у реальному часі.

Конфігурація серверів

Додайте в .vscode/settings.json:

"devManager.project.servers": [
{
"id": "web",
"label": "Frontend",
"command": "npm run dev",
"path": "",
"port": 3000
},
{
"id": "api",
"label": "API Server",
"command": "python manage.py runserver 8000",
"path": "backend",
"port": 8000
}
]

Поля сервера

ПолеОбов’язковеОпис
idУнікальний ідентифікатор — префікс імені терміналу
labelНазва в сайдбарі та status bar
commandShell-команда запуску
pathВідносна робоча директорія від кореня ("" = корінь)
portTCP-порт для статусу (0 = без моніторингу порту)

Команди

ДіяКлавішіМеню
Запустити всіCtrl+M SГоловне меню → Start Servers
Зупинити всіCtrl+M QГоловне меню → Stop Servers
Перезапустити всіCtrl+M RГоловне меню → Restart Servers
Один серверСайдбар → клік по серверу

Приклади

Один застосунок (Node.js)

[
{ "id": "web", "label": "Dev Server", "command": "npm run dev", "path": "", "port": 3000 }
]

Монорепо (Turborepo / pnpm)

[
{ "id": "web", "label": "Frontend", "command": "pnpm run dev", "path": "apps/web", "port": 5173 },
{ "id": "api", "label": "API", "command": "pnpm run dev", "path": "apps/api", "port": 8787 },
{ "id": "inngest", "label": "Inngest", "command": "pnpm dlx inngest-cli@latest dev", "path": "apps/web", "port": 8288 }
]

Python + React

[
{ "id": "frontend", "label": "React", "command": "npm run dev", "path": "frontend", "port": 3000 },
{ "id": "backend", "label": "Django", "command": "python manage.py runserver 8000", "path": "backend", "port": 8000 },
{ "id": "celery", "label": "Celery Worker", "command": "celery -A config worker -l info", "path": "backend", "port": 0 }
]

Go-мікросервіси

[
{ "id": "gateway", "label": "API Gateway", "command": "go run ./cmd/gateway", "path": "services/gateway", "port": 8080 },
{ "id": "auth", "label": "Auth", "command": "go run ./cmd/auth", "path": "services/auth", "port": 8081 }
]

Моніторинг статусу

Статус показується:

  • Сайдбар — кольорова іконка біля назви сервера
  • Status bar — індикатор для кожного сервера внизу IDE

Використовується комбінована перевірка: порт відкритий і термінал ще живий. Це зменшує хибні спрацьовування, коли порт зайнятий іншим процесом.

СтатусЗначення
🟢 RunningПорт відкритий, термінал активний
🔴 StoppedПорт закритий або термінал закрито
⚪ No portport: 0 — лише наявність терміналу