コンテンツにスキップ

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など)

最短で環境を構築するための手順です。

1) VPSの準備とDockerのインストール

Section titled “1) VPSの準備とDockerのインストール”

HetznerでUbuntuまたはDebianのVPSを作成し、rootでログインします。

Terminal window
ssh root@YOUR_VPS_IP

パッケージを更新し、Dockerをインストールします。

Terminal window
apt-get update
apt-get install -y git curl ca-certificates
curl -fsSL https://get.docker.com | sh

2) リポジトリのクローンとディレクトリ作成

Section titled “2) リポジトリのクローンとディレクトリ作成”

OpenClawのリポジトリをクローンし、データ永続化用のディレクトリを作成します。Dockerコンテナが消えてもデータが残るように、ホスト側に保存場所を作ります。

Terminal window
git clone https://github.com/openclaw/openclaw.git
cd openclaw
mkdir -p /root/.openclaw
mkdir -p /root/.openclaw/workspace
# コンテナユーザー(uid 1000)に権限を付与
chown -R 1000:1000 /root/.openclaw
chown -R 1000:1000 /root/.openclaw/workspace

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

Terminal window
OPENCLAW_IMAGE=openclaw:latest
OPENCLAW_GATEWAY_TOKEN=change-me-now
OPENCLAW_GATEWAY_BIND=lan
OPENCLAW_GATEWAY_PORT=18789
OPENCLAW_CONFIG_DIR=/root/.openclaw
OPENCLAW_WORKSPACE_DIR=/root/.openclaw/workspace
GOG_KEYRING_PASSWORD=change-me-now
XDG_CONFIG_HOME=/home/node/.openclaw

※ openssl rand -hex 32 などで強力なトークンを生成してください。このファイルはコミットしないでください。

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 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
# 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
# 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"]

イメージをビルドしてコンテナを起動します。

Terminal window
docker compose build
docker compose up -d openclaw-gateway

起動後、自分のPCからSSHトンネルを張ってControl UIにアクセスします。

Terminal window
ssh -N -L 18789:127.0.0.1:18789 root@YOUR_VPS_IP

ブラウザで http://127.0.0.1:18789/ を開き、設定したトークンを入力してください。

再起動すると追加したツールが消えてしまう

Section titled “再起動すると追加したツールが消えてしまう”

実行中のコンテナ内で apt-get や curl を使ってツールをインストールしていませんか? Dockerコンテナは使い捨ての環境です。解決策として、必ず Dockerfile にインストール手順を記述し、イメージを再ビルドしてください。

バイナリが正しくインストールされているか確認したい

Section titled “バイナリが正しくインストールされているか確認したい”

以下のコマンドで、コンテナ内にバイナリが存在するか確認できます。

Terminal window
docker compose exec openclaw-gateway which gog
docker compose exec openclaw-gateway which wacli

パスが表示されれば成功です。

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 も活用してください。

OpenClaw

OpenClaw Expert

まだ解決しませんか?

このページで解決しない場合は、OpenClaw Expertに直接質問してください。