OpenClawをHetzner VPSとDockerで運用する:プロダクション向けガイド
サーバーを24時間稼働させていると、再起動のたびに設定が消えてしまったり、必要なバイナリをインストールし直したりするのは非常に面倒です。特に、自分専用のツールを安定して動かし続けたい場合、インフラの管理に時間を取られたくはありません。
OpenClawを月額5ドル程度で24時間運用したいなら、Hetzner VPSとDockerを組み合わせるのが、最もシンプルで信頼できる方法です。このガイドでは、データの永続性を確保しつつ、安定したプロダクション環境を構築する手順を説明します。
- rootアクセス可能なHetzner VPS
- 自分のPCからのSSHアクセス
- SSH操作とコピー&ペーストの基本的な知識
- 作業時間:約20分
- Docker および Docker Compose
- モデルの認証資格情報(Model auth credentials)
- プロバイダーの資格情報(任意:WhatsApp QR, Telegram bot token, Gmail OAuthなど)
クイックスタート
Section titled “クイックスタート”最短で環境を構築するための手順です。
1) VPSの準備とDockerのインストール
Section titled “1) VPSの準備とDockerのインストール”HetznerでUbuntuまたはDebianのVPSを作成し、rootでログインします。
ssh root@YOUR_VPS_IPパッケージを更新し、Dockerをインストールします。
apt-get updateapt-get install -y git curl ca-certificatescurl -fsSL https://get.docker.com | sh2) リポジトリのクローンとディレクトリ作成
Section titled “2) リポジトリのクローンとディレクトリ作成”OpenClawのリポジトリをクローンし、データ永続化用のディレクトリを作成します。Dockerコンテナが消えてもデータが残るように、ホスト側に保存場所を作ります。
git clone https://github.com/openclaw/openclaw.gitcd openclaw
mkdir -p /root/.openclawmkdir -p /root/.openclaw/workspace
# コンテナユーザー(uid 1000)に権限を付与chown -R 1000:1000 /root/.openclawchown -R 1000:1000 /root/.openclaw/workspace3) 環境変数の設定
Section titled “3) 環境変数の設定”リポジトリのルートに .env ファイルを作成します。
OPENCLAW_IMAGE=openclaw:latestOPENCLAW_GATEWAY_TOKEN=change-me-nowOPENCLAW_GATEWAY_BIND=lanOPENCLAW_GATEWAY_PORT=18789
OPENCLAW_CONFIG_DIR=/root/.openclawOPENCLAW_WORKSPACE_DIR=/root/.openclaw/workspace
GOG_KEYRING_PASSWORD=change-me-nowXDG_CONFIG_HOME=/home/node/.openclaw※ openssl rand -hex 32 などで強力なトークンを生成してください。このファイルはコミットしないでください。
4) Docker Composeの設定
Section titled “4) Docker Composeの設定”docker-compose.yml を作成または更新します。セキュリティのため、Gatewayは127.0.0.1でバインドし、SSHトンネル経由でアクセスすることを推奨します。
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: - "127.0.0.1:${OPENCLAW_GATEWAY_PORT}:18789" command: [ "node", "dist/index.js", "gateway", "--bind", "${OPENCLAW_GATEWAY_BIND}", "--port", "${OPENCLAW_GATEWAY_PORT}", ]5) 必要なバイナリをイメージに含める
Section titled “5) 必要なバイナリをイメージに含める”実行中のコンテナ内でバイナリをインストールするのは避けましょう。再起動時にすべて失われてしまうからです。必要なツールは Dockerfile に記述してビルド時に含めます。
Dockerfile の例
FROM node:22-bookworm
RUN apt-get update && apt-get install -y socat && rm -rf /var/lib/apt/lists/*
# Gmail CLIRUN 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
# Google Places CLIRUN 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
# WhatsApp CLIRUN 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 /appCOPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./COPY ui/package.json ./ui/package.jsonCOPY scripts ./scripts
RUN corepack enableRUN pnpm install --frozen-lockfile
COPY . .RUN pnpm buildRUN pnpm ui:installRUN pnpm ui:build
ENV NODE_ENV=production
CMD ["node","dist/index.js"]6) ビルドと起動
Section titled “6) ビルドと起動”イメージをビルドしてコンテナを起動します。
docker compose builddocker compose up -d openclaw-gateway起動後、自分のPCからSSHトンネルを張ってControl UIにアクセスします。
ssh -N -L 18789:127.0.0.1:18789 root@YOUR_VPS_IPブラウザで http://127.0.0.1:18789/ を開き、設定したトークンを入力してください。
トラブルシューティング
Section titled “トラブルシューティング”再起動すると追加したツールが消えてしまう
Section titled “再起動すると追加したツールが消えてしまう”実行中のコンテナ内で apt-get や curl を使ってツールをインストールしていませんか? Dockerコンテナは使い捨ての環境です。解決策として、必ず Dockerfile にインストール手順を記述し、イメージを再ビルドしてください。
バイナリが正しくインストールされているか確認したい
Section titled “バイナリが正しくインストールされているか確認したい”以下のコマンドで、コンテナ内にバイナリが存在するか確認できます。
docker compose exec openclaw-gateway which gogdocker compose exec openclaw-gateway which wacliパスが表示されれば成功です。
永続化の仕組み
Section titled “永続化の仕組み”OpenClawの各コンポーネントがどこに保存されるかをまとめました。
| コンポーネント | 保存場所 | 永続化の方法 |
|---|---|---|
| Gateway設定 | /home/node/.openclaw/ | ホストボリュームマウント |
| モデル認証情報 | /home/node/.openclaw/ | ホストボリュームマウント |
| スキル設定 | /home/node/.openclaw/skills/ | ホストボリュームマウント |
| エージェントの作業領域 | /home/node/.openclaw/workspace/ | ホストボリュームマウント |
| 外部バイナリ | /usr/local/bin/ | Dockerイメージに含める |
| Node実行環境 | コンテナ内 | Dockerイメージに含める |
セットアップ中に困ったことがあれば、AI Setup Assistant も活用してください。
次のステップ
Section titled “次のステップ”OpenClaw Expert
まだ解決しませんか?
このページで解決しない場合は、OpenClaw Expertに直接質問してください。