Summary
Docker Composeを使用して任意のLinuxサーバーにAnythingMCPをデプロイするためのステップバイステップガイド。Caddyリバースプロキシを介した自動SSLを含む。
前提条件
開始する前に、サーバーに以下がインストールされていることを確認してください:
- Docker と Docker Compose
- ポート 80 と 443 が開いていること(HTTPSを使用する場合)
- サーバーを指すドメイン名(オプション、SSLには必要)
クローンとセットアップの実行
git clone https://github.com/HelpCode-ai/anythingmcp.git
cd anythingmcp
bash setup.sh
インタラクティブウィザードが以下の手順を案内します:
- デプロイモード — Dockerを選択(推奨)
- ドメインとポート — ドメインを入力してCaddyを介してHTTPSを自動的に有効化
- MCP認証 — OAuth 2.0、APIキー、またはその両方
- メール(SMTP) — オプション、確認とパスワードリセット用
- Redis — オプション、レート制限とキャッシング用
すべてのシークレット(JWT、暗号化キー、データベースパスワード)は自動的に生成されます。
setup.shの役割
スクリプトは完全なデプロイメントパイプラインを処理します:
- セキュアなランダムシークレットを持つ
.envを生成 - ドメインが提供された場合、自動的にLet's Encrypt SSL用の
Caddyfileを作成 - 必要に応じて
docker-compose.override.ymlを介してRedisを追加 docker compose up -d --buildを実行してすべてのサービスを開始
アプリケーションは、NestJSバックエンド(ポート4000)とNext.jsフロントエンド(ポート3000)を持つ単一のコンテナとして実行され、PostgreSQL 17と共に動作します。
CaddyによるHTTPS
セットアップ中に実際のドメインを入力すると、Caddyは自動的に設定されます:
- アプリのポートは
127.0.0.1のみにバインド(公開されない) - Caddyはポート80と443のすべてのトラフィックを処理
- SSL証明書はLet's Encryptによって発行され、更新されます
手動での証明書管理は不要です。
デプロイの確認
すべてのコンテナが実行中であることを確認します:
docker compose ps
バックエンドのヘルスを確認:
curl http://localhost:4000/health
ダッシュボードを開く:
- Caddyを使用する場合:
https://yourdomain.com - Caddyを使用しない場合:
http://your-server-ip:3000
最初に登録したユーザーが管理者になります。
AnythingMCPの更新
git pull
docker compose up -d --build
データベースのマイグレーションは起動時に自動的に実行されます。
トラブルシューティング
ポートの競合
sudo lsof -i :80
sudo lsof -i :443
競合するサービスを停止するか、Caddyを無効にしてポート3000/4000でアプリに直接アクセスします。
データベースの問題
.env で資格情報を変更した場合、データベースボリュームをリセットします:
docker compose down -v
docker compose up -d
ログの確認
docker compose logs -f # すべてのサービス
docker compose logs -f app # アプリのみ
docker compose logs -f caddy # Caddyのみ
Caddy証明書の問題
ドメインのAレコードがサーバーを指していることを確認し、ポート80/443がACMEチャレンジに到達可能であることを確認してください。
このガイドは役に立ちましたか?