UStackUStack
Vxero Neo icon

Vxero Neo

Vxero Neo はSSHネイティブのCLIで、DockerアプリをVPSへ自動でHTTPS(auto-SSL)導入し、無停止スワップ。エージェント/制御基盤不要。

Vxero Neo

Vxero Neoとは?

Vxero Neo (Neo) は、DockerアプリケーションをVPSにデプロイするためのSSHネイティブのコマンドラインツールです。SSH経由でサーバーに接続し、DockerとCaddyをセットアップ、auto-SSLによるHTTPSでアプリをデプロイします。エージェントのインストールや別途の制御基盤は不要です。

Neoはローカル開発からステージング、本番までのアプリケーションライフサイクルを管理します。ローカルプロジェクトの設定(docker-compose.yml、.env、.neo.yml)を読み込み、イメージをビルドしてSSH経由で転送、健康チェックを実行し、無停止でトラフィックをスワップします。

主な機能

  • SSHのみのデプロイフロー(エージェント/ダッシュボード不要): Neoはローカルマシンで動作し、SSH経由でVPSに接続。ランタイム用のDocker/Caddy以外にサーバー側ツールは不要です。
  • 自動サーバー初期化(Docker + Caddy): デプロイ時に対象サーバーでDockerとCaddyをセットアップし、コンテナがHTTPSトラフィックを受信できるようにします。
  • compose/configからライブスイッチへ: ローカル設定を読み込み、イメージをビルドしてSSH経由で転送、健康チェック後にトラフィックをスワップ。古いコンテナはスイッチまで稼働継続。
  • 即時HTTPSドメインと代替証明書オプション: --tempsslip.io(DNS不要)を使用可能。本番ドメインではDNS設定後にCaddy経由のLet’s Encrypt、または--cert/--keyで独自証明書を指定。
  • 設定生成と環境管理: neo config generateでdocker-compose.ymlをスキャンし、アプリサービス、サイドカー、ワーカー、環境変数、ボリュームを検知して.neo.ymlを自動生成。neo envneo syncでenv/状態を同期。
  • ブルーグリーン式無停止デプロイ: 新コンテナを起動、健康チェックを待ってからトラフィックをスワップ。旧バージョンは切り替えまで利用可能。
  • ワーカー、サイドカー、永続ボリューム: .neo.ymlでバックグラウンドワーカーとサイドカーを定義し、メインプアプリと共有ボリューム/環境変数でデプロイ。ボリュームを.neo.ymlで宣言し、再デプロイ間でデータを永続化。
  • マルチサーバーと環境別設定: --to stagingなどのフラグでステージング/本番へデプロイ。各環境ごとに独自のドメイン、環境変数、SSL設定が可能。

Vxero Neoの使い方

  1. プロジェクト準備: アプリをdocker-compose.yml(オプションで.env)で記述。
  2. Neoのデプロイ設定生成: プロジェクトディレクトリでneo config generateを実行。docker-compose.ymlをスキャンし、アプリ、ワーカー/サイドカー(定義/検知時)、環境変数、ボリュームを.neo.ymlに記述。
  3. ローカル開発(オプションだが対応): neo devでdocker-composeを.neo.ymlの環境読み込みでラップ。
  4. SSH経由デプロイ: neo deployでVPSを指定。Dockerfile(compose由来設定)からイメージをビルド、SSH転送、健康チェックとトラフィックスワップを実行。
  5. HTTPS有効化: neo domain --tempでsslip.ioベースの即時HTTPS URL、またはDNS設定後にLet's Encrypt auto-SSLで本番ドメイン、--cert/--keyで独自証明書を指定。

ユースケース

  • シングルVM Dockerアプリデプロイ: VPSごとに1つのコンテナ化アプリ(例: Webサービス)を、クラスタオーケストレータではなくSSHベース自動化でデプロイ。
  • ステージング→本番(共有設定): .neo.yml生成とenv読み込みで環境間で同一設定を使用。ステージングデプロイ後、ドメイン/SSL違いで本番へ昇格。
  • サイドカーとバックグラウンドワーカー付きアプリ: .neo.ymlで定義したワーカー/サイドカーコンテナをメインプアプリと共有環境変数/ボリュームでデプロイ。
  • DNS変更なしの即時HTTPS: neo domain --tempでsslip.ioの即時HTTPS URLをテスト取得、DNS準備後に本番ドメインへ切り替え。
  • 小規模チームの無停止リリース: 健康チェック付きブルーグリーン更新で、旧バージョンが新コンテナ準備完了まで稼働継続。

FAQ

  • Neoはサーバーにエージェントをインストールしますか? いいえ。Neoはローカルマシンで動作し、SSH経由でVPSに接続します。サーバーにはアプリケーション実行環境のためのDockerとCaddyのみセットアップされます。

  • docker-composeをすでに使っています。Neoに切り替えるには? プロジェクトディレクトリでneo config generateを実行。Neoがdocker-compose.ymlをスキャンして.neo.ymlを自動生成し、neo deployでアプリをデプロイできます。

  • どのクラウドプロバイダーがサポートされていますか? SSHアクセスを提供するVPSならすべて対応、DigitalOcean、Hetzner、Linode、Vultr、AWS EC2、GCP、Azureなど。Neoは単一VMへのデプロイ(KubernetesやDocker Swarmのようなマルチノードクラスタオーケストレータではありません)。

  • HTTPSはどう動作しますか? neo domain --tempでsslip.io経由の即時HTTPS、neo domain app example.comでDNS設定後のLet’s Encrypt auto-SSL、--cert/--keyで独自証明書使用をサポート。

  • Neoでバックグラウンドワーカーやデータベースは実行できますか? .neo.ymlでワーカーを宣言すると、同じイメージ、env vars、volumesで別コンテナとしてデプロイ。本番ユーザー向けにはマネージドDBを推奨。小規模プロジェクトではDocker sidecar/serviceとしてDB実行可能。

代替案

  • 手動Docker + Caddyデプロイスクリプト: 完全制御を好み、独自デプロイ自動化をお持ちの場合、イメージ構築・転送、コンテナ実行、Caddy/SSL管理を手動で。Neoの1コマンドワークフローよりセットアップ努力多め。
  • Docker SwarmやKubernetes: マルチノードデプロイ向けクラスタオーケストレータ。Neoとは異なり、クラスタ全体のオーケストレーションを対象、単一SSHアクセスVPS向けではない。
  • その他のVPS中心CI/CDパイプライン: 汎用CI/CDツールでサーバーへSSH、イメージ構築、コンテナ再起動。Neo比でconfig生成、無停止スイッチング、HTTPS統合を手動。
  • マネージドコンテナプラットフォーム: ルーティング/TLS管理でインフラ手間削減。通常Neoの「SSHファースト、エージェント/制御基盤不要」デプロイモデルを犠牲。
Vxero Neo | UStack