プロジェクト

全般

プロフィール

バグ #244

未完了

Docker環境構築とプロジェクト基盤セットアップ

Redmine Admin さんが3日前に追加. 3日前に更新.

ステータス:
進行中
優先度:
高め
担当者:
-
開始日:
2025-06-04
期日:
進捗率:

0%

予定工数:

説明

作業内容

プロジェクトの基盤となる環境を整備し、Docker Compose による開発・本番環境を構築します。

詳細タスク

  1. Docker Compose 構成ファイルの作成

    • docker-compose.yml に以下のサービスを定義:
      • task2-ai-api: Node.js API サービス
      • task2-vector-db: PostgreSQL + pgvector
      • task2-redis: Redis キャッシュ
    • 各サービスの基本構成:
      • ポート設定
      • ボリューム設定
      • 環境変数設定
      • 依存関係設定
  2. 環境変数ファイル (.env) の作成

    • データベース接続情報
    • API キー情報(Claude, CyatoGPT, DeepSeek)
    • Redmine API 接続情報
    • 各種設定パラメータ
  3. PostgreSQL + pgvector 初期化スクリプトの作成

    • /db/init.sql ファイルの作成
    • pgvector 拡張のインストール設定
    • 必要なテーブル・インデックスの作成
    • 初期データの投入(必要に応じて)
  4. API サービスのプロジェクト構造セットアップ

    • 基本ディレクトリ構造の作成
    • package.json の設定
    • TypeScript 設定(tsconfig.json)
    • ESLint, Prettier の設定
  5. 開発用スクリプトの作成

    • 開発環境起動スクリプト
    • データベース初期化スクリプト
    • テスト実行スクリプト

技術的指示

  • Docker Compose ファイルは version 3.8 を使用
  • Node.js イメージは node:18-alpine を使用
  • PostgreSQL イメージは ankane/pgvector:latest を使用
  • Redis イメージは redis:alpine を使用
  • 環境変数は .env ファイルで管理
  • 開発/本番環境の切り替えは環境変数で制御

成果物

  • docker-compose.yml
  • .env ファイル(サンプル)
  • /db/init.sql
  • プロジェクト基本構造
  • package.json
  • 開発用スクリプト

参考リソース

Redmine Admin さんが3日前に更新

チケット #244 作業完了報告

RAG システム基盤環境構築が完了しました!

✅ 完了した作業

1. Docker Compose 構成ファイル作成

  • PostgreSQL + pgvector ベクトルデータベース
  • Redis キャッシュサーバー
  • Meilisearch 検索エンジン
  • 拡張された API サービス
  • ネットワーク設定(rag-network)

2. 環境変数ファイル作成

  • AI API キー設定(Claude、ChatGPT、DeepSeek)
  • データベース認証情報
  • セキュリティ設定

3. PostgreSQL + pgvector 初期化完了

  • ベクトル検索用テーブル作成:
    • documents (ドキュメント管理)
    • document_chunks (チャンク管理)
    • embeddings (ベクトル埋め込み)
    • conversations (会話履歴)
    • search_logs (検索ログ)
  • pgvector 拡張機能有効化
  • HNSW インデックス作成
  • 検索関数実装 (vector_search, get_rag_stats)

4. API サービス拡張

  • Express.js ベースの REST API
  • セキュリティミドルウェア (helmet, CORS, rate limiting)
  • エラーハンドリング
  • ヘルスチェック機能

5. 開発用ツール作成

  • 自動セットアップスクリプト (dev-setup.sh)
  • データベース初期化スクリプト
  • Docker 構成管理

🧪 動作確認完了

データベース統計情報

{
  "total_documents": 2,
  "total_chunks": 0, 
  "total_embeddings": 0,
  "total_conversations": 0,
  "documents_by_source": {"system": 2},
  "last_indexed": null,
  "database_size": "8005 kB"
}

API エンドポイント

📁 成果物

  1. docker-compose-with-ports.yml - 本番用構成
  2. docker-compose-minimal.yml - 開発・テスト用構成
  3. .env - 環境変数設定
  4. db/init_fixed.sql - データベース初期化スクリプト
  5. app/api/ - 拡張 API サービス
    • package.json - 依存関係定義
    • server.js - メインサーバー
    • Dockerfile - コンテナ設定
    • config/ - 設定ファイル群
  6. dev-setup.sh - 開発環境自動構築

🔜 次のステップ

基盤環境が完成したため、以下のチケットに進行可能です:

  • チケット #245-247: ベクトル DB 実装
  • チケット #248: RAG パイプライン実装
  • チケット #249-250: Redmine・コンテンツ連携

📊 技術仕様

  • Docker Compose: v3.8
  • PostgreSQL: 15 + pgvector latest
  • Redis: 7-alpine
  • Meilisearch: latest
  • Node.js: 18-alpine
  • API ポート: 3003 (外部アクセス用)

担当者: ito@minisform-ai
作業時間: 約2時間
完了日時: 2025-06-05 04:35 JST

Redmine Admin さんが3日前に更新

  • ステータス新規 から 進行中 に変更

基盤環境構築作業が完了しました。全てのサービスが正常に動作しており、次のチケット(#245-247)に進行可能な状態です。

Redmine Admin さんが3日前に更新

🌐 サブドメイン構成設計完了

✅ 追加したサブドメイン(7個)

RAG コアサービス

  1. rag.call2arm.com - RAG メイン API (rag-api:3000)
  2. embedding.call2arm.com - 埋め込み生成 API (rag-embedding:3001)
  3. ai.call2arm.com - AI プロキシ (rag-ai-proxy:3002)
  4. docs.call2arm.com - ドキュメント処理 (rag-docs:3003)

管理・監視サービス

  1. search.call2arm.com - Meilisearch UI (rag-search:7700)
  2. pgadmin.call2arm.com - PostgreSQL 管理 (rag-pgadmin:80)
  3. redis-insight.call2arm.com - Redis 管理 (rag-redis-insight:8001)

📋 既存サブドメイン(維持)

  • task.call2arm.com - Redmine UI 本番環境(変更なし)
  • task2.call2arm.com - Redmine UI 開発環境 + RAG 管理画面統合

🏗️ 作成済みファイル

  1. docker-compose-full-subdomains.yml - 全サービス Docker 構成
  2. nginx-rag-subdomains.conf - 全サブドメイン Nginx 設定
  3. .env - 拡張環境変数(OpenAI API、管理画面パスワード等)
  4. SUBDOMAINS.md - 構成ドキュメント

🔧 サービス構成

既存: task2-api, task2-ui
新規: rag-api, rag-embedding, rag-ai-proxy, rag-docs
管理: rag-pgadmin, rag-redis-insight  
インフラ: rag-vector-db, rag-redis, rag-search

🔒 セキュリティ設計

  • SSL証明書: call2arm.com ワイルドカード適用
  • アクセス制限: 管理系サブドメインは IP 制限
  • レート制限: API 系サービスに適用
  • CORS: *.call2arm.com ドメイン間連携

🎯 次のアクション

  1. Nginx 設定をメインサーバーに統合
  2. 各サービスの Dockerfile 作成
  3. サービス個別実装開始

設計方針決定完了: ポート管理からサブドメイン + コンテナ名管理への移行成功

担当者: ito@minisform-ai

他の形式にエクスポート: Atom PDF