# Ponshu Room Lite プロジェクト全体像(AI共有用) **作成日**: 2026-01-19 **対象読者**: ChatGPT, Gemini, Perplexity, Claude等のAIアシスタント **目的**: このプロジェクトの全体像を5分で理解できる統合ドキュメント --- ## 🎯 プロジェクト概要 ### アプリ名 **Ponshu Room Lite** - 日本酒を管理・記録するFlutterアプリ ### ビジョン 個人ユーザー向けの日本酒記録アプリから、**Posimai Core**という共通基盤を作り、お香アプリ・ネイルサロンアプリへと展開する。 ### ユーザー - **個人モード**: 日本酒愛好家(記録・分析・ゲーミフィケーション) - **ビジネスモード**: 飲食店(お品書き作成・Instagram販促・売上分析) ### 技術スタック ```yaml Frontend: Flutter 3.x (iOS/Android/Web) State Management: Riverpod 2.x Local Storage: Hive (NoSQL) AI Vision: Gemini 2.0 Flash (ラベル認識・スペック抽出) Backend (将来): Dart Frog + PostgreSQL + Redis Infrastructure: Synology NAS (16GB) + Docker + VM Network: Tailscale VPN CI/CD: Dokploy (自動デプロイ) ``` --- ## 📊 現在のステータス(2026年1月19日時点) ### 完了済み ✅ **Phase 1.0**: MVP完成(日本酒登録・カメラOCR・Gemini AI解析) ✅ **Phase 1.5**: UI/UX改善(ダークモード、バッジシステム、フォント切替) ✅ **Phase 2.0-A**: ビジネスモード(セット商品、お品書き作成) ✅ **アーキテクチャ決定**: Synology VM + Dokploy構成を採用 ### 進行中 🚧 **Phase 2.0-B**: AI自動化基盤(MCP、自動デプロイ) 🚧 **インフラ構築**: Synology VM設定、Dokployインストール ### 次のステップ 📋 **Week 1-4**: VM準備 → Dokployインストール → Tailscale設定 → Gitea連携 📋 **Phase 3**: お香アプリ展開(Posimai Core共通基盤化) --- ## 🏗️ 最終アーキテクチャ(Synology中心構成) ### 物理構成 ``` ┌─────────────────────────────────────────────────┐ │ 自宅 Synology NAS (16GB RAM) │ │ │ │ ┌───────────────────────────────────────────┐ │ │ │ DSM (Synology OS) │ │ │ │ - Container Manager │ │ │ │ - Virtual Machine Manager (VMM) │ │ │ └───────────────────────────────────────────┘ │ │ │ │ ┌───────────────────────────────────────────┐ │ │ │ VM #1: Ubuntu Server (4GB RAM) │ │ │ │ ┌─────────────────────────────────────┐ │ │ │ │ │ Dokploy │ │ │ │ │ │ - Traefik (Reverse Proxy) │ │ │ │ │ │ - Docker (App Containers) │ │ │ │ │ │ - sake-app │ │ │ │ │ │ - incense-app │ │ │ │ │ │ - nail-salon │ │ │ │ │ └─────────────────────────────────────┘ │ │ │ └───────────────────────────────────────────┘ │ │ │ │ ┌───────────────────────────────────────────┐ │ │ │ Docker Containers (DSM直下) │ │ │ │ - PostgreSQL (データベース) │ │ │ │ - Redis (キャッシュ) │ │ │ │ - Immich (写真管理+CLIP検索) │ │ │ │ - Ollama (ローカルAI、夜間バッチ) │ │ │ └───────────────────────────────────────────┘ │ │ │ │ ┌───────────────────────────────────────────┐ │ │ │ Gitea (DSM直下) │ │ │ │ - コード管理 │ │ │ │ - Webhook → Dokploy連携 │ │ │ └───────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────┘ ↑ │ Tailscale VPN │ ┌─────────────────────────────────────────────────┐ │ 開発PC (Windows/Mac) │ │ - Cursor / Claude Code │ │ - Git → Gitea Push │ └─────────────────────────────────────────────────┘ ``` ### ネットワークフロー ``` 外部インターネット ↓ Tailscale Funnel (HTTPS公開) ↓ https://posimai.ts.net ↓ Synology VM (Dokploy) ↓ Docker Containers (sake-app, incense-app等) ↓ データアクセス Synology DSM直下 (PostgreSQL, Redis) ``` ### メモリ配分(16GB) | コンポーネント | 割当 | 用途 | |---------------|------|------| | DSM本体 | 2GB | Synology OS | | VM (Dokploy) | 4GB | 自動デプロイ + アプリ | | PostgreSQL | 2GB | データベース | | Immich | 2-3GB | 写真管理+AI検索 | | Ollama | 4GB | ローカルAI(夜間) | | Redis等 | 1-2GB | キャッシュ | | 予備 | 1GB | バッファ | **合計**: 16GB(ギリギリだが実現可能) --- ## 💡 なぜこの構成なのか? ### 採用理由 #### 1. コストゼロ - ❌ VPS不要(月額¥500-1,000削減) - ✅ 年間コスト: 電気代のみ(¥9,600/年) #### 2. レイテンシ最小 - VM ↔ PostgreSQL: 同一物理マシン内(**<1ms**) - VPS案だと: 1-5ms(ネットワーク経由) #### 3. データ主権 - すべてのデータが手元(クラウド依存ゼロ) - 写真・個人情報が外部流出しない #### 4. Synologyの強みを最大活用 - 16GBメモリを全て使い切る - VMM(仮想マシン機能)の活用 - Container Managerとの共存 ### 比較表:VPS案 vs Synology VM案 | 観点 | VPS + Synology案 | **Synology VM案(採用)** | |------|-----------------|--------------------------| | **月額コスト** | ¥1,300 | **¥800** | | **レイテンシ** | 1-5ms | **<1ms** | | **メモリ余裕** | Synology: 10GB余裕 | Synology: 1GB余裕 | | **設定複雑度** | VPS設定 + Tailscale | **VMM設定のみ** | | **障害時影響** | VPS停止 or Synology停止 | **Synology停止のみ** | --- ## 🔄 開発フロー(自動化) ### 通常の開発作業 ``` 1. Cursorでコード編集 ↓ 2. git add . && git commit -m "機能追加" ↓ 3. git push origin main ↓ (Gitea Webhook) 4. Dokploy自動デプロイ ↓ 5. 30秒-2分後、本番環境に反映 開発者がやること: これだけ。 ``` ### AI自動化(Phase 2B - 将来) ``` 1. Claude Code (MCP) が自動コード生成 ↓ 2. 自動テスト実行 ↓ 3. パスしたらGit Push ↓ 4. Dokploy自動デプロイ ↓ 5. Slack/Discord通知 開発者の承認: 最終チェックのみ ``` --- ## 🛠️ 技術的な重要ポイント ### 1. ポート80/443問題の解決 **問題**: Synology DSMとDokploy(Traefik)が両方Port 80/443を使いたい **解決**: - DSM: Port 80/443を維持(管理画面用) - VM: 独自のIPアドレス(Tailscaleで公開) - 結果: ポート競合なし ### 2. メモリ不足リスク **対策**: - Ollamaは夜間バッチのみ起動(常駐させない) - Immichは必要時のみ起動 - Dokploy VM: 必要最低限の4GB ### 3. Gemini トークン消費削減 **戦略**: - 画像ハッシュ値でキャッシュ判定 - 同一画像は再送信しない - 夜間バッチ処理はOllama(無料)で実施 - 推定コスト: ¥500-1,000/月 ### 4. セキュリティ **対策**: - Tailscale VPN(ゼロトラストネットワーク) - 外部公開はFunnelで必要な分のみ - Git Webhookは署名検証 - 環境変数は.envで管理(Gitにコミットしない) --- ## 📁 プロジェクト構造 ### ディレクトリ構成(現在) ``` ponshu_room_lite/ ├── lib/ │ ├── models/ # データモデル (Hive) │ ├── providers/ # Riverpod状態管理 │ ├── screens/ # 画面UI │ ├── widgets/ # 再利用可能コンポーネント │ ├── services/ # AI・外部API連携 │ ├── theme/ # テーマ・スタイル │ └── main.dart ├── docs/ │ └── architecture/ # アーキテクチャ決定記録 ├── .claude/ │ └── commands/ # カスタムコマンド └── pubspec.yaml ``` ### 将来の構成(Posimai Core) ``` posimai_core/ ├── lib/ │ ├── core/ # 共通機能 │ │ ├── auth/ │ │ ├── camera/ │ │ ├── ai/ │ │ └── gamification/ │ └── apps/ │ ├── sake/ # 日本酒アプリ │ ├── incense/ # お香アプリ │ └── nail_salon/ # ネイルサロン ``` --- ## 🚀 実装ロードマップ ### Week 1: VM準備 ```bash 1. Synology VMM (Virtual Machine Manager) インストール 2. Ubuntu Server 22.04 LTS ダウンロード 3. VM作成 (CPU: 2コア, メモリ: 4GB, ストレージ: 40GB) ``` ### Week 2: Dokployインストール ```bash # VM内で実行 curl -sSL https://dokploy.com/install.sh | sh # 管理画面アクセス # http://vm-ip:3000 ``` ### Week 3: Tailscale設定 ```bash # VM内でTailscaleインストール curl -fsSL https://tailscale.com/install.sh | sh tailscale up # Funnel有効化(HTTPS公開) tailscale funnel 3000 # → https://vm-name.ts.net でアクセス可能 ``` ### Week 4: Gitea連携 ```yaml # Dokploy管理画面で設定 Repository: http://synology-ip:3000/user/sake-app.git Branch: main Auto Deploy: ON Environment Variables: DATABASE_URL: postgresql://user:pass@synology-ip:5432/posimai ``` --- ## 🎓 重要な学び・決定事項 ### アーキテクチャ決定 1. **Cloudflare Tunnel は不要** → Tailscale Funnelで十分 2. **VPS は不要** → Synology VM で完結 3. **Dokploy採用** → Vercel的なDX、GitOps実現 4. **Portainerは不使用** → GUIは便利だが自動化に不向き ### 開発原則 - **ずぼら哲学**: 手動作業を最小化、自動化を最大化 - **安全な自動化**: 完全自律型AIではなく、Git-push-triggered - **データ主権**: クラウド依存を避け、手元にデータを保持 - **段階的実装**: Phase 1 → 2A → 2B → 3と着実に進める ### AI活用方針 - **Gemini 2.0 Flash**: ラベル認識・スペック抽出(リアルタイム) - **Ollama (Llama 3.3)**: 夜間バッチ処理(無料) - **Claude Code (MCP)**: コード生成・レビュー(開発支援) - **Immich CLIP**: 写真検索(セマンティック検索) --- ## 🔗 関連ドキュメント - [最終アーキテクチャ決定版](./FINAL_ARCHITECTURE_SIMPLIFIED.md) - [VPS比較分析](./VPS_CRITICAL_COMPARISON.md) - [アーキテクチャ決定記録](./ARCHITECTURE_DECISION_RECORD.md) - [図表生成プロンプト](./DIAGRAM_GENERATION_PROMPT.md) --- ## 📝 他AIへの引き継ぎ時の注意点 ### このプロジェクトを引き継ぐ際の確認事項 1. **Antigravity = 共同開発者**: Synologyの専門家、インフラ担当 2. **開発者の性格**: 「ずぼら」を自認、自動化・効率化重視 3. **予算制約**: クラウドコストは最小限(月額¥1,000以下) 4. **Synology活用**: 既存の16GB NASを最大限活用する方針 5. **AI駆動開発**: MCP + Claude Codeで開発を自動化する野心的な試み ### よくある質問への回答 **Q: なぜCloudflareを使わないのか?** A: Tailscale Funnelで十分。既存Tailscaleインフラを活用する方が効率的。 **Q: なぜVPSを使わないのか?** A: Synology VMで同等の機能を¥0追加コストで実現可能。レイテンシも改善。 **Q: 16GBで足りるのか?** A: Ollama夜間起動等の工夫で実現可能。実測値で要調整。 **Q: Dokployは安定しているのか?** A: 2024年登場の新興ツール。Vercel的DXが魅力。Portainerより自動化に適している。 --- ## ✅ AIアシスタントへの期待 このドキュメントを読んだAIアシスタントには、以下を期待します: 1. **批判的思考**: ただ同意するのではなく、論理的な疑問を投げかける 2. **代替案提示**: より良い技術・アーキテクチャがあれば提案する 3. **最新情報**: 2026年時点の最新技術動向を反映する 4. **実装支援**: 具体的なコード・設定例を提供する 5. **ドキュメント更新**: 新しい決定事項があれば本ドキュメントを更新する --- **最終更新**: 2026-01-19 **バージョン**: 1.0 **作成者**: Claude (Anthropic) + 開発者 + Antigravity