posimai-root/docs/master-architecture.md

15 KiB
Raw Blame History

Posimai Project — マスターアーキテクチャドキュメント

最終更新: 2026-03-31 対象: Claude Code / Cursor / Antigravity / Gemini / 全 AI エージェント

このドキュメントはプロジェクトの現状を一元管理します。実装の前に必ず読んでください。

メモ: このファイルは変更が発生するたびに更新するCLAUDE.md のルールに明記済み)。 「最終更新」日付と内容を常に一致させること。


1. 全体構成図2026-03-31 確定)

╔══════════════════════════════════════════════════════════╗
║  mai の開発環境Windows 11 PC                         ║
║  VS Code / Cursor / Claude Code CLI / Termius            ║
╚══════════════════════════════════════════════════════════╝
         │ git pushgitea + github の2リモート同時
         ▼
╔══════════════════════════════════════════════════════════╗
║  コード管理2リモート並行                              ║
║  GiteaSynology 内)  ←→  GitHubposimai/ org        ║
║  ローカルバックアップ          Vercel 自動デプロイトリガー ║
╚══════════════════════════════════════════════════════════╝
         │ GitHub push → Vercel 自動デプロイ
         ▼
╔══════════════════════════════════════════════════════════╗
║  フロントエンドVercel / CDN                           ║
║                                                          ║
║  posimai.soar-enrich.com → posimai-dashboard確定     ║
║                                                          ║
║  全アプリ URL*.vercel.app で稼働中・全 23 本 PWA:     ║
║  brain / habit / pulse / feed / reader / journal         ║
║  brief / daily / ambient / veil / together / lens        ║
║  diff / clean / timer / digest / think / site            ║
║  events / maps / tech-events / analytics / roadmap       ║
║                                                          ║
║  【セルフホスト】posimai-devUbuntu PC / Tailscale     ║
║  https://ubuntu-pc-pc-mkm21cz79ys4.tail72e846.ts.net:3333║
║                                                          ║
║  【計画中】*.posimai.soar-enrich.com ワイルドカード DNS  ║
║  → Passkey の rpID 問題を解決・Eiji に依頼予定           ║
╚══════════════════════════════════════════════════════════╝
         │ https://api.soar-enrich.com/brain/api/...
         │ 2026-03-26 移行完了)
         ▼
╔══════════════════════════════════════════════════════════╗
║  バックエンド本番VPS— 2026-03-25 移行完了             ║
║  Ubuntu 25.04 / AMD EPYC 4コア / 5.8GB / 85.131.245.239 ║
║  共同開発者 Eiji 提供                                    ║
║                                                          ║
║  Nginx: api.soar-enrich.com → :8090                     ║
║                                                          ║
║  posimai-apiNode.js / Express / :8090                ║
║  稼働中のエンドポイント:                                  ║
║  ・記事 /articles /save    ・Journal /journal/*          ║
║  ・RSS /feeds              ・Gemini AI /gemini/*         ║
║  ・TTS /tts/* ← VOICEVOX 連携(コンテナ追加で即有効)   ║
║                                                          ║
║  PostgreSQL 16                                           ║
║  articles / journal_posts / users                        ║
║  site_config / reading_history                           ║
║  ※ users/magic_link_tokens 等で VPS 自前認証を完全ホスト ║
╚══════════════════════════════════════════════════════════╝

╔══════════════════════════════════════════════════════════╗
║  Ubuntu PC — 開発 OS常時稼働                         ║
║  100.77.11.43 / ubuntu-pc-pc-mkm21cz79ys4.tail*.ts.net  ║
║                                                          ║
║  ・posimai-dev:3333 HTTPS / Tailscale                ║
║    → ブラウザ内ターミナル + Claude Code 統合 PWA         ║
║  ・posimai-station/station                           ║
║    → HDMI モニター全画面キオスク監視盤                   ║
║  ・Syncthing → Windows PC と双方向同期                   ║
║  ・GNOME 削除済み / Openbox + Chromium kiosk             ║
╚══════════════════════════════════════════════════════════╝

╔══════════════════════════════════════════════════════════╗
║  Synology NAS — バックアップ & 開発支援                  ║
║  100.76.7.3 / posimai-lab.tail72e846.ts.net              ║
║  Tailscale VPN 経由のみアクセス可                        ║
║                                                          ║
║  ・Giteagit バックアップサーバー)                      ║
║  ・posimai_api旧 API・待機中・フォールバック候補       ║
║  ・PostgreSQL 15旧 DB・待機中                         ║
║  ・Uptime Kuma死活監視                                ║
║  ・VOICEVOXTTS / VPS 移設予定)                        ║
╚══════════════════════════════════════════════════════════╝

╔══════════════════════════════════════════════════════════╗
║  外部サービス                                            ║
║                                                          ║
║  【認証】VPS 自前システム (Magic Link + WebAuthn)        ║
║  → Supabase Auth 構築を中止し、完全セルフホスト化        ║
║  → 各アプリは VPS JWT で全APIと通信                      ║
║  → Magic Link メール送信のみ Resend (noreply) を利用     ║
║                                                          ║
║  【稼働中】Supabase DB                                   ║
║  togetherリアルタイム同期・稼働中                     ║
║  habit / pulse将来移行予定・現在は localStorage       ║
║                                                          ║
║  Gemini API → VPS 経由journal/pulse 等)               ║
║  Gemini API → フロント直接think アプリのみ)           ║
║  Resendメール→ noreply@soar-enrich.com               ║
║  Google FontsInter/ unpkgLucide @0.344.0 固定)    ║
║                                                          ║
║  【将来】                                                 ║
║  Stripe課金・アカウント済み・Eiji と共有済み)          ║
║  Google Play ConsoleAndroid 配信)                     ║
╚══════════════════════════════════════════════════════════╝

2. アプリ一覧(全 23 本・2026-03-28 時点)

アプリ URL 種別 バックエンド 備考
posimai-dashboard posimai.soar-enrich.com Next.js メインダッシュボード
posimai-analytics analytics.vercel.app Next.js RFM 分析
posimai-brain brain.vercel.app 静的 VPS API 記事管理
posimai-feed feed.vercel.app 静的 VPS API RSS フィード
posimai-reader reader.vercel.app 静的 VPS API 記事リーダー
posimai-journal journal.vercel.app 静的 VPS API CMS エディタ
posimai-site site.vercel.app 静的 VPS API 公開ホームページ
posimai-together together.vercel.app 静的 Supabase リアルタイム共有
posimai-daily daily.vercel.app 静的 VPS API ブリーフィング
posimai-brief brief.vercel.app 静的 VPS TTS 音声ブリーフィング
posimai-habit habit.vercel.app 静的 localStorage 習慣管理Supabase 移行予定)
posimai-pulse pulse.vercel.app 静的 localStorage 気分記録Supabase 移行予定)
posimai-think think.vercel.app 静的 Gemini 直接 AI 思考整理
posimai-digest digest.vercel.app 静的 Gemini 直接 テキスト要約
posimai-ambient ambient.vercel.app 静的 open-meteo 常時表示
posimai-veil veil.vercel.app 静的 アプリランチャー
posimai-roadmap roadmap.vercel.app 静的 ロードマップ管理
posimai-timer timer.vercel.app 静的 タイマー
posimai-lens lens.vercel.app 静的 EXIF 表示
posimai-diff diff.vercel.app 静的 テキスト差分
posimai-clean clean.vercel.app 静的 テキストクリーナー
posimai-events events.vercel.app 静的 イベント情報
posimai-maps maps.vercel.app 静的 マップ
posimai-hotels hotels.vercel.app 静的 ホテル価格
posimai-tech-events tech-events.vercel.app 静的 RSS IT イベント
posimai-atlas atlas.vercel.app 静的 VPS API インフラ構成図・監視
posimai-ui ui.vercel.app 静的 共有デザインシステム

3. 認証フロー(確定)

方針(本番としてそのまま進化させる):
  フロント → API Key or JWT (Magic Link) → VPS が検証
  ?init_key= URL → localStorage に保存・JWT 保有
  3ユーザーmai / partner / musumeのみ対応
  メール送信: Resend API (noreply@soar-enrich.com)
  ※ Supabase Auth への移行計画は中止(完全自己ホスト化)

課題: WebAuthn (Passkey) には共通の rpID が必要
  → *.posimai.soar-enrich.com ワイルドカード DNS が必須
  → Eiji への依頼待ち

自前認証化のため X-API-Key?init_key=・localStorage ロジックは維持される。


4. データ保存先まとめ

保存先 アプリ 状態
VPS PostgreSQL brain・journal・site・reading_history 稼働中
Supabase DB together 稼働中
localStorage + VPS バックグラウンド同期 habit・pulse ローカルファースト(同期のみ)
localStorage永続・移行しない veil 設定・timer 設定 確定
データなし(都度処理) diff・clean・lens・digest・think・timer 本体

5. デプロイパイプライン(確立済み)

git add .
git commit -m "feat/fix/chore: 変更内容"
npm run deploy   # = git push gitea main && git push github main
  • giteahttp://100.76.7.3:3000/mai/[app-name].git(ローカルバックアップ)
  • githubhttps://github.com/posimai/[app-name].gitVercel 自動デプロイトリガー)
  • vercel --prod 直接実行: 禁止
  • VPS バックエンド: bash deploy-server.shSSH 鍵認証・完全無人)

6. AI エージェント役割分担

担当 内容
インフラ担当チャット 認証実装・VPS デプロイ・DNS・server.js 変更
UI 担当チャット UX・デザイン・CLAUDE.md 適合・プライバシー表記・バグ修正

UI 担当が触ってはいけないもの: api.soar-enrich.com URL / X-API-Key ヘッダー / ?init_key= パラメータ / localStorage 認証ロジック / server.js・VPS・Docker 関連


7. 直近の確定事項(設計判断ログ)

日付 決定事項
2026-03-25 バックエンドを Synology → VPSEiji 提供)に移行完了
2026-03-26 API URL を posimai.soar-enrich.comapi.soar-enrich.com に分離完了
2026-03-27 認証方式を Supabase AuthMagic Link + Passkeyに確定
2026-03-28 現行 auth テーブルmagic_link_tokens 等)は将来削除予定・今は放置
2026-03-29 ベンダーロックイン回避のため Supabase 完全移行を中止。VPS 独自認証Magic Link+Passkeyを正規方針として続行
保留中 *.posimai.soar-enrich.com ワイルドカード DNSEiji 依頼待ち)
保留中 VPS に VOICEVOX コンテナ追加Eiji 作業中)

8. 絶対に守るルール(全 AI 共通)

  1. デプロイは npm run deploy のみvercel --prod 禁止)
  2. 絵文字禁止コード・UI・コメントすべて
  3. アイコンは Lucide のみ@0.344.0 固定)
  4. デザイントークン変更禁止--accent 1行のみ例外
  5. git push origin 禁止gitea と github の2リモートのみ
  6. api.soar-enrich.com / 認証ロジックは UI 担当チャットが触らない
  7. このファイルを変更したらすぐ「最終更新」日付を更新する

参照ファイル一覧

ファイル 内容
CLAUDE.md AI 向けプロジェクトルール(最優先)
AGENTS.md CLAUDE.md の Cursor/Windsurf 向けコピー
docs/master-architecture.md このファイル(インフラ・確定事項の一元管理)
posimai-dashboard/src/data/projects.json 全アプリの一覧・ステータス・技術スタック
_template/ フル機能テンプレート
_template-minimal/ 単機能ツール用テンプレート