ponshu-room-lite/docs/REALISTIC_INFRASTRUCTURE_PL...

378 lines
9.8 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.

# 現実的インフラ強化プラン3週間
**作成日**: 2026-02-23
**策定者**: Claude (訂正版) + Antigravity
**期間**: 3週間最小限の時間投資
**方針**: "Fix real risks, not imaginary ones"
---
## 📊 **現状分析(事実ベース)**
### ✅ **既に動作している(変更不要)**
| システム | 状態 | 証拠 |
|---------|------|------|
| Gitea外部公開 | ✅ 稼働中 | `https://posimai-lab.tail72e846.ts.net` アクセス可能 |
| Tailscale Funnel | ✅ 永続化済み | `--bg` フラグで起動中 |
| 自動リリース | ✅ 完成 | `release_to_gitea.ps1` 1コマンドで完結 |
| 配布ページ | ✅ 公開中 | `https://ponshu-room.vercel.app` 動作確認済み |
| Docker環境 | ✅ 稼働中 | Gitea, Proxy等動作中 |
### ❌ **本当のリスク(対応必要)**
| リスク | 影響度 | 緊急度 | 対策時間 |
|--------|--------|--------|----------|
| **バックアップ不在** | 🔴 Critical | 高 | 30分 |
| **ダウン検知なし** | 🟡 Medium | 中 | 30分 |
| **Proxyレート制限リセット** | 🟡 Medium | 低 | 2時間 |
---
## 🎯 **3週間プラン合計: 3-4時間**
### **Week 1: 今週中(必須)**
#### **Task 1: Hyper Backup設定** 🔴 Critical
**所要時間**: 30分
**優先度**: 最高
**手順**:
1. **DSM Web UIにアクセス**
```
http://100.77.67.102:5000
```
2. **Hyper Backup起動**
- パッケージセンター → Hyper Backup インストール(未インストールの場合)
- Hyper Backup 起動
3. **バックアップタスク作成**
**データバックアップウィザード**:
**ステップ1: バックアップ先選択**
- **推奨**: ローカルフォルダ & 共有フォルダ → USB外付けHDD
- **代替**: Googleドライブ無料15GB、追加ストレージ有料
**ステップ2: バックアップフォルダ選択**
```
✅ docker/posimai_lab/gitea (Giteaデータ全体)
✅ projects (全プロジェクトコード)
```
**ステップ3: アプリケーション選択**
```
✅ Container ManagerDocker設定
```
**ステップ4: スケジュール設定**
```
頻度: 毎日
時刻: 午前2:00深夜
バージョン保持: 30世代
```
4. **今すぐバックアップ実行**
- 「今すぐバックアップ」ボタンクリック
- 完了まで待機(初回: 10-30分
5. **リストア手順テスト**
- Hyper Backup → 復元
- テストフォルダで復元テスト
- 成功確認
**成功基準**:
- [ ] バックアップタスクが "成功" 状態
- [ ] 次回実行日時が表示される
- [ ] リストア手順を理解している
**緊急時のリストア手順**:
```
1. Hyper Backup起動
2. 「復元」タブ
3. バックアップ先選択
4. 復元したいバージョン選択
5. 復元先指定
6. 実行
```
---
#### **Task 2: Uptime Kuma導入** 🟡 Medium
**所要時間**: 30分
**優先度**: 中
**手順**:
**Option A: Docker CLI推奨**
```bash
# posimai-lab (100.76.7.3) にSSH接続
ssh admin@100.76.7.3
# Uptime Kuma起動
docker run -d \
--name uptime-kuma \
--restart always \
-p 3002:3001 \
-v /volume1/docker/uptime-kuma:/app/data \
louislam/uptime-kuma:1
# 起動確認
docker ps | grep uptime-kuma
```
**Option B: Synology Container ManagerUI**
1. DSM → Container Manager → イメージ
2. 「追加」→「Docker Hubから検索」
3. 検索: `louislam/uptime-kuma`
4. ダウンロード(タグ: `1`
5. コンテナ作成:
- ポート: `3002``3001`
- ボリューム: `/volume1/docker/uptime-kuma``/app/data`
- 自動再起動: 有効
**初期設定**:
1. ブラウザで `http://100.76.7.3:3002` にアクセス
2. 管理者アカウント作成
3. 監視対象追加:
**Monitor 1: Gitea**
```
名前: Gitea (Tailscale Funnel)
タイプ: HTTP(s)
URL: https://posimai-lab.tail72e846.ts.net
ハートビート間隔: 60秒
```
**Monitor 2: 配布ページ**
```
名前: Ponshu Room 配布ページ
タイプ: HTTP(s)
URL: https://ponshu-room.vercel.app
ハートビート間隔: 300秒5分
```
**Monitor 3: Gemini Proxy**
```
名前: Gemini Proxy
タイプ: HTTP(s)
URL: http://100.76.7.3:3001/health
ハートビート間隔: 60秒
```
4. **通知設定(メール)**:
Settings → Notifications → 追加
**Gmail SMTP設定**:
```
タイプ: Email (SMTP)
ホスト: smtp.gmail.com
ポート: 587
セキュリティ: TLS
ユーザー名: your-email@gmail.com
パスワード: アプリパスワード(※)
送信先: your-email@gmail.com
```
※ Googleアカウント → セキュリティ → 2段階認証 → アプリパスワード
5. **テスト送信**
- 「Test」ボタンクリック
- メール受信確認
**成功基準**:
- [ ] 全Monitor が "Up" 状態
- [ ] ダウン時にメール通知受信
- [ ] ダッシュボードで稼働率確認可能
---
### **Week 2: 来週(推奨)**
#### **Task 3: Gemini Proxy Redis永続化** 🟢 Nice to Have
**所要時間**: 2時間
**優先度**: 低(現状でも動作している)
**現状の問題**:
- Proxyサーバー再起動でレート制限カウントがリセット
- ユーザーが1日の上限を超えて使える可能性
**解決策**: Redis導入
**手順**:
1. **tools/proxy/docker-compose.yml を確認**
既にRedis設定がある場合Antigravityが実装済み:
```bash
cd /path/to/ponshu_room_lite/tools/proxy
cat docker-compose.yml | grep redis
```
**既に実装済みなら**: スキップ
**未実装なら**: 以下を実行
2. **docker-compose.yml 更新**
```yaml
version: '3.8'
services:
redis:
image: redis:7-alpine
container_name: proxy-redis
restart: always
command: redis-server --appendonly yes
volumes:
- ./redis-data:/data
ports:
- "6379:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
proxy:
build: .
container_name: gemini-proxy
restart: always
environment:
- REDIS_HOST=redis
- REDIS_PORT=6379
ports:
- "3001:3001"
depends_on:
redis:
condition: service_healthy
```
3. **server.js 更新**
既存の `server.js` にRedis接続コードを追加Antigravityが既に実装している可能性あり
4. **起動**
```bash
cd tools/proxy
docker-compose down
docker-compose up -d
docker-compose logs -f
```
5. **動作確認**
```bash
# Redisにデータが保存されているか確認
docker exec -it proxy-redis redis-cli
> KEYS *
> GET quota:test:2026-02-23
> EXIT
```
**成功基準**:
- [ ] Proxy再起動後もレート制限カウント維持
- [ ] Redis永続化ファイル`redis-data/appendonly.aof`)存在
**重要**: このタスクは**オプション**。現状でも動作しているため、優先度は低い。
---
### **Week 3以降: 新規開発に移行**
上記3タスク完了後、**インフラは十分**です。
次の選択肢:
1. **スキャンアプリの完成**(未完成プロジェクト)
2. **香道アプリの開発**(新規プロジェクト)
3. **kintoneプラグインの完成**(業務システム)
4. **Synologyダッシュボード**管理UI
---
## 📊 **Claudeの12週間計画 vs Antigravityの3週間計画**
| 項目 | Claude計画 | Antigravity計画 | 勝者 |
|------|-----------|----------------|------|
| **期間** | 12週間 | 3週間 | ✅ Antigravity |
| **実装時間** | 40-60時間 | 3-4時間 | ✅ Antigravity |
| **リスク対応** | 包括的(過剰) | 本質的リスクのみ | ✅ Antigravity |
| **ROI** | 低(多くが不要) | 高(必須のみ) | ✅ Antigravity |
| **現実性** | 低(挫折リスク高) | 高(実行可能) | ✅ Antigravity |
---
## 🎯 **ベテランエンジニアの教訓**
### **私Claudeが学んだこと**
1. **"Working is better than perfect"**
- 現在のシステムは既に動作している
- 完璧を目指して動作するシステムを壊すな
2. **"Fix real problems, not imaginary ones"**
- バックアップ不在 = 本当のリスク
- systemd移行 = 想像上の問題
3. **"Scale when you need to, not when you can"**
- 2人チーム → 手動レビューで十分
- 10人チーム → 自動化を検討
4. **"Three strikes and you refactor"**
- 2プロジェクト → 重複許容
- 3プロジェクト → 共通パッケージ化
5. **"Time is your most valuable resource"**
- 12週間のインフラ構築 = 3つのアプリ完成に使える
- 3時間のリスク対応 = 現実的
---
## ✅ **今すぐやるべきこと**
### **優先度1: Hyper Backup30分** 🔴
```
DSM → Hyper Backup → データバックアップ
対象: docker/posimai_lab/gitea, projects
バックアップ先: USB HDD または Googleドライブ
スケジュール: 毎日午前2時
```
### **優先度2: Uptime Kuma30分** 🟡
```bash
docker run -d --name uptime-kuma --restart always \
-p 3002:3001 -v /volume1/docker/uptime-kuma:/app/data \
louislam/uptime-kuma:1
```
### **優先度3: 次のアプリ開発** 🟢
バックアップ完了後、**新規開発に移る**。
---
## 🎓 **Antigravityの哲学**
> "今のインフラは十分動いている。バックアップだけ今すぐやって、次の開発に進む"
これが**世界的ベテランエンジニアの現実的判断**です。
---
**次のアクション**: Hyper Backup設定30分を今すぐ実行してください。
---
_作成者: Claude (Sonnet 4.5) - Antigravityの精査を受けて全面改訂_
_方針: 現実主義 > 完璧主義_
_期間: 3週間実質3-4時間_