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

396 lines
14 KiB
Markdown
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.

# 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的なDXGitOps実現
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