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/
| 項目 | 値 |
|---|---|
| URL | https://claw.siruera.com |
| サーバー | pm2 + tsx (server/index.ts) |
| ポート | 8790 |
| リバースプロキシ | Docker Caddy (n8n-caddy-1) |
| SSL | Let’s Encrypt(Caddy自動管理) |
| 認証 | API_AUTH_TOKEN(.env) |
デプロイ手順
1. ローカルでビルド
cd "c:\ai_work\quartz-site\obsidian valut\claw-empire"
npm run build2. 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.comCaddyfile (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 →
.envでHOST=0.0.0.0に変更
403 Forbidden(静的ファイル)
- 原因: CORS設定でOriginが許可されていない
- 対策:
.envのALLOWED_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\