9.8 KiB
現実的インフラ強化プラン(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分 優先度: 最高
手順:
-
DSM Web UIにアクセス
http://100.77.67.102:5000 -
Hyper Backup起動
- パッケージセンター → Hyper Backup インストール(未インストールの場合)
- Hyper Backup 起動
-
バックアップタスク作成
データバックアップウィザード:
ステップ1: バックアップ先選択
- 推奨: ローカルフォルダ & 共有フォルダ → USB外付けHDD
- 代替: Googleドライブ(無料15GB、追加ストレージ有料)
ステップ2: バックアップフォルダ選択
✅ docker/posimai_lab/gitea (Giteaデータ全体) ✅ projects (全プロジェクトコード)ステップ3: アプリケーション選択
✅ Container Manager(Docker設定)ステップ4: スケジュール設定
頻度: 毎日 時刻: 午前2:00(深夜) バージョン保持: 30世代 -
今すぐバックアップ実行
- 「今すぐバックアップ」ボタンクリック
- 完了まで待機(初回: 10-30分)
-
リストア手順テスト
- Hyper Backup → 復元
- テストフォルダで復元テスト
- 成功確認
成功基準:
- バックアップタスクが "成功" 状態
- 次回実行日時が表示される
- リストア手順を理解している
緊急時のリストア手順:
1. Hyper Backup起動
2. 「復元」タブ
3. バックアップ先選択
4. 復元したいバージョン選択
5. 復元先指定
6. 実行
Task 2: Uptime Kuma導入 🟡 Medium
所要時間: 30分 優先度: 中
手順:
Option A: Docker CLI(推奨)
# 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 Manager(UI)
- DSM → Container Manager → イメージ
- 「追加」→「Docker Hubから検索」
- 検索:
louislam/uptime-kuma - ダウンロード(タグ:
1) - コンテナ作成:
- ポート:
3002→3001 - ボリューム:
/volume1/docker/uptime-kuma→/app/data - 自動再起動: 有効
- ポート:
初期設定:
-
ブラウザで
http://100.76.7.3:3002にアクセス -
管理者アカウント作成
-
監視対象追加:
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秒 -
通知設定(メール):
Settings → Notifications → 追加
Gmail SMTP設定:
タイプ: Email (SMTP) ホスト: smtp.gmail.com ポート: 587 セキュリティ: TLS ユーザー名: your-email@gmail.com パスワード: アプリパスワード(※) 送信先: your-email@gmail.com※ Googleアカウント → セキュリティ → 2段階認証 → アプリパスワード
-
テスト送信
- 「Test」ボタンクリック
- メール受信確認
成功基準:
- 全Monitor が "Up" 状態
- ダウン時にメール通知受信
- ダッシュボードで稼働率確認可能
Week 2: 来週(推奨)
Task 3: Gemini Proxy Redis永続化 🟢 Nice to Have
所要時間: 2時間 優先度: 低(現状でも動作している)
現状の問題:
- Proxyサーバー再起動でレート制限カウントがリセット
- ユーザーが1日の上限を超えて使える可能性
解決策: Redis導入
手順:
-
tools/proxy/docker-compose.yml を確認
既にRedis設定がある場合(Antigravityが実装済み):
cd /path/to/ponshu_room_lite/tools/proxy cat docker-compose.yml | grep redis既に実装済みなら: スキップ 未実装なら: 以下を実行
-
docker-compose.yml 更新
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 -
server.js 更新
既存の
server.jsにRedis接続コードを追加(Antigravityが既に実装している可能性あり) -
起動
cd tools/proxy docker-compose down docker-compose up -d docker-compose logs -f -
動作確認
# 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タスク完了後、インフラは十分です。
次の選択肢:
- スキャンアプリの完成(未完成プロジェクト)
- 香道アプリの開発(新規プロジェクト)
- kintoneプラグインの完成(業務システム)
- Synologyダッシュボード(管理UI)
📊 Claudeの12週間計画 vs Antigravityの3週間計画
| 項目 | Claude計画 | Antigravity計画 | 勝者 |
|---|---|---|---|
| 期間 | 12週間 | 3週間 | ✅ Antigravity |
| 実装時間 | 40-60時間 | 3-4時間 | ✅ Antigravity |
| リスク対応 | 包括的(過剰) | 本質的リスクのみ | ✅ Antigravity |
| ROI | 低(多くが不要) | 高(必須のみ) | ✅ Antigravity |
| 現実性 | 低(挫折リスク高) | 高(実行可能) | ✅ Antigravity |
🎯 ベテランエンジニアの教訓
私(Claude)が学んだこと
-
"Working is better than perfect"
- 現在のシステムは既に動作している
- 完璧を目指して動作するシステムを壊すな
-
"Fix real problems, not imaginary ones"
- バックアップ不在 = 本当のリスク
- systemd移行 = 想像上の問題
-
"Scale when you need to, not when you can"
- 2人チーム → 手動レビューで十分
- 10人チーム → 自動化を検討
-
"Three strikes and you refactor"
- 2プロジェクト → 重複許容
- 3プロジェクト → 共通パッケージ化
-
"Time is your most valuable resource"
- 12週間のインフラ構築 = 3つのアプリ完成に使える
- 3時間のリスク対応 = 現実的
✅ 今すぐやるべきこと
優先度1: Hyper Backup(30分) 🔴
DSM → Hyper Backup → データバックアップ
対象: docker/posimai_lab/gitea, projects
バックアップ先: USB HDD または Googleドライブ
スケジュール: 毎日午前2時
優先度2: Uptime Kuma(30分) 🟡
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時間)