Xserver VPSのDocker環境(Dify + n8n)にOpenClawを追加してLINE Bot化する全記録

Xserver VPSのDocker環境(Dify + n8n)にOpenClawを追加してLINE Bot化する全記録

誰かの役に立つように書き残す。2日間・合計9時間・ハマりポイント14個の全記録。

背景

Xserver VPS上でDifyとn8nがDocker Composeで同居している環境に、OpenClawを追加。LINE Messaging API経由でAIエージェントとして動かし、LINEに話しかけるとAIが返事する構成を作った。

OpenClawの設計思想

OpenClawの創始者Peter Steinbergerは「ローカルファースト」のアーキテクチャを意図的に構築している。ただし「ローカル」とは「個人のMac限定」ではなく、「ユーザーが管理するインフラ上で動かす」という意味。ノートPC、Mac Mini、ラズパイ、VPS、全てが想定対象。公式スローガンは "Your assistant. Your machine. Your rules."

つまりVPSでの運用は公式に想定された構成の一つ。ただしDockerでのデプロイは別問題で、Dockerのネットワーク分離とOpenClawのセキュリティモデル(localhost以外を疑う設計)の相性が悪い。 これが今回のハマりポイントの大半の根本原因。

参考: Fortune - Who is OpenClaw creator Peter Steinberger?
参考: Y Combinator独占インタビュー

最終構成

  openclaw:
    image: ghcr.io/openclaw/openclaw:latest
    container_name: docker-openclaw
    restart: unless-stopped
    ports:
      - "18789:18789"
    volumes:
      - ./openclaw/data:/home/node/.openclaw      # ← /root/.openclawではない!
      - ./openclaw/gogcli:/home/node/.config/gogcli
    environment:
      - OPENCLAW_GATEWAY_PORT=18789
      - PATH=/home/node/.openclaw/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      # OPENCLAW_GATEWAY_BINDは書かない(設定ファイルで管理)
    env_file:
      - ./openclaw/.env

ハマりポイント全14個

# 問題 解決策
1 Nginx起動しない($http_upgradeがenvsubstで空文字) 別ファイルws-upgrade.confに切り出し
2 502 Bad Gateway(loopbackバインド) gateway.bind "lan"
3 pairing required(Docker NAT) trustedProxies ["172.18.0.0/16"] + devices approve
4 Webhook POST 404 パスは /line/webhook/webhooks/lineではない)
5 LINE 401 Channel IDではなくChannel Access Tokenを使う
6 LINE返信来ない pairing approve line <code>
7 ダッシュボード1006 (pairing) devices approve
8 ダッシュボード1006 (WebSocket) location = /openclaw(末尾スラッシュなし)を追加
9 ダッシュボード origin拒否 controlUi.allowedOriginsに外部ドメイン追加
10 qwen2.5:3bハルシネーション 公式ドキュメントでダブルチェック
11 設定全消滅 ボリュームマウント /root/.openclaw/home/node/.openclaw
12 gogバイナリ消滅 永続化ボリューム内に配置
13 gateway.bindが毎回戻る docker-compose.yamlのOPENCLAW_GATEWAY_BIND環境変数を削除
14 gog認証state mismatch Step 2にも--services calendarを付ける

詳細は OpenClaw_Docker環境の崩壊と復旧 を参照。


参考リンク

関連記事