zero(ShipZero)是什么?
zero 是一个单服务器部署引擎,用于在你自己的基础设施上运行 Docker 镜像。它提供命令行工作流来部署镜像、自动配置 HTTPS,并在健康检查后路由流量。
核心目的是消除从容器镜像到实时端点的常见设置任务——无需配置文件、Web UI 或 YAML。它还支持使用相同命令驱动方式进行预览部署和回滚。
主要特性
- 1 命令从容器镜像部署:使用
zero deploy从镜像仓库(例如ghcr.io/...)部署任意 Docker 镜像,并自动检测应用端口。 - 自动 HTTPS 并支持 HTTP 重定向:通过 Let’s Encrypt 配置 HTTPS,并在部署流程中启用 HTTP → HTTPS 重定向。
- 通过健康检查实现零停机流量切换:在新容器上临时端口启动,运行 TCP 或 HTTP 健康检查,仅在检查通过后切换流量。
- 预览环境:使用
--preview <name>(例如pr-21)创建临时部署并分配独立子域名;预览部署会自动过期。 - 即时回滚:
zero rollback <app>启动上一个镜像,进行健康检查并切换流量;检查失败则不应用变更。 - 实时终端指标和日志:将 CPU、内存和网络统计流式传输到终端,并支持
zero logs --server查看服务器日志。 - Webhook 自动部署:使用 HMAC-SHA256 验证签名 webhook 请求,可从镜像仓库事件触发部署;不匹配标签创建预览部署。
- 支持 Docker Compose 的多容器应用:通过指定入口服务和名称部署 Docker Compose 文件,同时处理拉取、启动、健康检查和路由。
如何使用 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)。 - 验证输出:健康检查后,zero 会打印实时 URL(基于域名和检测到的应用端口)。
预览部署使用 --preview(示例:zero deploy demo --preview pr-21)。回滚运行 zero rollback <app>。
使用场景
- 部署单个 Docker 化 Web 应用:构建镜像、推送到仓库,然后运行
zero deploy <image>:latest即可获得带健康检查流量切换的 HTTPS 端点。 - 拉取请求预览链接用于审查:为每个 PR 传递
--preview <identifier>创建预览部署,并与审查者分享生成的子域名 URL。 - 发布期间安全回滚:如果新容器健康检查失败或行为异常,运行
zero rollback <app>回退,同时保持零停机(仅在健康检查通过后切换流量)。 - 从镜像仓库持续部署:配置 webhook 端点 URL 和密钥,让签名 POST 触发部署;标签可映射为普通部署或预览部署。
- 部署多容器服务:当应用由 Docker Compose 描述时,使用
zero deploy --compose <file> --service <name> --name <stack>部署 compose 文件中定义的所有服务,并为指定入口服务路由流量。
常见问题
-
这里的“零停机”是什么意思?
所述流程启动新容器,运行 TCP 或 HTTP 健康检查,然后原子性地切换路由。如果健康检查失败,流量保持在上一版本。 -
zero 需要配置文件或 YAML 吗?
页面明确表示无配置文件、无 Web UI,典型工作流避免使用 YAML。 -
zero 如何启用 HTTPS?
它使用 Let’s Encrypt 自动配置 HTTPS,并执行 HTTP 重定向。 -
可以部署多个容器,而不只是单个镜像吗?
可以。页面描述了 Docker Compose 支持,通过传递 compose 文件、入口服务和部署名称。 -
预览环境如何创建和管理?
通过传递--preview <name>创建预览部署,生成实时子域名 URL。页面注明预览会自动过期。
替代方案
- 传统 PaaS(平台即服务):这些服务管理 HTTPS、预览环境和部署流程,但通常运行在平台上而非你自己的服务器;你可能需权衡灵活性和“拥有服务器”的控制权。
- 自管反向代理 + 手动容器编排:你可以使用自己的工具实现类似 HTTPS 和路由,但工作流程更手动(你需自行处理服务启动/停止、健康检查、路由切换和证书)。
- 通用容器部署工具(基于 CLI 的编排器):部署容器到单主机的主工具可覆盖类似步骤,但可能需要更多配置文件、自定义路由,或手动健康检查和回滚逻辑。
- Kubernetes 用于多节点部署:如果需要多节点编排、RBAC 或 Web 仪表板,Kubernetes 更适合,而非像 zero 这样的单服务器部署引擎。
替代品
Codex Plugins
使用 Codex Plugins 将技能、应用集成和 MCP 服务器打包成可复用工作流,扩展 Codex 访问 Gmail、Google Drive 与 Slack 等工具。
Falconer
Falconer 是自更新知识平台,帮高速度团队在一个地方编写、分享并搜索可靠内部文档与代码上下文。
OpenFlags
OpenFlags 是开源自托管功能开关系统,支持渐进式交付;应用 SDK 本地评估,配套简单控制平面实现安全定向发布。
AakarDev AI
AakarDev AI 是一个强大的平台,通过无缝的向量数据库集成简化 AI 应用程序的开发,实现快速部署和可扩展性。
AgentMail
AgentMail 是面向 AI 代理的邮箱收发 API,可通过 REST 创建、发送、接收与搜索邮件,实现双向对话。
Arduino VENTUNO Q
Arduino VENTUNO Q 边缘AI电脑,集成AI推理与微控制器确定性控制;用 Arduino App Lab 打通嵌入式、Linux与边缘AI开发。