Skip to main content
永続的な OpenClaw Gateway を GCP Compute Engine VM 上で Docker を使用して実行します。永続化された状態、組み込み済みバイナリ、安全な再起動動作を備えます。 料金はマシンタイプとリージョンによって異なります。ワークロードに適した最小の VM を選択し、OOM が発生した場合はスケールアップしてください。 Gateway には、ノート PC から SSH ポートフォワーディング経由でアクセスできます。また、ファイアウォールとトークンを自身で管理する場合は、ポートを直接公開してアクセスすることもできます。 このガイドでは、GCP Compute Engine 上の Debian を使用します。Ubuntu も利用できますが、パッケージは適宜読み替えてください。一般的な Docker の手順については、Dockerを参照してください。

必要なもの

  • GCP アカウント(e2-micro は無料枠の対象)
  • gcloud CLI、または Cloud Console
  • ノート PC からの SSH アクセス
  • Docker と Docker Compose
  • モデル認証情報
  • 任意のプロバイダー認証情報(WhatsApp QR、Telegram ボットトークン、Gmail OAuth)
  • 約20~30分

    クイック手順

  1. GCP プロジェクトを作成し、課金と Compute Engine API を有効化
  2. Compute Engine VM(e2-small、Debian 12、20GB)を作成
  3. VM に SSH 接続し、Docker をインストール
  4. OpenClaw リポジトリをクローン
  5. 永続化するホストディレクトリを作成
  6. .envdocker-compose.yml を設定
  7. 必要なバイナリを組み込み、ビルドして起動
1

gcloud CLI をインストール(または Console を使用)

cloud.google.com/sdk/docs/installからインストールし、次を実行します。
または、以下のすべての手順を Cloud Console の Web UI から実行します。
2

GCP プロジェクトを作成

console.cloud.google.com/billing で課金を有効にします(Compute Engine に必要です)。Console での同等の操作: IAM & Admin > Create Project でプロジェクトと課金を有効にし、APIs & Services > Enable APIs > “Compute Engine API” > Enable の順に操作します。
3

VM を作成

4

VM に SSH 接続

Console: Compute Engine ダッシュボードで VM の横にある “SSH” をクリックします。VM 作成後、SSH 鍵の反映には1~2分かかる場合があります。接続が拒否された場合は、しばらく待ってから再試行してください。
5

Docker をインストール(VM 上)

グループの変更を反映するためにログアウトしてから、再度 SSH 接続します。
確認します。
6

OpenClaw リポジトリをクローン

このガイドでは、組み込んだバイナリが再起動後も維持されるように、カスタムイメージをビルドします。
7

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

Docker コンテナは一時的なものです。長期間保持するすべての状態は、ホスト上に保存する必要があります。
8

環境変数を設定

リポジトリのルートに .env を作成します。
.env を通じて安定した Gateway トークンを管理するには、OPENCLAW_GATEWAY_TOKEN を設定します。それ以外の場合は、再起動をまたいでクライアントを利用する前に gateway.auth.token を設定してください。どちらも設定されていない場合、OpenClaw はその起動時にのみ有効なランタイムトークンを使用します。GOG_KEYRING_PASSWORD 用のキーリングパスワードを生成します。
このファイルをコミットしないでください。 このファイルには、OPENCLAW_GATEWAY_TOKEN などのコンテナ/ランタイム環境変数が含まれます。保存されたプロバイダーの OAuth/API キー認証情報は、マウントされた ~/.openclaw/agents/<agentId>/agent/auth-profiles.json に格納されます。
9

Docker Compose の設定

docker-compose.yml を作成または更新します。
--allow-unconfigured はブートストラップを簡単にするためだけのものであり、実際の Gateway 設定の代わりにはなりません。デプロイ環境に合わせて、認証(gateway.auth.token またはパスワード)と安全なバインドモードも設定してください。
10

共有 Docker VM ランタイムの手順

一般的な Docker ホストのフローについては、共有ランタイムガイドに従ってください。
11

GCP 固有の起動時の注意事項

pnpm install --frozen-lockfile 中に Killed または exit code 137 が発生してビルドに失敗した場合、VM のメモリが不足しています。最低でも e2-small、初回ビルドをより確実にするには e2-medium を使用してください。LAN(OPENCLAW_GATEWAY_BIND=lan)にバインドする場合は、続行する前に信頼できるブラウザオリジンを設定します。
ポートを変更した場合は、18789 を設定したポートに置き換えてください。
12

ノート PC からアクセスする

Gateway ポートを転送する SSH トンネルを作成します。
ブラウザで http://127.0.0.1:18789/ を開きます。不要な情報を含まないダッシュボードリンクを再表示します。
UI で共有シークレット認証を求められた場合は、設定したトークンまたは パスワードを Control UI 設定に貼り付けます(この Docker フローでは デフォルトでトークンが書き込まれます。パスワード認証に切り替えた場合は、 代わりに設定したパスワードを使用してください)。Control UI に unauthorized または disconnected (1008): pairing required が表示された場合は、ブラウザデバイスを承認します。
共有の永続化マップについては Docker VM ランタイム更新フローを参照してください。

トラブルシューティング

SSH 接続が拒否される VM の作成後、SSH 鍵の反映には 1~2 分かかる場合があります。しばらく待ってから再試行してください。 OS Login の問題 OS Login プロファイルを確認します。
アカウントに必要な IAM 権限(Compute OS Login または Compute OS Admin Login)が付与されていることを確認してください。 メモリ不足(OOM) Docker のビルドが Killedexit code 137 で失敗した場合、VM は OOM によって強制終了されています。

サービスアカウント(セキュリティのベストプラクティス)

個人利用では、デフォルトのユーザーアカウントで問題ありません。自動化または CI/CD では、最小限の権限を持つ専用のサービスアカウントを作成します。
自動化には Owner ロールを使用せず、機能する範囲で最も限定的なロールを使用してください。ロールについてを参照してください。

次のステップ

  • メッセージングチャネルを設定する: チャネル
  • ローカルデバイスを Node としてペアリングする: Node
  • Gateway を設定する: Gateway の設定

関連項目