Claw-Empire VPSデプロイ手順書

概要

Claw-Empire(AIエージェントオフィスUI)を VPS(162.43.15.17)にデプロイし、https://claw.siruera.com で公開した。

構成

[ブラウザ] → [Caddy (Docker:443)] → [pm2 Node.js (0.0.0.0:8790)]
                                          ↓
                                   /opt/claw-empire/
項目
URLhttps://claw.siruera.com
サーバーpm2 + tsx (server/index.ts)
ポート8790
リバースプロキシDocker Caddy (n8n-caddy-1)
SSLLet’s Encrypt(Caddy自動管理)
認証API_AUTH_TOKEN(.env)

デプロイ手順

1. ローカルでビルド

cd "c:\ai_work\quartz-site\obsidian valut\claw-empire"
npm run build

2. VPSへ転送

# zipで圧縮して転送
cd "c:\ai_work\quartz-site\obsidian valut\claw-empire"
tar -czf /tmp/claw-deploy.tar.gz dist/ server/ package.json package-lock.json .env
scp /tmp/claw-deploy.tar.gz root@n8n.siruera.com:/tmp/
 
# VPS上で解凍
ssh root@n8n.siruera.com "cd /opt/claw-empire && tar -xzf /tmp/claw-deploy.tar.gz && npm install --production"

3. pm2 再起動

ssh root@n8n.siruera.com "pm2 restart claw-empire --update-env && pm2 save"

設定ファイル

.env (/opt/claw-empire/.env)

PORT=8790
HOST=0.0.0.0
API_AUTH_TOKEN=<設定済み>
ALLOWED_ORIGINS=https://claw.siruera.com

Caddyfile (docker exec n8n-caddy-1 cat /etc/caddy/Caddyfile)

claw.siruera.com {
  reverse_proxy 172.19.0.1:8790
}

UFW ルール

# Docker bridgeからpm2への通信許可
ufw allow from 172.19.0.0/16 to any port 8790 proto tcp comment 'Caddy Docker to Claw-Empire'

トラブルシューティング

502 Bad Gateway

  • 確認: ssh root@n8n.siruera.com "pm2 status && ss -tlnp sport = :8790"
  • 原因1: pm2が停止 → pm2 restart claw-empire
  • 原因2: HOST=127.0.0.1 → .envHOST=0.0.0.0に変更

403 Forbidden(静的ファイル)

  • 原因: CORS設定でOriginが許可されていない
  • 対策: .envALLOWED_ORIGINSにドメインを追加

SSL証明書エラー

  • 確認: docker logs n8n-caddy-1 2>&1 | grep -i cert
  • 対策: DNSが正しく設定されていればCaddyが自動取得。Caddy再起動: docker restart n8n-caddy-1

関連ファイル

  • VPS運用情報
  • ソースコード: c:\ai_work\quartz-site\obsidian valut\claw-empire\