操作
サポート #264
未完了call2arm.com インフラ設定マスター構成表: ドメイン・ルーティング・SSL完全ガイド
ステータス:
新規
優先度:
通常
担当者:
-
開始日:
2025-06-05
期日:
進捗率:
0%
予定工数:
説明
call2arm.com インフラ設定マスター構成表¶
🏗️ VPS-ROOT システム概要¶
基本情報¶
- サーバー: Ubuntu 24.04.2 LTS @ 85.131.243.51
- 管理端末: Windows 160.251.155.93 (ito@minisform-ai)
- SSL証明書: Let's Encrypt ワイルドカード (*.call2arm.com)
- プロキシ: nginx-proxy (Docker) - SNI方式
- ポート: 80/443 (nginx-proxy), 内部コンテナは独立ポート
📊 ドメイン・サービス マッピング表¶
ドメイン | サービス | コンテナ | 機能 | ステータス |
---|---|---|---|---|
call2arm.com | Redmine本番 | redmine-prod | プロジェクト管理 | 🟢 稼働中 |
dev.call2arm.com | Redmine開発 | redmine-dev-main | 開発環境 | 🟢 稼働中 |
task.call2arm.com | タスク管理 | task-news-ui/api | 既存システム | 🟢 稼働中 |
task2.call2arm.com | RAG統合 | task2-ui/api | Redmine+RAG統合 | 🟢 新構成 |
mcp.call2arm.com | MCP統合 | mcp-websocket-claude | Claude MCP | 🟢 稼働中 |
claude.call2arm.com | Claude統合 | mcp-claude-integration | Claude API | 🟢 稼働中 |
facty.call2arm.com | ファクトチェック | facty-api | API専用 | 🟢 稼働中 |
🎯 task2.call2arm.com 詳細構成(重要)¶
nginx-proxy ルーティング設定¶
# /root/nginx-proxy/conf.d/task2-call2arm.conf
# Redmine API → dev.call2arm.com
location ~ ^/api/(users|issues|projects|trackers|...)/ {
proxy_pass https://dev.call2arm.com;
proxy_set_header X-Redmine-API-Key $api_key;
}
# RAG/AI API → task2-api:3002
location ~ ^/api/(embeddings|search|chat|health)/ {
proxy_pass http://task2-api:3002;
}
# UI → task2-ui
location / {
proxy_pass http://task2-ui/;
}
Docker構成¶
# /var/docker/task2-service/docker-compose.yml
services:
task2-ui:
image: nginx:stable-alpine
volumes:
- ./app/web:/usr/share/nginx/html:ro
- ./redmine-ui/build:/usr/share/nginx/redmine-ui:ro # 重要
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
networks: [proxy-network, rag-network]
task2-api:
build: ./app/api
ports: ["3002:3002"] # 内部ポート
environment:
- NODE_ENV=development
- REDMINE_URL=https://dev.call2arm.com
- REDMINE_API_KEY=feb66d81a5f4ff9c585ce30fce2ac06e0554aec6
networks: [proxy-network, rag-network]
task2-vector-db:
image: ankane/pgvector:latest
ports: ["5434:5432"]
task2-redis:
image: redis:7-alpine
ports: ["6380:6379"]
task2-search:
image: getmeili/meilisearch:latest
ports: ["7701:7700"]
🔧 SSL/TLS 設定¶
ワイルドカード証明書¶
SSL証明書パス: /etc/letsencrypt/live/call2arm.com/
├── fullchain.pem # 証明書チェーン
├── privkey.pem # 秘密鍵
├── cert.pem # 証明書
└── chain.pem # 中間証明書
SSL設定 (全ドメイン共通)¶
ssl_certificate /etc/letsencrypt/live/call2arm.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/call2arm.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:...;
🐳 Docker ネットワーク構成¶
ネットワーク一覧¶
proxy-network # nginx-proxy アクセス用
rag-network # RAG/AI 内部通信用
redmine-network # Redmine 内部通信用
default # その他
コンテナ間通信¶
# 内部DNS名でアクセス可能
task2-api:3002 # RAG API
task2-ui:80 # UI
task2-vector-db:5432 # PostgreSQL+pgvector
task2-redis:6379 # Redis
task2-search:7700 # Meilisearch
📁 重要なパス構成¶
nginx-proxy 設定¶
/root/nginx-proxy/
├── conf.d/
│ ├── call2arm.conf # 本家Redmine
│ ├── dev.call2arm.conf # 開発Redmine
│ ├── task2-call2arm.conf # RAG統合環境 ⭐
│ ├── mcp.call2arm.conf # MCP
│ └── ...
└── docker-compose.yml
task2 プロジェクト¶
/var/docker/task2-service/
├── app/
│ ├── api/ # RAG API (Node.js)
│ └── web/ # メインUI
├── redmine-ui/build/ # Redmine UI ⭐
├── docker-compose.yml # サービス定義
├── nginx.conf # 内部nginx設定
└── .env # 環境変数
🔄 標準修正手順¶
nginx設定変更¶
# 1. バックアップ
cp /root/nginx-proxy/conf.d/TARGET.conf /root/nginx-proxy/conf.d/TARGET.conf.backup-$(date +%Y%m%d-%H%M%S)
# 2. 設定ファイル編集
nano /root/nginx-proxy/conf.d/TARGET.conf
# 3. 設定テスト
docker exec nginx-proxy nginx -t
# 4. 再起動
docker restart nginx-proxy
# 5. 動作確認
curl -k https://TARGET.call2arm.com/
Docker設定変更¶
# 1. プロジェクトディレクトリ
cd /var/docker/PROJECT-service/
# 2. バックアップ
cp docker-compose.yml docker-compose.yml.backup-$(date +%Y%m%d-%H%M%S)
# 3. 設定変更後
docker-compose down
docker-compose up -d
# 4. 動作確認
docker ps
curl -k https://PROJECT.call2arm.com/api/health
🚨 トラブルシューティング チェックリスト¶
1. ドメインアクセス不可¶
# DNS確認
nslookup DOMAIN.call2arm.com
# nginx設定確認
docker exec nginx-proxy nginx -t
grep -r "server_name DOMAIN" /root/nginx-proxy/conf.d/
# SSL証明書確認
openssl x509 -in /etc/letsencrypt/live/call2arm.com/fullchain.pem -text | grep -A1 "Subject Alternative Name"
2. API 404エラー¶
# プロキシ設定確認
cat /root/nginx-proxy/conf.d/DOMAIN.conf | grep -A5 -B5 "location.*api"
# バックエンドコンテナ確認
docker ps | grep PROJECT
docker logs PROJECT-api
# 内部接続テスト
docker exec nginx-proxy curl http://PROJECT-api:PORT/api/health
3. UI表示問題¶
# 静的ファイル確認
docker exec PROJECT-ui ls -la /usr/share/nginx/html/
# nginx設定確認
docker exec PROJECT-ui cat /etc/nginx/conf.d/default.conf
# マウント確認
docker inspect PROJECT-ui | grep -A10 Mounts
📋 今後の追加手順¶
新サービス追加時¶
- ドメイン決定: SERVICE.call2arm.com
-
nginx設定作成:
/root/nginx-proxy/conf.d/SERVICE.conf
-
Docker設定: 該当ディレクトリに
docker-compose.yml
-
ネットワーク参加:
proxy-network
に接続 - 動作確認: 全エンドポイントテスト
SSL証明書更新¶
# 自動更新確認
systemctl status certbot.timer
# 手動更新 (必要時)
certbot renew --nginx
docker restart nginx-proxy
この構成表により、call2arm.com インフラの混乱を防ぎ、効率的な開発・運用が可能になります。
表示するデータがありません
操作