14 KiB
Ponshu Room Lite プロジェクト全体像(AI共有用)
作成日: 2026-01-19 対象読者: ChatGPT, Gemini, Perplexity, Claude等のAIアシスタント 目的: このプロジェクトの全体像を5分で理解できる統合ドキュメント
🎯 プロジェクト概要
アプリ名
Ponshu Room Lite - 日本酒を管理・記録するFlutterアプリ
ビジョン
個人ユーザー向けの日本酒記録アプリから、Posimai Coreという共通基盤を作り、お香アプリ・ネイルサロンアプリへと展開する。
ユーザー
- 個人モード: 日本酒愛好家(記録・分析・ゲーミフィケーション)
- ビジネスモード: 飲食店(お品書き作成・Instagram販促・売上分析)
技術スタック
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準備
1. Synology VMM (Virtual Machine Manager) インストール
2. Ubuntu Server 22.04 LTS ダウンロード
3. VM作成 (CPU: 2コア, メモリ: 4GB, ストレージ: 40GB)
Week 2: Dokployインストール
# VM内で実行
curl -sSL https://dokploy.com/install.sh | sh
# 管理画面アクセス
# http://vm-ip:3000
Week 3: Tailscale設定
# 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連携
# 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
🎓 重要な学び・決定事項
アーキテクチャ決定
- Cloudflare Tunnel は不要 → Tailscale Funnelで十分
- VPS は不要 → Synology VM で完結
- Dokploy採用 → Vercel的なDX、GitOps実現
- 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: 写真検索(セマンティック検索)
🔗 関連ドキュメント
📝 他AIへの引き継ぎ時の注意点
このプロジェクトを引き継ぐ際の確認事項
- Antigravity = 共同開発者: Synologyの専門家、インフラ担当
- 開発者の性格: 「ずぼら」を自認、自動化・効率化重視
- 予算制約: クラウドコストは最小限(月額¥1,000以下)
- Synology活用: 既存の16GB NASを最大限活用する方針
- 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アシスタントには、以下を期待します:
- 批判的思考: ただ同意するのではなく、論理的な疑問を投げかける
- 代替案提示: より良い技術・アーキテクチャがあれば提案する
- 最新情報: 2026年時点の最新技術動向を反映する
- 実装支援: 具体的なコード・設定例を提供する
- ドキュメント更新: 新しい決定事項があれば本ドキュメントを更新する
最終更新: 2026-01-19 バージョン: 1.0 作成者: Claude (Anthropic) + 開発者 + Antigravity