目標
Hetzner の VPS 上で Docker を使って、状態が永続化され、必要なバイナリをビルド時に組み込み、安全に再起動できる OpenClaw ゲートウェイを常時稼働させます。 「月額およそ 5 ドルで OpenClaw を 24 時間 365 日動かしたい」場合、この構成が最もシンプルで信頼しやすい選択です。Hetzner の料金は変わることがあるため、まずは最小の Debian / Ubuntu VPS を選び、OOM が出たらスケールアップしてください。 セキュリティモデルに関する前提:- 全員が同じ信頼境界に属し、ランタイムが業務専用なら、社内共有エージェント構成でも問題ありません
- 専用 VPS / 専用ランタイム / 専用アカウントを保ち、そのホストに個人用の Apple、Google、ブラウザ、パスワードマネージャープロファイルを置かないでください
- 利用者同士を相互に信頼できない場合は、ゲートウェイ、ホスト、OS ユーザー単位で分離してください
何をするのか (簡単に)
- Hetzner で小さな Linux サーバーを借りる
- Docker を入れて、アプリ実行環境を分離する
- Docker 内で OpenClaw ゲートウェイを起動する
~/.openclawと~/.openclaw/workspaceをホスト側に永続化する- ノート PC から SSH トンネル経由で Control UI へアクセスする
- ノート PC からの SSH ポートフォワーディング
- ファイアウォールとトークン管理を自前で行う前提での直接ポート公開
クイックパス (慣れている運用者向け)
- Hetzner VPS を用意する
- Docker をインストールする
- OpenClaw リポジトリを clone する
- 永続化用のホストディレクトリを作る
.envとdocker-compose.ymlを設定する- 必要なバイナリをイメージへ組み込む
docker compose up -dを実行する- 永続化とゲートウェイ到達性を確認する
必要なもの
- root アクセス可能な Hetzner VPS
- ノート PC からの SSH アクセス
- SSH とコピー/ペースト操作の基本知識
- 20 分程度の作業時間
- Docker と Docker Compose
- モデル用の認証情報
- 任意のプロバイダー認証情報
- WhatsApp QR
- Telegram ボットトークン
- Gmail OAuth
1) VPS を用意する
Hetzner で Ubuntu または Debian の VPS を作成します。 root で接続します。2) Docker をインストールする (VPS 上)
3) OpenClaw リポジトリを clone する
4) 永続化用のホストディレクトリを作成する
Docker コンテナは一時的です。長期間残る状態はすべてホスト側に置く必要があります。5) 環境変数を設定する
リポジトリルートに.env を作成します。
6) Docker Compose を設定する
docker-compose.yml を作成または更新します。
--allow-unconfigured は初回ブートストラップを簡単にするためだけの指定であり、適切なゲートウェイ設定の代わりにはなりません。gateway.auth.token またはパスワードによる認証は必ず設定し、デプロイ先に適した安全な bind 設定を使ってください。
7) 必要なバイナリをイメージに組み込む (重要)
実行中コンテナの中でバイナリを追加インストールするのは避けてください。ランタイム中に入れたものは、コンテナ再起動で失われます。 skills が必要とする外部バイナリは、すべてイメージビルド時にインストールしておく必要があります。 以下は、よく使う 3 つのバイナリだけを例示しています。- Gmail アクセス用の
gog - Google Places 用の
goplaces - WhatsApp 用の
wacli
- Dockerfile を更新する
- イメージを再ビルドする
- コンテナを再起動する
8) ビルドして起動する
9) ゲートウェイを確認する
http://127.0.0.1:18789/
ゲートウェイトークンを貼り付けて接続してください。
何がどこに残るか (source of truth)
OpenClaw 自体は Docker で動きますが、Docker 自体は source of truth ではありません。長期間残る状態は、再起動、再ビルド、再起動後も維持できる必要があります。| Component | Location | Persistence mechanism | Notes |
|---|---|---|---|
| Gateway config | /home/node/.openclaw/ | Host volume mount | Includes openclaw.json, tokens |
| Model auth profiles | /home/node/.openclaw/ | Host volume mount | OAuth tokens, API keys |
| Skill configs | /home/node/.openclaw/skills/ | Host volume mount | Skill-level state |
| Agent workspace | /home/node/.openclaw/workspace/ | Host volume mount | Code and agent artifacts |
| WhatsApp session | /home/node/.openclaw/ | Host volume mount | Preserves QR login |
| Gmail keyring | /home/node/.openclaw/ | Host volume + password | Requires GOG_KEYRING_PASSWORD |
| External binaries | /usr/local/bin/ | Docker image | Must be baked at build time |
| Node runtime | Container filesystem | Docker image | Rebuilt every image build |
| OS packages | Container filesystem | Docker image | Do not install at runtime |
| Docker container | Ephemeral | Restartable | Safe to destroy |
Infrastructure as Code (Terraform)
インフラをコードで管理したいチーム向けに、コミュニティメンテナンスの Terraform 構成もあります。内容は次のとおりです。- リモートステート管理を含むモジュール化 Terraform 構成
- cloud-init による自動プロビジョニング
- デプロイスクリプト (bootstrap、deploy、backup / restore)
- セキュリティ強化 (firewall、UFW、SSH のみのアクセス)
- ゲートウェイアクセス用 SSH トンネル設定
- Infrastructure: openclaw-terraform-hetzner
- Docker config: openclaw-docker-config
Note: コミュニティメンテナンスです。問題報告やコントリビュート先は上記リポジトリを参照してください。