
# Жизненный цикл

Действия над уже созданным сервером: запуск и остановка, перезагрузка, авто-сон и немедленный сон, пробуждение, принудительное обновление статуса, восстановление туннеля через последовательную консоль (serial console). Все эндпоинты — экшены над конкретным `:id`, большинство возвращает `{ "success": true }`.

Скоуп: `vibe:infra`

## Операции

- [Запустить сервер](./lifecycle/start.md) — `POST /v1/infra/servers/:id/start`
- [Остановить сервер](./lifecycle/stop.md) — `POST /v1/infra/servers/:id/stop`
- [Перезагрузить сервер](./lifecycle/reboot.md) — `POST /v1/infra/servers/:id/reboot`
- [Разбудить сервер](./lifecycle/wake.md) — `POST /v1/infra/servers/:id/wake`
- [Усыпить сейчас](./lifecycle/sleep-now.md) — `POST /v1/infra/servers/:id/sleep-now`
- [Настроить авто-сон](./lifecycle/sleep.md) — `PATCH /v1/infra/servers/:id/sleep`
- [Обновить статус](./lifecycle/refresh.md) — `POST /v1/infra/servers/:id/refresh`
- [Восстановить туннель](./lifecycle/repair.md) — `POST /v1/infra/servers/:id/repair`
- [Статус восстановления](./lifecycle/repair-status.md) — `GET /v1/infra/servers/:id/repair-status`

Список выше описывает отдельную виртуальную машину. Galaxy-приложение — контейнер на общем хосте — часть этих операций выполняет через хост, а часть к нему не применяется: карта операций с кодами отказов — [Galaxy-приложение](/docs/infra/galaxy).

## Сценарии

**Экономия на ночном простое (BLACKHOLE):**

1. Проверить таймаут простоя: у новой машины это 60 минут. Другое значение и отключение авто-сна — [`PATCH /sleep`](./lifecycle/sleep.md).
2. Вызов [`/deploy`](/docs/infra/deploy/deploy) будит сервер автоматически. Обращение к HTTPS-субдомену будит его, когда приложение открыто всем или посетитель авторизован — [условия пробуждения](./lifecycle/wake.md).
3. Если нужно разбудить заранее (например, перед cron-задачей) — [`POST /wake?wait=true`](./lifecycle/wake.md).

**Ручной перезапуск приложения без полной перезагрузки сервера:**

1. Проверить, что туннель в порядке: [`GET /v1/infra/servers/:id`](/docs/infra/servers/get) → `blackholeStatus: "CONNECTED"`.
2. Перезапустить сервис: [`POST /exec`](/docs/infra/deploy/exec) с `systemctl restart app`.

Если перезапуск не помог — [`POST /reboot`](./lifecycle/reboot.md).

**Туннель потерял соединение (DISCONNECTED):**

1. Проверить: [`GET /v1/infra/servers/:id`](/docs/infra/servers/get) — `blackholeStatus: "DISCONNECTED"` на `RUNNING`-сервере.
2. Запустить восстановление: [`POST /repair`](./lifecycle/repair.md).
3. Опрашивать прогресс: [`GET /repair-status`](./lifecycle/repair-status.md).
4. По завершении — `blackholeStatus` вернётся к `CONNECTED`.

## Смотрите также

- [Серверы](/docs/infra/servers)
- [Galaxy-приложение](/docs/infra/galaxy)
- [Deploy API](/docs/infra/deploy)
- [Корневой раздел — Инфраструктура](/docs/infra)
