# 最終アーキテクチャ決定版(Synology中心構成) **作成日**: 2026-01-19 **決定**: Synology VM内でDokployを動かす構成を採用 --- ## 🎯 **最終構成の全体像** ### **基本思想** ``` 全てをSynology内で完結させる ↓ 外部VPSは使わない(コストゼロ化) ↓ DokployはSynology VM内で動かす ``` --- ## 📐 **物理構成** ``` ┌─────────────────────────────────────────────────┐ │ あなたの自宅 Synology NAS (16GB) │ │ │ │ ┌───────────────────────────────────────────┐ │ │ │ DSM(Synology OS) │ │ │ │ - Container Manager │ │ │ │ - Virtual Machine Manager (VMM) │ │ │ └───────────────────────────────────────────┘ │ │ │ │ ┌───────────────────────────────────────────┐ │ │ │ VM #1: Ubuntu Server (4GB RAM割当) │ │ │ │ ┌─────────────────────────────────────┐ │ │ │ │ │ Dokploy (自動デプロイエンジン) │ │ │ │ │ │ - Traefik (リバースプロキシ) │ │ │ │ │ │ - Docker (アプリコンテナ) │ │ │ │ │ └─────────────────────────────────────┘ │ │ │ └───────────────────────────────────────────┘ │ │ │ │ ┌───────────────────────────────────────────┐ │ │ │ Docker Containers (DSM直下) │ │ │ │ - PostgreSQL (データベース) │ │ │ │ - Redis (キャッシュ) │ │ │ │ - Immich (写真管理+AI検索) │ │ │ │ - Ollama (ローカルAI) │ │ │ └───────────────────────────────────────────┘ │ │ │ │ ┌───────────────────────────────────────────┐ │ │ │ Gitea (DSM直下Dockerコンテナ) │ │ │ │ - コード管理 │ │ │ │ - Webhook → Dokploy連携 │ │ │ └───────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────┘ ↑ │ Tailscale VPN (安全な通信) │ ┌─────────────────────────────────────────────────┐ │ あなたのPC (開発環境) │ │ - Cursor / Claude Code │ │ - Git → Giteaにプッシュ │ └─────────────────────────────────────────────────┘ ``` --- ## 🔌 **ネットワーク構成** ``` 外部インターネット ↓ Tailscale Funnel (HTTPS公開エンドポイント) ↓ https://posimai.ts.net ↓ Synology VM (Dokploy) ↓ ┌─────────────────────────────────────┐ │ VM内のDockerコンテナ │ │ - sake-app (日本酒アプリAPI) │ │ - incense-app (お香アプリAPI) │ │ - nail-salon (ネイルサロンWeb) │ └─────────────────────────────────────┘ ↓ データアクセス ┌─────────────────────────────────────┐ │ Synology DSM直下 │ │ - PostgreSQL (100.x.x.x:5432) │ │ - Redis (100.x.x.x:6379) │ └─────────────────────────────────────┘ ``` --- ## 💾 **メモリ配分(16GB)** | コンポーネント | 割当メモリ | 用途 | |---------------|-----------|------| | **DSM本体** | 2GB | Synology OS | | **VM (Ubuntu + Dokploy)** | 4GB | 自動デプロイ + アプリ実行 | | **PostgreSQL** | 2GB | データベース | | **Immich** | 2-3GB | 写真管理+CLIP検索 | | **Ollama** | 4GB | ローカルAI(夜間起動) | | **Redis + その他** | 1-2GB | キャッシュ等 | | **予備** | 1GB | バッファ | **合計**: 16GB(ギリギリだが実現可能) --- ## 🔄 **自動化フロー** ``` 1. コード編集 ┌─────────────────┐ │ Cursor/Claude │ │ Code → Git編集 │ └────────┬────────┘ │ ▼ 2. Git Push ┌─────────────────┐ │ Gitea (Synology)│ │ リポジトリ受信 │ └────────┬────────┘ │ Webhook ▼ 3. 自動デプロイ ┌─────────────────┐ │ Dokploy (VM内) │ │ - コードpull │ │ - Build │ │ - Deploy │ └────────┬────────┘ │ ▼ 4. 本番更新 ┌─────────────────┐ │ アプリ稼働 │ │ (VM内Docker) │ └─────────────────┘ ``` **所要時間**: Git Pushから30秒-2分 --- ## 🚀 **なぜこの構成が最適か** ### **1. コストゼロ** - ✅ 外部VPS不要 - ✅ 月額費用: Synology電気代のみ(¥800程度) - ✅ 年間コスト: ¥9,600 ### **2. レイテンシ最小** - ✅ VM ↔ PostgreSQL: 同一物理マシン内(<1ms) - ✅ データ転送ゼロ(内部通信) ### **3. データ主権** - ✅ すべてのデータが手元 - ✅ クラウド依存ゼロ ### **4. Synologyの強みを最大活用** - ✅ 16GBメモリを全て使い切る - ✅ VMM(仮想マシン機能)の活用 - ✅ Container Managerとの共存 --- ## ⚠️ **この構成の注意点** ### **1. ポート80/443問題の解決** ``` 問題: DSMとDokploy(Traefik)が両方Port 80/443を使いたい 解決: VM内で完結させる - DSM: Port 80/443を維持(管理画面用) - VM: 独自のIPアドレス(Tailscaleで公開) - → ポート競合なし ``` ### **2. メモリ不足リスク** ``` 対策: - Ollamaは夜間バッチのみ起動(常駐させない) - Immichは必要時のみ起動 - Dokploy VM: 必要最低限の4GB ``` ### **3. CPU負荷** ``` 懸念: VM + Docker二重仮想化でCPU負荷増 現実: - Synology CPU(Intel/AMD)は十分強力 - アプリがシンプルなら問題なし - 負荷テストで要確認 ``` --- ## 📊 **VPS案との比較** | 観点 | VPS + Synology案 | Synology VM案(最終採用) | |------|-----------------|------------------------| | **月額コスト** | ¥1,300 | **¥800** | | **レイテンシ** | VPS↔Synology: 1-5ms | **VM↔DB: <1ms** | | **メモリ余裕** | Synology: 10GB余裕 | Synology: 1GB余裕 | | **設定複雑度** | VPS設定 + Tailscale | **VMM設定のみ** | | **障害時影響** | VPS停止 or Synology停止 | **Synology停止のみ** | **結論**: Synology VM案が最適 --- ## 🛠️ **実装手順(Week 1-4)** ### **Week 1: VM準備** ```bash 1. Synology VMM (Virtual Machine Manager) インストール - パッケージセンターから検索 2. Ubuntu Server 22.04 LTS ダウンロード - https://ubuntu.com/download/server 3. VM作成 - CPU: 2コア - メモリ: 4GB - ストレージ: 40GB ``` ### **Week 2: Dokployインストール** ```bash # VM内で実行 curl -sSL https://dokploy.com/install.sh | sh # 管理画面アクセス # Synology DSM → VMM → VM IPアドレス確認 # 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-tailscale-ip:3000/user/sake-app.git Branch: main Auto Deploy: ON Environment Variables: DATABASE_URL: postgresql://user:pass@synology-ip:5432/posimai ``` --- ## 🎯 **開発者がやること(通常運用)** ``` 1. Cursorでコード編集 2. git add . && git commit -m "新機能追加" 3. git push origin main → 30秒後、本番環境に自動反映 あなたがやること: これだけ。 ``` --- ## 📝 **次のアクション** ### **今すぐできること** ``` 1. Synology DSMにログイン 2. パッケージセンター → "Virtual Machine Manager" インストール 3. Ubuntu Server 22.04 ISOダウンロード ``` **所要時間**: 15分 --- ## 🔗 **関連ドキュメント** - [VPS比較分析](./VPS_CRITICAL_COMPARISON.md) - [自動化安全プロトコル](./AUTOMATION_SAFETY_PROTOCOL.md) - [アーキテクチャ決定記録](./ARCHITECTURE_DECISION_RECORD.md) --- **更新履歴**: - 2026-01-19: VPS案からSynology VM案に変更(最終決定)