version: '3.8' # ========================================== # 🍶 Ponshu Room "AI Factory" Setup # ========================================== # このファイルはSynology Container Managerで「プロジェクト」として使用します。 # 3つの主要コンテナ (Gitea, Postgres, MCP) を一度に立ち上げます。 # # 変更推奨箇所: # - GITEA__database__PASSWD: 強固なパスワードに変更してください # - POSTGRES_PASSWORD: 上記と同じパスワードに変更してください services: # ---------------------------------------- # 1. Gitea (Git Server) # 役割: コードの「原本」を管理する倉庫。 # ---------------------------------------- gitea: image: gitea/gitea:1.21 container_name: gitea environment: - USER_UID=1026 # Synologyの一般的なユーザーID (環境に合わせて変更可) - USER_GID=100 - GITEA__database__DB_TYPE=postgres - GITEA__database__HOST=db:5432 - GITEA__database__NAME=gitea - GITEA__database__USER=gitea - GITEA__database__PASSWD=P@ssword_gitea_822929! # 【変更推奨】DBパスワード restart: always networks: - gitea_network volumes: - ./gitea:/data # リポジトリデータ (永続化) # - /etc/timezone:/etc/timezone:ro # - /etc/localtime:/etc/localtime:ro ports: - "3000:3000" # Web UI用ポート (ブラウザからアクセス) - "2222:22" # SSH用ポート (Git操作用) # ---------------------------------------- # 2. PostgreSQL (Database) # 役割: Giteaのユーザー情報や設定を保存するDB。 # ---------------------------------------- db: image: postgres:15 container_name: gitea_db restart: always environment: - POSTGRES_USER=gitea - POSTGRES_PASSWORD=P@ssword_gitea_822929! # 【変更推奨】Giteaの設定と合わせる - POSTGRES_DB=gitea networks: - gitea_network volumes: - ./postgres:/var/lib/postgresql/data # DBデータ (永続化) # ---------------------------------------- # 3. MCP Server (AI Bridge) # 役割: AI (Antigravity/Claude) がNASの中を操作するための窓口。 # Phase 2B (AI自動化) で本格稼働します。 # ---------------------------------------- mcp-server: image: node:20-slim container_name: mcp_server working_dir: /app volumes: - ./mcp:/app # MCPサーバーのコード置き場 - ./gitea:/data/gitea_files # AIがGiteaのファイルを読み書きするための共有設定 environment: - NODE_ENV=development # 初回起動時に必要なライブラリを自動インストールして待機 command: sh -c "npm install && node index.js; tail -f /dev/null" restart: always networks: - gitea_network # ---------------------------------------- # 4. AI Proxy Server (App Backend) # 役割: Ponshu Room Liteアプリからのリクエストを受け取り、Gemini APIに中継 # - APIキー保護: アプリにAPIキーを埋め込まない # - レート制限: 1デバイスあたり1日10回まで(Lite版) # - デバイスID認証: SHA256ハッシュ化されたIDで管理 # ---------------------------------------- ai-proxy: image: python:3.11-slim container_name: ai_proxy working_dir: /app volumes: - ./ai-proxy:/app # AI Proxyサーバーのコード - ./ai-proxy-data:/app/data # 使用状況データの永続化 environment: - GEMINI_API_KEY=${GEMINI_API_KEY} # 【重要】APIキーを.envファイルに設定してください - GEMINI_MODEL=gemini-2.5-flash # 一旦2.5を使用(RPD 20制限あり)。1.5にアクセスできたら変更 - RATE_LIMIT_PER_DAY=10 ports: - "8080:8080" # アプリからアクセスするポート # 初回起動時に依存関係をインストールしてサーバー起動 command: sh -c "pip install --no-cache-dir -r requirements.txt && python server.py" restart: always networks: - gitea_network # ---------------------------------------- # Network Setting # 内部通信用の専用ネットワーク # ---------------------------------------- networks: gitea_network: driver: bridge