zero
Разверните любой Docker-образ на своем сервере одной командой: HTTPS, переключение без простоя по health check, preview и rollback.
Что такое zero (ShipZero)?
zero — это движок развертывания для одного сервера, предназначенный для запуска Docker-образов на вашей собственной инфраструктуре. Он предоставляет командную строку для развертывания образа, автоматического обеспечения HTTPS и маршрутизации трафика после health check.
Основная цель — убрать типичные задачи настройки при переходе от контейнерного образа к живому endpoint'у — без файлов конфигурации, веб-интерфейса или YAML. Также поддерживает preview-развертывания и rollback тем же командным подходом.
Ключевые возможности
- Развертывание одной командой из контейнерного образа: Развертывает любой Docker-образ из реестра (например,
ghcr.io/...) с помощьюzero deployи определяет порт приложения. - Автоматический HTTPS с редиректами HTTP: Обеспечивает HTTPS через Let’s Encrypt и включает редиректы HTTP → HTTPS в процессе развертывания.
- Переключение трафика без простоя по health check: Запускает новый контейнер на временном порту, проводит TCP- или HTTP-проверку health check и меняет трафик только при успехе.
- Preview-среды: Используйте
--preview <name>(пример:pr-21) для создания временного развертывания с собственным поддоменом; preview-развертывания автоматически истекают. - Мгновенный rollback:
zero rollback <app>запускает предыдущий образ, проверяет health check и возвращает трафик; при неудаче изменений не применяется. - Метрики и логи в терминале: Стриминг CPU, памяти и сетевых метрик в терминал, а также серверные логи с
zero logs --server. - Авторазвертывание по webhook: Проверяет подписанные webhook-запросы с HMAC-SHA256 и запускает развертывания по событиям реестра; несовпадающие теги создают preview.
- Поддержка Docker Compose для multi-container приложений: Развертывает Docker Compose-файл, указав входной сервис и имя, с обработкой pull, запуска, health check и маршрутизации.
Как использовать zero
- Настройте сервер: Нужен Linux VPS и домен.
- Установите zero:
- На VPS:
curl -fsSL https://shipzero.sh/install.sh | sudo bash - На вашей машине (CLI):
curl -fsSL https://shipzero.sh/cli/install.sh | bash
- На VPS:
- Подключитесь по SSH:
zero login <email-or-identifier>(пример:zero login [email protected]). - Разверните образ:
zero deploy <image-reference>(пример:zero deploy ghcr.io/shipzero/demo:latest). - Проверьте вывод: После health check zero выводит живую URL (на основе домена и порта приложения).
Для preview используйте --preview (пример: zero deploy demo --preview pr-21). Для rollback запустите zero rollback <app>.
Сценарии использования
- Развертывание одного Dockerized веб-приложения: Соберите образ, запушьте в реестр, запустите
zero deploy <image>:latestдля HTTPS-endpoint с переключением трафика по health check. - Preview-ссылки для pull-request: Создайте preview-развертывание на PR с
--preview <identifier>и поделитесь поддоменом с ревьюерами. - Безопасный rollback при релизах: Если новый контейнер не проходит health check или работает некорректно, запустите
zero rollback <app>для отката без простоя (переключение только после health check). - Непрерывное развертывание из реестров: Настройте webhook URL и секрет, подписанный POST запустит развертывание; теги мапятся на обычные или preview-развертывания.
- Развертывание multi-container сервисов: Для приложений на Docker Compose используйте
zero deploy --compose <file> --service <name> --name <stack>для развертывания всех сервисов и маршрутизации для входного.
FAQ
-
Что значит “zero-downtime” здесь?
Процесс запускает новый контейнер, проводит TCP- или HTTP-health check и атомарно меняет маршруты только при успехе. При неудаче трафик остается на предыдущей версии. -
Требует ли zero файлы конфигурации или YAML?
На странице указано нет файлов конфигурации, нет веб-интерфейса, типичный workflow избегает YAML. -
Как zero обеспечивает HTTPS?
Автоматически provision'ит HTTPS через Let’s Encrypt и выполняет HTTP-редиректы. -
Можно ли развертывать несколько контейнеров, не только один образ?
Да. Описана поддержка Docker Compose: передайте compose-файл, входной сервис и имя развертывания. -
Как создаются и управляются preview?
Preview-развертывания создаются с--preview <name>, дают живой поддомен. Указано, что preview автоматически истекают.
Альтернативы
- Традиционные PaaS (platform-as-a-service): Эти сервисы управляют HTTPS, preview и процессами развертывания, но обычно работают на платформе, а не на вашем сервере; вы жертвуете гибкостью и контролем «собственного сервера».
- Самостоятельный reverse proxy + ручная оркестрация контейнеров: Вы можете добиться похожего HTTPS и маршрутизации с помощью своих инструментов, но процесс более ручной (вы сами управляете запуском/остановкой сервисов, health check, сменой маршрутизации и сертификатами).
- Универсальные инструменты развертывания контейнеров (CLI-оркестраторы): Инструменты для развертывания контейнеров на одном хосте покрывают похожие шаги, но требуют больше конфигурационных файлов, кастомной маршрутизации или ручной логики health check и rollback.
- Kubernetes для развертываний на нескольких узлах: Если нужны multi-node оркестрация, RBAC или веб-дашборд, Kubernetes подходит иначе, чем движок развертывания на одном сервере вроде zero.
Альтернативы
Codex Plugins
Используйте Codex Plugins, чтобы объединять skills, интеграции приложений и MCP-серверы в повторно используемые сценарии для доступа к Gmail, Google Drive и Slack.
Falconer
Falconer — самообновляемая платформа знаний для быстрых команд: пишите, делитесь и находите надежную внутреннюю документацию и контекст кода в одном месте.
OpenFlags
OpenFlags — open source self-hosted система feature flags для progressive delivery: локальная оценка в SDK и простая REST контрольная плоскость для безопасных релизов.
AakarDev AI
AakarDev AI — это мощная платформа, которая упрощает разработку приложений ИИ с бесшовной интеграцией векторных баз данных, позволяя быстрое развертывание и масштабируемость.
AgentMail
AgentMail — API почтового ящика для AI-агентов: создавайте, отправляйте, принимайте и ищите письма через REST для двусторонних диалогов.
Arduino VENTUNO Q
Arduino VENTUNO Q — edge AI компьютер для робототехники: ускоренный вывод нейросетей и микроконтроллер для детерминированного управления. Через Arduino App Lab.