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 |
command | ✅ | Shell-команда запуску |
path | — | Відносна робоча директорія від кореня ("" = корінь) |
port | — | TCP-порт для статусу (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 port | port: 0 — лише наявність терміналу |