ホーム チュートリアル カテゴリ Skills サイトについて
ZH EN JA KO
インストール

HetznerクラウドサーバーでDockerを使ってOpenClawをデプロイする

· 11 分で読了

Hetznerの紹介

Hetznerはドイツの老舗クラウドサービスプロバイダーで、非常に高いコストパフォーマンスで知られています。ヨーロッパにあるCX22インスタンス(2コア4GBメモリ)は月額わずか数ユーロで、OpenClawのようなAIエージェントゲートウェイのデプロイに最適です。本記事では、Hetzner Cloud上でDocker Composeを使ってOpenClawをデプロイする方法を詳しく解説します。

Hetznerクラウドサーバーの作成

Hetzner Cloud Console(console.hetzner.cloud)にログインし、新しいプロジェクトの作成、または既存プロジェクトへのサーバー追加をクリックします。

サーバー構成の選択

  • ロケーション:ユーザーの分布に応じて選択(例:Falkenstein(ドイツ)、Helsinki(フィンランド)、Ashburn(アメリカ))
  • イメージ:Ubuntu 24.04 LTSを選択
  • タイプ:CX22(2 vCPU、4GB RAM)以上を推奨
  • SSHキー:安全なログインのために公開鍵を追加
  • ネットワーク:IPv4とIPv6を有効化

作成完了後、サーバーのパブリックIPアドレスを控えてください。

サーバーへの接続とDockerのインストール

SSHで新しいサーバーに接続します。

ssh root@あなたのサーバーIP

まずシステムを更新し、Dockerをインストールします。

apt update && apt upgrade -y
apt install -y ca-certificates curl gnupg
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

Dockerのインストール確認:

docker --version
docker compose version

プロジェクトディレクトリの作成

OpenClaw用の専用ディレクトリを作成します。

mkdir -p /opt/openclaw
cd /opt/openclaw

Docker Compose設定の作成

docker-compose.yml ファイルを作成します。

version: "3.8"

services:
  openclaw:
    image: node:22-slim
    container_name: openclaw-gateway
    restart: unless-stopped
    working_dir: /app
    volumes:
      - openclaw_config:/root/.openclaw
      - openclaw_app:/app
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
    command: >
      bash -c "
        npm install -g openclaw@latest &&
        openclaw start
      "
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
      interval: 30s
      timeout: 10s
      retries: 3

volumes:
  openclaw_config:
  openclaw_app:

この設定ファイルはNode.js 22ベースのコンテナを定義し、最新版OpenClawを自動インストールしてサービスを起動します。名前付きボリューム openclaw_config を使用してOpenClawの設定ディレクトリ ~/.openclaw を永続化し、コンテナ再起動時に設定データが失われないようにしています。

ここではBunランタイムを使用していません。Bunは一部のシーンでより高速ですが、WhatsAppやTelegramのWebSocket接続処理に既知のバグがあるため、OpenClaw公式はNode.jsの使用を推奨しています。

サービスの起動

以下のコマンドでOpenClawを起動します。

docker compose up -d

コンテナログで起動状態を確認します。

docker compose logs -f openclaw

初回起動時はコンテナがまずOpenClawをインストールするため、1-2分かかる場合があります。サービス起動成功のログが表示されたら、Ctrl+C でログ表示を終了します。

OpenClaw設定の初期化

実行中のコンテナに入って初期化を実行します。

docker compose exec openclaw bash

コンテナ内でガイドプログラムを実行します。

openclaw onboard --install-daemon

インタラクティブなプロンプトに従って以下の設定を完了します。

  1. AIモデルプロバイダーの選択と設定(OpenAI、Anthropicなど)
  2. 接続するチャットプラットフォームの設定(WhatsApp、Telegram、Discordなど)
  3. Webhook URLと関連認証情報の設定

完了後、診断コマンドですべてが正常かチェックします。

openclaw doctor

コンテナから退出します。

exit

ファイアウォールの設定

Hetzner Cloudには内蔵のファイアウォール機能があります。Cloud Consoleで以下のルールを設定します。

  • SSH:TCP 22ポートのインバウンドを許可
  • HTTP:TCP 80ポートのインバウンドを許可
  • HTTPS:TCP 443ポートのインバウンドを許可
  • OpenClaw Dashboard:TCP 3000ポートのインバウンドを許可(またはリバースプロキシ経由で転送)

サーバー上でUFWを使って設定することもできます。

ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 3000/tcp
ufw enable

Nginxリバースプロキシの設定(推奨)

HTTPSの有効化とセキュリティ向上のため、Nginxリバースプロキシの設定を推奨します。

apt install -y nginx certbot python3-certbot-nginx

Nginx設定ファイル /etc/nginx/sites-available/openclaw を作成します。

server {
    server_name openclaw.yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

設定の有効化とSSL証明書の取得:

ln -s /etc/nginx/sites-available/openclaw /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d openclaw.yourdomain.com

OpenClawの自動更新

シンプルな更新スクリプト /opt/openclaw/update.sh を作成します。

#!/bin/bash
cd /opt/openclaw
docker compose down
docker compose pull
docker compose up -d
docker compose exec -T openclaw npm install -g openclaw@latest
docker compose restart openclaw

cronに追加して定期的な自動更新を設定します。

chmod +x /opt/openclaw/update.sh
crontab -e
# 以下の行を追加、毎週日曜午前3時に自動更新
0 3 * * 0 /opt/openclaw/update.sh >> /var/log/openclaw-update.log 2>&1

バックアップ戦略

OpenClawの重要なデータは ~/.openclaw/ ディレクトリに保存されています。Hetznerのスナップショット機能でサーバー全体をバックアップすることも、設定ファイルを手動でバックアップすることもできます。

docker compose exec -T openclaw tar czf - /root/.openclaw > /opt/openclaw/backup-$(date +%Y%m%d).tar.gz

まとめ

Hetzner CloudとDocker Composeの組み合わせは、OpenClawをデプロイするコストパフォーマンスの高い方法です。本記事の設定により、安定稼働するOpenClaw AIエージェントゲートウェイを構築し、各種チャットプラットフォームとAIモデルを接続できます。Hetznerはヨーロッパのデータセンターでヨーロッパのユーザーに特に有利であり、アメリカのノードもグローバルデプロイのニーズに対応できます。

OpenClawは無料のオープンソースAIアシスタント。WhatsApp、Telegram、Discordなど多数のプラットフォームに対応