UStackUStack
zero icon

zero

Разверните любой Docker-образ на своем сервере одной командой: HTTPS, переключение без простоя по health check, preview и rollback.

zero

Что такое 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

  1. Настройте сервер: Нужен Linux VPS и домен.
  2. Установите zero:
    • На VPS: curl -fsSL https://shipzero.sh/install.sh | sudo bash
    • На вашей машине (CLI): curl -fsSL https://shipzero.sh/cli/install.sh | bash
  3. Подключитесь по SSH: zero login <email-or-identifier> (пример: zero login [email protected]).
  4. Разверните образ: zero deploy <image-reference> (пример: zero deploy ghcr.io/shipzero/demo:latest).
  5. Проверьте вывод: После 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 icon

Codex Plugins

Используйте Codex Plugins, чтобы объединять skills, интеграции приложений и MCP-серверы в повторно используемые сценарии для доступа к Gmail, Google Drive и Slack.

Falconer icon

Falconer

Falconer — самообновляемая платформа знаний для быстрых команд: пишите, делитесь и находите надежную внутреннюю документацию и контекст кода в одном месте.

OpenFlags icon

OpenFlags

OpenFlags — open source self-hosted система feature flags для progressive delivery: локальная оценка в SDK и простая REST контрольная плоскость для безопасных релизов.

AakarDev AI icon

AakarDev AI

AakarDev AI — это мощная платформа, которая упрощает разработку приложений ИИ с бесшовной интеграцией векторных баз данных, позволяя быстрое развертывание и масштабируемость.

AgentMail icon

AgentMail

AgentMail — API почтового ящика для AI-агентов: создавайте, отправляйте, принимайте и ищите письма через REST для двусторонних диалогов.

Arduino VENTUNO Q icon

Arduino VENTUNO Q

Arduino VENTUNO Q — edge AI компьютер для робототехники: ускоренный вывод нейросетей и микроконтроллер для детерминированного управления. Через Arduino App Lab.