アーキテクチャ
関連: 要件定義 / インフラ / データ取込 / Discord / Cloudflare
全体構成
Android通知 (Tasker + 端末GPS)
→ Cloudflare Tunnel + Access + Bearer … 自動取込(本線・位置つき)
利用メール (IMAP + Gemini)
週次 CSV
│
▼
Proxmox: finance-manager
- ingest API
- parsers / Gemini (text + vision)
- Discord bot
- PostgreSQL
│
┌───────┴────────────────┐
▼ ▼
Discord Grafana
通知・手動(text/画像) (PGデータ源)
Discord の詳細は Discord。
Proxmox 上の配置
詳細スペックは インフラ。
| コンポーネント | 置き場所 |
|---|---|
| finance-manager 本体 | LXC finance-app(推奨) |
| cloudflared | finance-app に同居(Tunnel 導入時) |
| PostgreSQL | LXC finance-db または既存 PG |
| Grafana | 既存 Grafana VM に PostgreSQL データ源を追加 |
- Discord → 自宅は Bot の 外向き Gateway(ポート開放不要)
- スマホ → 自宅の自動取込は後から Cloudflare Tunnel
- グローバルの inbound ポート開放はしない
会計上の扱い
二重計上を防ぐ
都度チャージ運用のため、チャージと支払いを同じ「支出」にしない。
| 種別 | 例 | 集計 |
|---|---|---|
| 支出 | PayPay 支払い(店舗への残高払い) | 使う金額に含める |
| 資金移動 | 銀行/クレカ → PayPay チャージ | 支出に含めない |
| 固定費 | 楽天カードの引き落とし・サブスク | 支出に含める(別カテゴリ可) |
AI / フィードバック
| 項目 | 方針 |
|---|---|
| モデル | Gemini Flash / Flash-Lite(まずは無料枠で可) |
| 役割 | 分類(支払い/チャージ/固定費)、厳し目コメント、週次レビュー |
| トーン | 厳し目コーチ |
| Cursor | 開発専用。常駐 Bot からは使わない |
| Gemini API | Proxmox 上のサービスが呼び出す運用用キー |
想定負荷は支払い数回/日 + 週次数回。個人用途では無料枠で足りる想定。
プロンプトの渡し方(Skills 代替)は Gemini。
メール処理の詳細は メール取込。
チャネル
Discord(MVP)
詳細は Discord。
- 出口: 厳し目フィードバック
- 入口(手動): テキスト / 画像添付を Bot が受信し Gemini で抽出
- 自動取込の本線には使わない(PayPay は Tunnel 直)
- 例: 「今 ¥680。今日の累計 ¥3,200。このペースだと週末死ぬ」
LINE(将来)
- Messaging API が必要。無料 Push は月200通で「支払いのたび」に不向き
- Discord 安定後に検討
Grafana
- 今日の支出、今週累計、カテゴリ別、(後から)残り予算ゲージ
- PostgreSQL 直読み(Prometheus は必須にしない)