メインコンテンツへスキップ

目標

Hetzner の VPS 上で Docker を使って、状態が永続化され、必要なバイナリをビルド時に組み込み、安全に再起動できる OpenClaw ゲートウェイを常時稼働させます。 「月額およそ 5 ドルで OpenClaw を 24 時間 365 日動かしたい」場合、この構成が最もシンプルで信頼しやすい選択です。Hetzner の料金は変わることがあるため、まずは最小の Debian / Ubuntu VPS を選び、OOM が出たらスケールアップしてください。 セキュリティモデルに関する前提:
  • 全員が同じ信頼境界に属し、ランタイムが業務専用なら、社内共有エージェント構成でも問題ありません
  • 専用 VPS / 専用ランタイム / 専用アカウントを保ち、そのホストに個人用の Apple、Google、ブラウザ、パスワードマネージャープロファイルを置かないでください
  • 利用者同士を相互に信頼できない場合は、ゲートウェイ、ホスト、OS ユーザー単位で分離してください
SecurityVPS hosting も参照してください。

何をするのか (簡単に)

  • Hetzner で小さな Linux サーバーを借りる
  • Docker を入れて、アプリ実行環境を分離する
  • Docker 内で OpenClaw ゲートウェイを起動する
  • ~/.openclaw~/.openclaw/workspace をホスト側に永続化する
  • ノート PC から SSH トンネル経由で Control UI へアクセスする
ゲートウェイへの到達方法は次の 2 通りです。
  • ノート PC からの SSH ポートフォワーディング
  • ファイアウォールとトークン管理を自前で行う前提での直接ポート公開
このガイドでは、Hetzner 上の Ubuntu または Debian を前提にしています。別の Linux VPS を使う場合は、パッケージ名などを適宜読み替えてください。汎用的な Docker フローについては Docker を参照してください。

クイックパス (慣れている運用者向け)

  1. Hetzner VPS を用意する
  2. Docker をインストールする
  3. OpenClaw リポジトリを clone する
  4. 永続化用のホストディレクトリを作る
  5. .envdocker-compose.yml を設定する
  6. 必要なバイナリをイメージへ組み込む
  7. docker compose up -d を実行する
  8. 永続化とゲートウェイ到達性を確認する

必要なもの

  • root アクセス可能な Hetzner VPS
  • ノート PC からの SSH アクセス
  • SSH とコピー/ペースト操作の基本知識
  • 20 分程度の作業時間
  • Docker と Docker Compose
  • モデル用の認証情報
  • 任意のプロバイダー認証情報
    • WhatsApp QR
    • Telegram ボットトークン
    • Gmail OAuth

1) VPS を用意する

Hetzner で Ubuntu または Debian の VPS を作成します。 root で接続します。
このガイドは、VPS を stateful に運用する前提です。使い捨てインフラとして扱わないでください。

2) Docker をインストールする (VPS 上)

確認:

3) OpenClaw リポジトリを clone する

このガイドでは、バイナリの永続性を確保するためにカスタムイメージをビルドする前提です。

4) 永続化用のホストディレクトリを作成する

Docker コンテナは一時的です。長期間残る状態はすべてホスト側に置く必要があります。

5) 環境変数を設定する

リポジトリルートに .env を作成します。
十分に強い秘密値は次で生成してください。
このファイルはコミットしないでください。

6) Docker Compose を設定する

docker-compose.yml を作成または更新します。
--allow-unconfigured は初回ブートストラップを簡単にするためだけの指定であり、適切なゲートウェイ設定の代わりにはなりません。gateway.auth.token またはパスワードによる認証は必ず設定し、デプロイ先に適した安全な bind 設定を使ってください。

7) 必要なバイナリをイメージに組み込む (重要)

実行中コンテナの中でバイナリを追加インストールするのは避けてください。ランタイム中に入れたものは、コンテナ再起動で失われます。 skills が必要とする外部バイナリは、すべてイメージビルド時にインストールしておく必要があります。 以下は、よく使う 3 つのバイナリだけを例示しています。
  • Gmail アクセス用の gog
  • Google Places 用の goplaces
  • WhatsApp 用の wacli
これはあくまで例であり、完全な一覧ではありません。同じパターンで必要な数だけ追加できます。 後から追加した skill が別のバイナリに依存する場合は、次の対応が必要です。
  1. Dockerfile を更新する
  2. イメージを再ビルドする
  3. コンテナを再起動する
Dockerfile の例

8) ビルドして起動する

バイナリ確認:
期待される出力:

9) ゲートウェイを確認する

成功時の目安:
ノート PC 側では次を実行します。
開く URL: http://127.0.0.1:18789/ ゲートウェイトークンを貼り付けて接続してください。

何がどこに残るか (source of truth)

OpenClaw 自体は Docker で動きますが、Docker 自体は source of truth ではありません。長期間残る状態は、再起動、再ビルド、再起動後も維持できる必要があります。

Infrastructure as Code (Terraform)

インフラをコードで管理したいチーム向けに、コミュニティメンテナンスの Terraform 構成もあります。内容は次のとおりです。
  • リモートステート管理を含むモジュール化 Terraform 構成
  • cloud-init による自動プロビジョニング
  • デプロイスクリプト (bootstrap、deploy、backup / restore)
  • セキュリティ強化 (firewall、UFW、SSH のみのアクセス)
  • ゲートウェイアクセス用 SSH トンネル設定
リポジトリ: この方式は、上記の Docker セットアップに対して、再現可能なデプロイ、バージョン管理されたインフラ、自動ディザスタリカバリを補完します。
Note: コミュニティメンテナンスです。問題報告やコントリビュート先は上記リポジトリを参照してください。