操作
バグ #411
未完了Phase 5: search.call2arm.com 本番デプロイ + VPS-ROOT完全統合
ステータス:
新規
優先度:
通常
担当者:
-
開始日:
2025-06-09
期日:
進捗率:
0%
予定工数:
説明
🎯 目的¶
search.call2arm.com サービスの本番環境デプロイと VPS-ROOT インフラとの完全統合
📋 前提条件¶
- ✅ チケット407-408: Node.js API + projects.jsonインポート完了
- ✅ チケット409: conversations.json大容量インポート完了
- ✅ チケット410: React WebUI統合完了
- ✅ VPS-ROOT proxy-network 環境存在
🔧 実装内容¶
Phase 5.1: Nginx SNI統合¶
リバースプロキシ設定¶
- ドメイン: https://search.call2arm.com
- SSL証明書: Let's Encrypt ワイルドカード証明書活用
- プロキシ設定: コンテナ名ベースルーティング
設定ファイル統合¶
# /root/nginx-proxy/conf.d/search.call2arm.com.conf
server {
listen 443 ssl http2;
server_name search.call2arm.com;
# React SPA
location / {
proxy_pass http://claude-search-web:80;
proxy_set_header Host $host;
}
# API エンドポイント
location /api/v2/ {
proxy_pass http://claude-search-api:8001/api/v2/;
client_max_body_size 500M;
}
}
Phase 5.2: Docker Compose統合¶
VPS-ROOT統合設定¶
- ネットワーク: proxy-network参加
- ボリューム: 永続化データ管理
- ヘルスチェック: サービス監視機能
- 自動再起動: unless-stopped設定
本番用Docker構成¶
# docker-compose-production.yml
services:
claude-search-api:
build:
context: .
dockerfile: Dockerfile.node
container_name: claude-search-api
restart: unless-stopped
environment:
- NODE_ENV=production
- DATABASE_URL=${DATABASE_URL}
networks:
- claude-search-network
- proxy-network
claude-search-web:
build:
context: react-app
dockerfile: Dockerfile
container_name: claude-search-web
restart: unless-stopped
networks:
- proxy-network
Phase 5.3: 監視・ログ・バックアップ¶
アプリケーション監視¶
- ヘルスチェック: 自動サービス監視
- メトリクス: CPU・メモリ・ディスク使用量
- アラート: サービス停止時の通知
ログ管理¶
- アプリケーションログ: 構造化ログ出力
- アクセスログ: Nginx統合ログ
- エラーログ: 詳細エラートラッキング
- ログローテーション: 自動ログファイル管理
データバックアップ¶
- PostgreSQL: 日次自動バックアップ
- ファイルデータ: プロジェクト・会話データ
- 設定ファイル: システム設定バックアップ
- 復旧手順: 災害復旧プロシージャ
Phase 5.4: セキュリティ強化¶
アクセス制御¶
- HTTPS強制: HTTP → HTTPS リダイレクト
- セキュリティヘッダー: CSP, HSTS, X-Frame-Options
- レート制限: API呼び出し制限
- IPフィルタリング: 必要に応じたアクセス制限
認証・認可¶
- API認証: Claude API Key検証
- セッション管理: 安全なセッション処理
- データ暗号化: 機密データの暗号化保存
🚀 デプロイメント手順¶
段階的デプロイ¶
- ステージング: 開発環境でのテスト
- Blue-Green: 無停止デプロイ
- カナリア: 段階的リリース
- 本番: 完全移行
自動化スクリプト¶
#!/bin/bash
# deploy-search-service.sh
echo "🚀 search.call2arm.com デプロイ開始..."
# Docker イメージビルド
docker-compose -f docker-compose-production.yml build
# サービス更新 (無停止)
docker-compose -f docker-compose-production.yml up -d
# ヘルスチェック
curl -f https://search.call2arm.com/health
echo "✅ デプロイ完了!"
📊 パフォーマンス最適化¶
キャッシング戦略¶
- Nginx: 静的ファイルキャッシング
- Redis: API レスポンスキャッシング
- Browser: クライアントサイドキャッシング
データベース最適化¶
- インデックス: 検索クエリ最適化
- 接続プール: 効率的DB接続管理
- クエリ最適化: スロークエリ改善
🎯 成功指標¶
- https://search.call2arm.com 正常アクセス
- SSL証明書正常動作
- API・WebUI完全連携動作
- ヘルスチェック・監視動作
- バックアップ・復旧手順確認
- パフォーマンス目標達成 (< 2秒応答)
⚠️ 運用考慮事項¶
- 稼働率: 99.5% 以上
- データ保持: 無期限 (バックアップあり)
- スケーリング: 将来的な負荷増加対応
- メンテナンス: 定期メンテナンス手順
🔗 関連チケット¶
- #407-410 (前段階): API・WebUI・データインポート
- 未来のチケット: リモートMCP化、Claude Desktop連携
操作