Service Manager · Go

Хватит жонглировать вкладками терминала

Один бинарник, который запускает сервисы в правильном порядке, ждёт пока они реально поднимутся, и нормально останавливает всё при выходе.

Terminal
$_
Конфигурация

Один файл. Любой проект.

Положи devservices.yaml в корень проекта — kb-dev найдёт его автоматически, поднимаясь по директориям от текущей.

Работает с любым стеком: Docker, pnpm, npm, make, shell. KB Labs использует .kb/devservices.yaml — тот же формат.

yaml
name: my-project

services:
  postgres:
    type: docker
    command: docker run --rm -p 5432:5432 postgres:16
    health_check: localhost:5432
    port: 5432

  api:
    command: pnpm dev
    port: 3000
    health_check: http://localhost:3000/health
    depends_on: [postgres]

  worker:
    command: pnpm worker
    depends_on: [postgres]
Команды

Всё поддаётся автоматизации.

kb-dev startЗапуск всех сервисов в порядке зависимостей. Health-проверки перед "alive".
kb-dev stopGraceful-остановка всех работающих сервисов.
kb-dev statusСостояние, PID, порт и uptime каждого сервиса.
kb-dev restart workflowПерезапуск конкретного сервиса по имени.
kb-dev logs gateway --followСтриминг живых логов сервиса. Ctrl-C для остановки.
kb-dev doctorДиагностика окружения: порты, зависимости, конфиг, health.

Все команды поддерживают --json для скриптов и CI

Как это работает

Детали, которые важны.

Знает когда сервис реально упал

Отслеживает реальные PID — сам запускал процессы. Без сканирования портов, без устаревшего состояния.

Не называет живым пока не ответит

HTTP, TCP и command health-проверки с задержкой. Статус alive только после прохождения проверки.

Запускает в правильном порядке

Читает зависимости сервисов из devservices.yaml и запускает в топологическом порядке автоматически.

Установить

Один бинарник. Без зависимостей.

curl -fsSL https://kblabs.ru/kb-dev/install.sh | sh
kb-dev — KB Labs