OpenClaw on GCP Compute Engine(Docker、本番 VPS ガイド)

目標

GCP Compute Engine VM 上で Docker を使い、永続的な状態管理、ビルド済みバイナリ、安全な再起動動作を備えた OpenClaw Gateway を稼働させます。

「月額約 $5〜12 で OpenClaw を 24 時間稼働」させたい場合、Google Cloud 上で信頼性の高いセットアップが可能です。 料金はマシンタイプとリージョンによって異なります。ワークロードに合う最小の VM を選び、OOM が発生したらスケールアップしてください。

やること(わかりやすく)

  • GCP プロジェクトを作成し、課金を有効化
  • Compute Engine VM を作成
  • Docker をインストール(分離されたアプリランタイム)
  • Docker で OpenClaw Gateway を起動
  • ~/.openclaw + ~/.openclaw/workspace をホスト上に永続化(再起動/再ビルドでも維持)
  • SSH トンネル経由でラップトップからコントロール UI にアクセス

Gateway へのアクセス方法:

  • ラップトップからの SSH ポートフォワーディング
  • ファイアウォールとトークンを自分で管理してポートを直接公開

このガイドでは GCP Compute Engine 上の Debian を使用します。 Ubuntu でも同様に動作します。パッケージ名は適宜読み替えてください。 汎用的な Docker フローについては、Docker を参照してください。


クイックパス(経験者向け)

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

必要なもの

  • GCP アカウント(e2-micro は Free Tier 対象)
  • gcloud CLI のインストール(または Cloud Console を使用)
  • ラップトップからの SSH アクセス
  • SSH + コピー/ペーストの基本的な操作知識
  • 約 20〜30 分
  • Docker と Docker Compose
  • モデル認証情報
  • 任意のプロバイダー認証情報
    • WhatsApp QR
    • Telegram ボットトークン
    • Gmail OAuth

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

方法 A:gcloud CLI(自動化に推奨)

https://cloud.google.com/sdk/docs/install からインストール

初期化と認証:

gcloud init
gcloud auth login

方法 B:Cloud Console

すべての手順は https://console.cloud.google.com の Web UI で実行できます。


2) GCP プロジェクトの作成

CLI:

gcloud projects create my-openclaw-project --name="OpenClaw Gateway"
gcloud config set project my-openclaw-project

https://console.cloud.google.com/billing で課金を有効にしてください(Compute Engine に必要)。

Compute Engine API を有効化:

gcloud services enable compute.googleapis.com

Console:

  1. IAM と管理 → プロジェクトを作成
  2. 名前を付けて作成
  3. プロジェクトの課金を有効化
  4. API とサービス → API を有効にする → 「Compute Engine API」を検索 → 有効にする

3) VM の作成

マシンタイプ:

タイプスペックコスト備考
e2-medium2 vCPU、4GB RAM約 $25/月ローカル Docker ビルドに最も安定
e2-small2 vCPU、2GB RAM約 $12/月Docker ビルドの最小推奨
e2-micro2 vCPU(共有)、1GB RAMFree Tier 対象Docker ビルドで OOM(exit 137)になりやすい

CLI:

gcloud compute instances create openclaw-gateway \
  --zone=us-central1-a \
  --machine-type=e2-small \
  --boot-disk-size=20GB \
  --image-family=debian-12 \
  --image-project=debian-cloud

Console:

  1. Compute Engine → VM インスタンス → インスタンスを作成
  2. 名前:openclaw-gateway
  3. リージョン:us-central1、ゾーン:us-central1-a
  4. マシンタイプ:e2-small
  5. ブートディスク:Debian 12、20GB
  6. 作成

4) VM への SSH 接続

CLI:

gcloud compute ssh openclaw-gateway --zone=us-central1-a

Console:

Compute Engine ダッシュボードで VM の横にある「SSH」ボタンをクリックしてください。

VM 作成後、SSH キーの伝播に 1〜2 分かかる場合があります。接続が拒否された場合は、少し待ってからリトライしてください。


5) Docker のインストール(VM 上)

sudo apt-get update
sudo apt-get install -y git curl ca-certificates
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER

グループ変更を有効にするため、ログアウトして再ログインします:

exit

再度 SSH 接続:

gcloud compute ssh openclaw-gateway --zone=us-central1-a

確認:

docker --version
docker compose version

6) OpenClaw リポジトリのクローン

git clone https://github.com/openclaw/openclaw.git
cd openclaw

このガイドでは、バイナリの永続化を保証するためにカスタムイメージをビルドすることを前提としています。


7) 永続ホストディレクトリの作成

Docker コンテナはエフェメラルです。 長期保存データはすべてホスト上に配置する必要があります。

mkdir -p ~/.openclaw
mkdir -p ~/.openclaw/workspace

8) 環境変数の設定

リポジトリルートに .env を作成します。

OPENCLAW_IMAGE=openclaw:latest
OPENCLAW_GATEWAY_TOKEN=change-me-now
OPENCLAW_GATEWAY_BIND=lan
OPENCLAW_GATEWAY_PORT=18789

OPENCLAW_CONFIG_DIR=/home/$USER/.openclaw
OPENCLAW_WORKSPACE_DIR=/home/$USER/.openclaw/workspace

GOG_KEYRING_PASSWORD=change-me-now
XDG_CONFIG_HOME=/home/node/.openclaw

強力なシークレットを生成:

openssl rand -hex 32

このファイルをコミットしないでください。


9) Docker Compose の設定

docker-compose.yml を作成または更新します。

services:
  openclaw-gateway:
    image: ${OPENCLAW_IMAGE}
    build: .
    restart: unless-stopped
    env_file:
      - .env
    environment:
      - HOME=/home/node
      - NODE_ENV=production
      - TERM=xterm-256color
      - OPENCLAW_GATEWAY_BIND=${OPENCLAW_GATEWAY_BIND}
      - OPENCLAW_GATEWAY_PORT=${OPENCLAW_GATEWAY_PORT}
      - OPENCLAW_GATEWAY_TOKEN=${OPENCLAW_GATEWAY_TOKEN}
      - GOG_KEYRING_PASSWORD=${GOG_KEYRING_PASSWORD}
      - XDG_CONFIG_HOME=${XDG_CONFIG_HOME}
      - PATH=/home/linuxbrew/.linuxbrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    volumes:
      - ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw
      - ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace
    ports:
      # 推奨:VM 上では Gateway をループバック限定に。SSH トンネル経由でアクセス。
      # パブリックに公開する場合は `127.0.0.1:` プレフィックスを削除し、ファイアウォールを適切に設定。
      - "127.0.0.1:${OPENCLAW_GATEWAY_PORT}:18789"
    command:
      [
        "node",
        "dist/index.js",
        "gateway",
        "--bind",
        "${OPENCLAW_GATEWAY_BIND}",
        "--port",
        "${OPENCLAW_GATEWAY_PORT}",
      ]

10) Docker VM 共通ランタイム手順

共通の Docker ホストフローについては、共通ランタイムガイドを参照してください:


11) GCP 固有の起動に関する注意事項

GCP では、pnpm install --frozen-lockfile の実行中に Killed または exit code 137 でビルドが失敗する場合、VM のメモリ不足です。最低 e2-small、信頼性の高い初回ビルドには e2-medium を使用してください。

LAN にバインドする場合(OPENCLAW_GATEWAY_BIND=lan)、続行前に信頼済みブラウザオリジンを設定してください:

docker compose run --rm openclaw-cli config set gateway.controlUi.allowedOrigins '["http://127.0.0.1:18789"]' --strict-json

Gateway ポートを変更した場合は、18789 を設定済みのポートに置き換えてください。

12) ラップトップからのアクセス

SSH トンネルを作成して Gateway ポートを転送します:

gcloud compute ssh openclaw-gateway --zone=us-central1-a -- -L 18789:127.0.0.1:18789

ブラウザで以下を開きます:

http://127.0.0.1:18789/

トークン付きのダッシュボードリンクを取得:

docker compose run --rm openclaw-cli dashboard --no-open

その URL からトークンを貼り付けてください。

コントロール UI に unauthorizeddisconnected (1008): pairing required が表示される場合は、ブラウザデバイスを承認してください:

docker compose run --rm openclaw-cli devices list
docker compose run --rm openclaw-cli devices approve <requestId>

永続化とアップデートのリファレンスが再度必要な場合は、Docker VM ランタイムDocker VM ランタイムのアップデートを参照してください。


トラブルシューティング

SSH 接続が拒否される

VM 作成後、SSH キーの伝播に 1〜2 分かかる場合があります。少し待ってからリトライしてください。

OS Login の問題

OS Login プロファイルを確認:

gcloud compute os-login describe-profile

アカウントに必要な IAM 権限(Compute OS Login または Compute OS Admin Login)があることを確認してください。

メモリ不足(OOM)

Docker ビルドが Killedexit code 137 で失敗する場合、VM が OOM-killed されています。最低 e2-small、推奨は e2-medium(ローカルビルドの安定性向上)にアップグレードしてください:

# まず VM を停止
gcloud compute instances stop openclaw-gateway --zone=us-central1-a

# マシンタイプを変更
gcloud compute instances set-machine-type openclaw-gateway \
  --zone=us-central1-a \
  --machine-type=e2-small

# VM を起動
gcloud compute instances start openclaw-gateway --zone=us-central1-a

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

個人使用であれば、デフォルトのユーザーアカウントで十分です。

自動化や CI/CD パイプラインでは、最小権限のサービスアカウントを作成してください:

  1. サービスアカウントの作成:

    gcloud iam service-accounts create openclaw-deploy \
      --display-name="OpenClaw Deployment"
  2. Compute Instance Admin ロール(またはより狭いカスタムロール)を付与:

    gcloud projects add-iam-policy-binding my-openclaw-project \
      --member="serviceAccount:[email protected]" \
      --role="roles/compute.instanceAdmin.v1"

自動化に Owner ロールを使用しないでください。最小権限の原則に従ってください。

IAM ロールの詳細は https://cloud.google.com/iam/docs/understanding-roles を参照してください。


次のステップ