什麼是 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 這類單一伺服器部署引擎。
替代品
MakerLoft
MakerLoft 是讓非開發者用 AI 快速打造 App 的工具,連接 GitHub 產生可運作程式,含驗證、付款、上傳、排程與管理後台。
Codex Plugins
使用 Codex Plugins 將技能、應用程式整合與 MCP 伺服器打包成可重複使用的工作流程,讓 Codex 存取 Gmail、Google Drive、Slack 等工具。
ClawTick
ClawTick 是以 CLI 為核心的 AI 代理自動化平台,可用 cron 排程 webhook 任務,提供監控、警報、重試與執行紀錄。
Falconer
Falconer 是自動更新的知識平台,讓高速度團隊在同一處撰寫、分享並搜尋可靠的內部文件與程式碼脈絡。
OpenFlags
OpenFlags 是開源、可自架設的功能旗標系統,支援逐步交付;App SDK 可本地評估,控制平面提供安全、精準的發佈。
AakarDev AI
AakarDev AI 是一個強大的平台,通過無縫的向量資料庫整合簡化 AI 應用程式的開發,實現快速部署和可擴展性。