OpenClaw AIアシスタントをCloudflare Workersで実行する:ステップバイステップチュートリアル
OpenClaw(旧Moltbot)をCloudflare Workersでデプロイ
OpenClawは、Telegram、Discord、Slack、ウェブベースのUIなどのチャットチャネルを強化できる軽量かつ拡張性のある個人用AIアシスタントです。Cloudflare Sandboxコンテナで実行すると、VMやKubernetesクラスターを管理する必要なく、安価で常時稼働、グローバルに分散されたデプロイを実現できます。
前提条件 * Cloudflare Workers「Paid」アカウント(Sandbox機能はWorkers Paidプランにのみ利用可能) * サポートされているLLMプロバイダー用のAPIキー(AnthropicのClaudeまたはCloudflareのAI Gatewayを推奨) * (任意)管理UIを保護するためのCloudflare Access認証情報と永続化用R2バケット
TL;DR –
npm installを実行し、シークレットを設定し、npm run deployでデプロイ後、https://your-worker.workers.dev/?token=YOUR_TOKENを開きます。
1. リポジトリをクローン
git clone https://github.com/cloudflare/moltworker
cd moltworker
リポジトリには
Dockerfile、wrangler.js、およびコントロールプレーンUI用にバンドルされたViteビルドが含まれています。
2. 依存関係をインストール
npm install
3. LLMシークレットを設定
直接Anthropicアクセス
npx wrangler secret put ANTHROPIC_API_KEY
もしくはコスト追跡推奨のCloudflare AI Gateway
npx wrangler secret put AI_GATEWAY_API_KEY
npx wrangler secret put AI_GATEWAY_BASE_URL
gatewayと直接Anthropicの両方のシークレットを設定した場合、gatewayが優先します。
4. ゲートウェイトークンを生成
コントロールUIは、Cloudflare Accessとは別にカスタムトークンで保護されています。32バイトの16進文字列を生成し、シークレットとして設定します。
export MOLTBOT_GATEWAY_TOKEN=$(openssl rand -hex 32)
echo "$MOLTBOT_GATEWAY_TOKEN" | npx wrangler secret put MOLTBOT_GATEWAY_TOKEN
このトークンは安全に保管してください – UIにアクセスする際のURLに使用します。
5. (任意)Cloudflare Accessを設定
管理UI(/_admin/)とWebSocketハンドシェイクをCloudflare Accessで保護すると、セキュリティレイヤーが追加されます。
- Workersダッシュボードでワーカーを選択し、設定 > ドメインとルート > workers.dev > Cloudflare Accessを有効化をクリックします。
- Access設定であなたのメールを許可リストに追加するか、OAuthプロバイダーを設定します。
- アプリケーションオーディエンス(AUD)タグをAccessアプリからコピーし、シークレットとして設定します。
npx wrangler secret put CF_ACCESS_AUD - あなたのチームドメイン(例:
myteam.cloudflareaccess.com)を設定します。npx wrangler secret put CF_ACCESS_TEAM_DOMAIN
これらのシークレットを設定後、再度デプロイ(npm run deploy)してください。
6. (任意)R2で永続ストレージ
R2が無い場合、すべてのデバイスペアリングとチャット履歴はsandboxが再起動すると消失します。データを永続化するには:
- moltbot-data という名前のR2バケットを作成します。
- Object Read & Write 権限付きのAPIトークンを生成します。
- シークレットを設定します。
npx wrangler secret put R2_ACCESS_KEY_ID npx wrangler secret put R2_SECRET_ACCESS_KEY npx wrangler secret put CF_ACCOUNT_ID
ワーカーは自動的に5分ごとにR2へ設定を同期します。
7. ワーカーをデプロイ
npm run deploy
デプロイ中はWranglerがViteバンドルをアップロードし、Cloudflareに環境変数を設定し、sandboxを起動します。最初のリクエストはコンテナ起動のため1〜2分かかる場合があります。
8. コントロールUIにアクセス
ブラウザを開き、以下へ移動します:
https://your-worker.workers.dev/?token=YOUR_GATEWAY_TOKEN
your-worker はデプロイ後に返されたルートに置き、YOUR_GATEWAY_TOKEN はステップ4で保存したトークンに置き換えてください。
デバイスペアリング
新しいクライアント(ブラウザまたはチャットプラットフォーム)が接続すると、承認を待ちます。/_admin/(Cloudflare Accessで保護)にある管理UIを使ってデバイスを承認します。
9. (任意)チャットチャネル
Telegram、Discord、Slackボットを有効にするには、関連トークンを追加します。
# Telegram
npx wrangler secret put TELEGRAM_BOT_TOKEN
# Discord
npx wrangler secret put DISCORD_BOT_TOKEN
# Slack
npx wrangler secret put SLACK_BOT_TOKEN
npx wrangler secret put SLACK_APP_TOKEN
その後再デプロイしてください。
10. (任意)ブラウザ自動化(CDP)
OpenClawはChrome DevTools Protocol(CDPシム)を介してヘッドレスChromeを制御できます。次のように設定します。
npx wrangler secret put CDP_SECRET
npx wrangler secret put WORKER_URL # 例: https://your-worker.workers.dev
CDPエンドポイント(/cdp/json/...)には CDP_SECRET ヘッダーが必要です。
11. デバッグとログ
.dev.vars で DEBUG_ROUTES=true を設定すると、/debug/processes や /debug/logs などのルートが有効になります。ローカル開発中やリアルタイム監視に便利です。
12. 高度な設定
- コンテナスリープ –
SANDBOX_SLEEP_AFTERを 10m 等に設定してコストを削減 - バックアップ – バケットが設定されていれば、
/admin/からオンデマンドでR2バックアップをトリガー可能 - カスタムAIプロバイダー – ワーカーは
OPENAI_API_KEYを直接受け付け、SDKでサポートされている任意のキーを使用可能
13. 結論
OpenClawをCloudflare Workersで動かすと、以下が手に入ります。
- Zero‑ops – スケーリング、ネットワーキング、セキュリティをCloudflareが管理
- グローバル低レイテンシ – ワーカーはCloudflareのエッジで実行
- 拡張性 – スキルや新チャネル、ブラウザ自動化を最小限の手間で追加可能
ソースはオープンソースで継続的に進化しています。GitHubのイシューやプルリクエストで最新情報を確認し、ハッキングをお楽しみください!
次のステップ
- 自動ウェブスクレイピング用の
cloudflare-browserスキルを試してみる skills/の下に新規フォルダを追加し、moltbot.jsonへ接続して独自スキルを作成- 使い分けとコスト管理のためにCloudflare AI Gatewayを統合
プロジェクトをフォークし、変更し、独自のOpenClaw実装を共有してください。頑張ってください!