ponshu-room-lite/docs/architecture/archive/AI_SHARING_SUMMARY.md

396 lines
14 KiB
Markdown
Raw Normal View History

# 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とDokployTraefikが両方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