ponshu-room-lite/tools/synology/docker-compose.yml

110 lines
4.2 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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