什麼是 zero (ShipZero)?
zero 是一個單一伺服器部署引擎,用於在自家基礎設施上運行 Docker 映像。它提供命令列工作流程來部署映像、自動配置 HTTPS,並在健康檢查後路由流量。
核心目的是移除從容器映像到即時端點的常見設定任務—無需設定檔、網頁 UI 或 YAML。它也支援使用相同命令導向方式進行預覽部署與回滾。
主要功能
- 1 命令從容器映像部署:使用
zero deploy部署任意 Docker 映像(例如ghcr.io/...),並處理應用程式埠偵測。 - 自動 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 網頁應用:建置映像、推送到映像庫,然後執行
zero deploy <image>:latest取得 HTTPS 端點與健康檢查流量切換。 - 拉取請求預覽連結用於審核:傳遞
--preview <identifier>為每個 PR 建立預覽部署,並分享子網域 URL 給審核者。 - 發行時安全回滾:若新容器健康檢查失敗或行為異常,執行
zero rollback <app>復原,同時保持零停機(僅健康檢查通過後才切換流量)。 - 從映像庫持續部署:設定 webhook 端點 URL 與密鑰,讓簽署 POST 觸發部署;標籤可對應一般部署或預覽部署。
- 部署多容器服務:當應用使用 Docker Compose 描述時,使用
zero deploy --compose <file> --service <name> --name <stack>部署 compose 檔案中所有服務,並為指定入口服務路由流量。
常見問題
-
這裡的「零停機」是什麼意思?
所述流程啟動新容器、執行 TCP 或 HTTP 健康檢查,僅檢查通過後才原子切換路由。若檢查失敗,流量維持在先前版本。 -
zero 需要設定檔或 YAML 嗎?
頁面指出無需設定檔、無網頁 UI,典型工作流程避免 YAML。 -
zero 如何啟用 HTTPS?
自動使用 Let’s Encrypt 配置 HTTPS,並執行 HTTP 重新導向。 -
可以部署多個容器,而非單一映像嗎?
可以。頁面描述Docker Compose 支援,傳遞 compose 檔案、入口服務與部署名稱。 -
預覽如何建立與管理?
傳遞--preview <name>建立預覽部署,產生即時子網域 URL。頁面註明預覽會自動過期。
替代方案
- 傳統 PaaS(平台即服務):這些服務管理 HTTPS、預覽與部署流程,但通常運行在平台而非自家伺服器;你可能需犧牲彈性與「擁有伺服器」控制權。
- 自管反向代理 + 手動容器編排:你可用自家工具實現類似 HTTPS 與路由,但工作流程更手動(你需自行處理服務啟停、健康檢查、路由切換與憑證)。
- 通用容器部署工具(基於 CLI 的編排器):部署容器至單一主機的工具可涵蓋類似步驟,但可能需更多設定檔、自訂路由,或手動健康檢查與回滾邏輯。
- Kubernetes 用於多節點部署:若需多節點編排、RBAC 或網頁儀表板,Kubernetes 適用於不同情境,而非如 zero 這類單一伺服器部署引擎。
替代品
Codex Plugins
使用 Codex Plugins 將技能、應用程式整合與 MCP 伺服器打包成可重複使用的工作流程,讓 Codex 存取 Gmail、Google Drive、Slack 等工具。
Falconer
Falconer 是自動更新的知識平台,讓高速度團隊在同一處撰寫、分享並搜尋可靠的內部文件與程式碼脈絡。
OpenFlags
OpenFlags 是開源、可自架設的功能旗標系統,支援逐步交付;App SDK 可本地評估,控制平面提供安全、精準的發佈。
AakarDev AI
AakarDev AI 是一個強大的平台,通過無縫的向量資料庫整合簡化 AI 應用程式的開發,實現快速部署和可擴展性。
AgentMail
AgentMail 是供 AI 代理使用的電子郵件收件匣 API:透過 REST 建立、寄送、接收與搜尋郵件,支援雙向對話。
Arduino VENTUNO Q
Arduino VENTUNO Q 邊緣 AI 電腦,結合 AI 推論硬體與微控制器,支援機器人即時控制;透過 Arduino App Lab 進行嵌入式、Linux 與邊緣 AI 工作流程。