#Deploy API

Развёртывание приложений на BLACKHOLE-серверах без SSH. Все операции идут через агент туннеля: команды выполняются на сервере, файлы загружаются через туннель, логи читаются из системного журнала (утилита journalctl). AI-агенты должны использовать эту группу эндпоинтов для полного цикла «взять код из git → установить зависимости → запустить сервис → читать логи».

Требования: сервер в режиме BLACKHOLE, статус running, blackholeStatus: CONNECTED. В OPEN-режиме Deploy API вернёт NOT_BLACKHOLE.

Формат ответов: все эндпоинты по умолчанию отдают JSON (201/200 со {"success": true, ...}). Для /deploy и /exec доступен потоковый режим через ?stream=true — возвращается поток SSE (Server-Sent Events) с построчным прогрессом. Для AI-агентов и MCP-клиентов всегда используйте JSON (не добавляйте ?stream=true) — они не умеют разбирать SSE.

Ограничения частоты:

Ограничение Значение
Операций в минуту на сервер 10
Одновременных exec/deploy 1 на сервер
Таймаут exec 1–600 секунд (по умолчанию 300)
Размер встроенного тела (base64 в /upload, /deploy source.content) 50 МБ
Размер файла через URL (/upload url, /deploy source.url) 500 МБ
Размер multipart-архива в /deploy 50 МБ

Скоуп: vibe:infra