OpenClaw on GCP Compute Engine(Docker、本番VPSガイド)
目標
GCP Compute Engine VMでDockerを使用してOpenClaw Gatewayを永続的に実行し、永続状態、組み込みバイナリ、安全な再起動動作を実現します。
「月額約$5〜12でOpenClawを24時間365日稼働」したい場合、Google Cloud上での信頼性の高いセットアップです。 料金はマシンタイプとリージョンによって異なります。ワークロードに適した最小のVMを選び、OOMが発生したらスケールアップしてください。
何をするのか(シンプルに説明)
- GCPプロジェクトを作成し、請求を有効化
- Compute Engine VMを作成
- Docker(隔離されたアプリランタイム)をインストール
- DockerでOpenClaw Gatewayを起動
- ホスト上に~/.openclaw + ~/.openclaw/workspaceを永続化(再起動/再構築後も保持)
- SSHトンネル経由でラップトップからControl UIにアクセス
Gatewayへのアクセス方法:
- ラップトップからのSSHポートフォワーディング
- ファイアウォールとトークンを自分で管理する場合は直接ポート公開
このガイドではGCP Compute Engine上のDebianを使用します。 Ubuntuも動作します。パッケージを適宜マッピングしてください。 一般的なDockerフローについては、Dockerを参照してください。
クイックパス(経験豊富な運用者向け)
- GCPプロジェクトを作成 + Compute Engine APIを有効化
- Compute Engine VMを作成(e2-small、Debian 12、20GB)
- VMにSSH接続
- Dockerをインストール
- OpenClawリポジトリをクローン
- ホスト上に永続ディレクトリを作成
- .envとdocker-compose.ymlを設定
- 必要なバイナリを組み込み、ビルド、起動
必要なもの
- GCPアカウント(e2-microの無料利用枠対象)
- gcloud CLIをインストール(またはCloud Consoleを使用)
- ラップトップからのSSHアクセス
- SSHとコピー&ペーストの基本的な知識
- 約20〜30分
- DockerとDocker Compose
- モデル認証情報
- オプションのプロバイダー認証情報
- WhatsApp QRコード
- Telegram botトークン
- 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 のWebUIから実行可能
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:
- IAM & Admin > Create Projectへ移動
- 名前を付けて作成
- プロジェクトの請求を有効化
- APIs & Services > Enable APIs > "Compute Engine API"を検索 > Enableをクリック
3) VMを作成
マシンタイプ:
| タイプ | スペック | コスト | 備考 |
|---|---|---|---|
| e2-small | 2 vCPU、2GB RAM | 約$12/月 | 推奨 |
| e2-micro | 2 vCPU(共有)、1GB RAM | 無料利用枠対象 | 負荷下でOOMの可能性 |
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:
- Compute Engine > VM instances > Create instanceへ移動
- Name: openclaw-gateway
- Region: us-central1、Zone: us-central1-a
- Machine type: e2-small
- Boot disk: Debian 12、20GB
- Create
4) VMにSSH接続
CLI:
gcloud compute ssh openclaw-gateway --zone=us-central1-a
Console:
Compute EngineダッシュボードでVM横の「SSH」ボタンをクリック。
注: SSHキーの伝播にはVM作成後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:
# 推奨: GatewayをVM上でloopbackのみに保ち、SSHトンネル経由でアクセス。
# 公開する場合は、`127.0.0.1:`プレフィックスを削除し、適切にファイアウォールを設定してください。
- "127.0.0.1:${OPENCLAW_GATEWAY_PORT}:18789"
# オプション: iOS/AndroidノードをこのVMに対して実行し、Canvas hostが必要な場合のみ。
# 公開する場合は、/gateway/securityを読み、適切にファイアウォールを設定してください。
# - "18793:18793"
command:
[
"node",
"dist/index.js",
"gateway",
"--bind",
"${OPENCLAW_GATEWAY_BIND}",
"--port",
"${OPENCLAW_GATEWAY_PORT}"
]
10) 必要なバイナリをイメージに組み込む(重要)
実行中のコンテナ内でバイナリをインストールするのは罠です。 ランタイムでインストールされたものは再起動時に失われます。
スキルに必要なすべての外部バイナリは、イメージビルド時にインストールする必要があります。
以下の例は、3つの一般的なバイナリのみを示しています:
- gog Gmailアクセス用
- goplaces Google Places用
- wacli WhatsApp用
これらは例であり、完全なリストではありません。 同じパターンを使用して必要な数だけバイナリをインストールできます。
後で追加のバイナリに依存する新しいスキルを追加する場合は:
- Dockerfileを更新
- イメージを再ビルド
- コンテナを再起動
Dockerfileの例
FROM node:22-bookworm
RUN apt-get update && apt-get install -y socat && rm -rf /var/lib/apt/lists/*
# 例バイナリ1: Gmail CLI
RUN curl -L https://github.com/steipete/gog/releases/latest/download/gog_Linux_x86_64.tar.gz \
| tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/gog
# 例バイナリ2: Google Places CLI
RUN curl -L https://github.com/steipete/goplaces/releases/latest/download/goplaces_Linux_x86_64.tar.gz \
| tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/goplaces
# 例バイナリ3: WhatsApp CLI
RUN curl -L https://github.com/steipete/wacli/releases/latest/download/wacli_Linux_x86_64.tar.gz \
| tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/wacli
# 同じパターンを使用して以下にさらにバイナリを追加
WORKDIR /app
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./
COPY ui/package.json ./ui/package.json
COPY scripts ./scripts
RUN corepack enable
RUN pnpm install --frozen-lockfile
COPY . .
RUN pnpm build
RUN pnpm ui:install
RUN pnpm ui:build
ENV NODE_ENV=production
CMD ["node","dist/index.js"]
11) ビルドと起動
docker compose build
docker compose up -d openclaw-gateway
バイナリを確認:
docker compose exec openclaw-gateway which gog
docker compose exec openclaw-gateway which goplaces
docker compose exec openclaw-gateway which wacli
期待される出力:
/usr/local/bin/gog
/usr/local/bin/goplaces
/usr/local/bin/wacli
12) Gatewayを確認
docker compose logs -f openclaw-gateway
成功:
[gateway] listening on ws://0.0.0.0:18789
13) ラップトップからアクセス
Gatewayポートを転送するSSHトンネルを作成:
gcloud compute ssh openclaw-gateway --zone=us-central1-a -- -L 18789:127.0.0.1:18789
ブラウザで開く:
http://127.0.0.1:18789/
Gatewayトークンを貼り付けます。
何がどこに永続化されるか(信頼できる情報源)
OpenClawはDockerで実行されますが、Dockerは信頼できる情報源ではありません。 すべての長期的な状態は、再起動、再構築、再起動を生き残る必要があります。
| コンポーネント | 場所 | 永続化メカニズム | 備考 |
|---|---|---|---|
| Gateway設定 | /home/node/.openclaw/ | ホストボリュームマウント | openclaw.json、トークンを含む |
| モデル認証プロファイル | /home/node/.openclaw/ | ホストボリュームマウント | OAuthトークン、APIキー |
| スキル設定 | /home/node/.openclaw/skills/ | ホストボリュームマウント | スキルレベルの状態 |
| Agent workspace | /home/node/.openclaw/workspace/ | ホストボリュームマウント | コードとAgentアーティファクト |
| WhatsAppセッション | /home/node/.openclaw/ | ホストボリュームマウント | QRログインを保持 |
| Gmailキーリング | /home/node/.openclaw/ | ホストボリューム + パスワード | GOG_KEYRING_PASSWORDが必要 |
| 外部バイナリ | /usr/local/bin/ | Dockerイメージ | ビルド時に組み込む必要がある |
| Nodeランタイム | コンテナファイルシステム | Dockerイメージ | イメージビルドごとに再構築 |
| OSパッケージ | コンテナファイルシステム | Dockerイメージ | ランタイムでインストールしない |
| Dockerコンテナ | 一時的 | 再起動可能 | 安全に破棄可能 |
アップデート
VM上のOpenClawを更新するには:
cd ~/openclaw
git pull
docker compose build
docker compose up -d
トラブルシューティング
SSH接続が拒否される
SSHキーの伝播にはVM作成後1〜2分かかることがあります。待ってから再試行してください。
OS Loginの問題
OS Loginプロファイルを確認:
gcloud compute os-login describe-profile
アカウントに必要なIAM権限(Compute OS LoginまたはCompute OS Admin Login)があることを確認してください。
メモリ不足(OOM)
e2-microを使用してOOMが発生した場合、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パイプラインの場合、最小限の権限を持つ専用サービスアカウントを作成:
-
サービスアカウントを作成:
gcloud iam service-accounts create openclaw-deploy \ --display-name="OpenClaw Deployment" -
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 を参照してください。
次のステップ
- メッセージングチャネルを設定: Channels
- ローカルデバイスをノードとしてペアリング: Nodes
- Gatewayを設定: Gateway configuration