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

9.8 KiB
Raw Blame History

現実的インフラ強化プラン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推奨

# 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. コンテナ作成:
    • ポート: 30023001
    • ボリューム: /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が実装済み:

    cd /path/to/ponshu_room_lite/tools/proxy
    cat docker-compose.yml | grep redis
    

    既に実装済みなら: スキップ 未実装なら: 以下を実行

  2. 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
    
  3. server.js 更新

    既存の server.js にRedis接続コードを追加Antigravityが既に実装している可能性あり

  4. 起動

    cd tools/proxy
    docker-compose down
    docker-compose up -d
    docker-compose logs -f
    
  5. 動作確認

    # 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分 🟡

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時間