UStackUStack
Vxero Neo icon

Vxero Neo

Vxero Neo 是原生 SSH 的 CLI,透過安裝 Docker 與 Caddy 將 Docker 應用部署到任何 VPS,自動 HTTPS 並支援零停機切換。

Vxero Neo

Vxero Neo 是什麼?

Vxero Neo (Neo) 是一個原生 SSH 的命令列工具,用於將 Docker 應用部署到 VPS。它透過 SSH 連線到您的伺服器,設定 Docker 和 Caddy,並以自動 SSL 提供 HTTPS 部署您的應用程式—無需安裝代理程式或使用獨立的控制平面。

Neo 也管理應用程式的生命週期,從本地開發到 staging 和 production。它讀取本地專案設定檔(包含 docker-compose.yml、.env 和 .neo.yml),透過 SSH 建置並傳輸映像檔,執行健康檢查,並以零停機切換流量。

主要功能

  • 僅 SSH 部署流程(無代理、無儀表板): Neo 在您的本地機器執行,並透過 SSH 連線到 VPS;除了 Docker/Caddy 作為執行環境外,不需額外的伺服器端工具。
  • 自動伺服器初始化(Docker + Caddy): 部署時,Neo 在目標伺服器上設定 Docker 和 Caddy,讓容器能執行並接收 HTTPS 流量。
  • 從 compose/設定到即時切換: Neo 讀取本地設定,建置映像檔,透過 SSH 傳輸,健康檢查後切換流量;舊容器會持續執行直到切換。
  • 即時 HTTPS 網域與替代憑證選項: Neo 可使用 sslip.io(無需 DNS)搭配 --temp 提供 HTTPS。對於真實網域,可使用 Let’s Encrypt via Caddy(DNS 指向後),或以 --cert--key 提供自有憑證。
  • 設定生成與環境管理: neo config generate 掃描 docker-compose.yml,自動偵測應用服務、sidecars、工作處理程序、環境變數和磁碟區,生成 .neo.yml。Neo 也能透過 neo envneo sync 等指令同步環境/狀態。
  • 藍綠式零停機部署: 啟動新容器,等待健康檢查後執行流量切換,先前版本會持續可用直到轉移。
  • 工作處理程序、sidecars 與持久磁碟區: 在 .neo.yml 中定義背景工作處理程序和 sidecars,與主應用一同部署,共享磁碟區和環境變數。在 .neo.yml 中宣告磁碟區,以在重新部署時持久化資料。
  • 多伺服器與各環境設定: 使用如 --to staging 等旗標部署到 staging 或 production;每個環境可有專屬網域、環境變數和 SSL 設定。

如何使用 Vxero Neo

  1. 準備專案: 確保應用以 docker-compose.yml(及選用的 .env)描述。
  2. 生成 Neo 部署設定: 在專案目錄執行 neo config generate。Neo 掃描 docker-compose.yml,寫入 .neo.yml,包含偵測到的服務如應用、工作處理程序/sidecars(若定義/偵測到)、環境變數和磁碟區。
  3. 本地開發(選用但支援): 使用 neo dev 包裝 docker-compose,從 .neo.yml 載入 Neo 環境。
  4. 透過 SSH 部署: 執行 neo deploy 針對您的 VPS。Neo 從 Dockerfile(及 compose 衍生設定)建置映像檔,透過 SSH 傳輸,執行健康檢查並切換流量。
  5. 啟用 HTTPS: 使用 neo domain --temp 取得基於 sslip.io 的即時 HTTPS URL,或 DNS 指向後使用 Let's Encrypt 自動 SSL,或提供 --cert/--key 使用自有憑證。

使用情境

  • 單一 VM Docker 應用部署: 每個 VPS 部署一個容器化應用(例如網頁服務),偏好 SSH 自動化而非叢集協調器。
  • Staging → production 共享設定: 跨環境使用相同設定(透過 .neo.yml 生成與環境載入),部署到 staging 後以不同網域/SSL 設定升級到 production。
  • 含 sidecars 與背景工作處理程序的應用: 部署主應用連同 .neo.yml 中定義的工作處理程序與 sidecar 容器,包含共享環境變數和磁碟區。
  • 無需 DNS 變更即可快速取得 HTTPS 的專案: 使用 neo domain --temp 以 sslip.io 取得即時 HTTPS URL 進行測試,DNS 準備好後再切換到真實網域。
  • 小團隊零停機發行: 以健康檢查執行藍綠式更新,先前版本持續運作直到新容器準備好。

常見問題

  • Neo 會在我的伺服器上安裝代理程式嗎? 不會。Neo 在您的本地機器上執行,並透過 SSH 連線到您的 VPS。伺服器上僅設定 Docker 和 Caddy 用於應用程式執行環境。

  • 我已經在使用 docker-compose,如何切換到 Neo? 在您的專案目錄中執行 neo config generate。Neo 會掃描 docker-compose.yml 並自動產生 .neo.yml,然後您即可使用 neo deploy 部署應用程式。

  • 支援哪些雲端供應商? Neo 可部署到任何提供 SSH 存取的 VPS,例如 DigitalOcean、Hetzner、Linode、Vultr、AWS EC2、GCP 和 Azure。Neo 部署到單一 VM(它不是像 Kubernetes 或 Docker Swarm 這類的多節點叢集協調器)。

  • HTTPS 如何運作? Neo 支援 neo domain --temp 以 sslip.io 即時取得 HTTPS、neo domain app example.com 在 DNS 指向後使用 Let’s Encrypt 自動 SSL,以及 --cert/--key 使用您自己的憑證。

  • Neo 可以執行背景工作處理器和資料庫嗎? 工作處理器可在 .neo.yml 中宣告,並以相同映像、環境變數和磁碟區部署為獨立容器。對於資料庫,Neo 可將其作為 Docker sidecars/服務執行於小型專案;對於有實際使用者的生產環境,建議使用託管資料庫。

替代方案

  • 手動 Docker + Caddy 部署腳本: 如果您偏好完全控制並已有自己的部署自動化,您可以自行建置並傳輸映像、執行容器,並管理 Caddy/SSL。這通常比 Neo 的單指令工作流程需要更多設定工作。
  • Docker Swarm 或 Kubernetes: 這些是多節點部署的叢集協調器。它們與 Neo 不同之處在於針對叢集協調而非單一 SSH 可存取的 VPS。
  • 其他以 VPS 為中心的 CI/CD 管道: 您可以使用通用 CI/CD 工具 SSH 連線到伺服器、建置映像並重新啟動容器。相較於 Neo,您需自行處理設定產生、零停機切換邏輯和 HTTPS 整合。
  • 託管容器平台: 管理路由和 TLS 的平台可減少基礎設施步驟。它們通常會犧牲 Neo 描述的「SSH 優先、無代理/控制平面」部署模式。
Vxero Neo | UStack