セットアップ
実装前に用意するもの。詳細設計は他ドキュメントを参照。
- 要件: 要件定義
- インフラ: インフラ
- Discord: Discord
- Android: Tasker
- 公開面: Cloudflare
- データ取得: データ取込
- メール: メール取込
- Gemini: Gemini
このセクションの手順書:
| ページ | 内容 |
|---|---|
| PostgreSQL | DB 導入(学習用) |
| Bot 開発 | Discord Bot 骨格の起動方法 |
| systemd | Bot の常駐 |
1. Gemini API(運用用・Cursor とは別)
- Google AI Studio で API キー作成
- Proxmox の環境変数へ保存
推奨モデル(MVP): gemini-3.5-flash(安定 Flash)。安さ重視なら gemini-3.1-flash-lite、新しさなら gemini-3.6-flash。
環境変数 GEMINI_MODEL で切り替え(未設定時のデフォルトも gemini-3.5-flash)。
個人の支払い数回/日なら無料枠で足りる想定。
家計データの学習利用が気になる場合は従量課金へ。
2. Discord
詳細は Discord。
MVP から Bot を使う(手動テキスト / 画像受信があるため)。
厳し目通知だけなら Webhook でも足りるが、入口も Discord にするなら Bot が必要。
- Discord Application / Bot 作成
- Message Content Intent を有効化
- チャンネル例:
#finance(必要なら#finance-inbox) - Bot トークンを env へ
3. Android / Cloudflare
- Tasker + AutoNotification を用意 → Tasker
ingest.finance.nkjm.devの Tunnel / Access / Bearer → Cloudflare
4. メール / CSV / Grafana
5. 環境変数(予定)
DATABASE_URL=postgresql://USER:PASSWORD@HOST:5432/finance_manager
INGEST_BEARER_TOKEN=
# Cloudflare Access Service Token は主に Tasker 側
# CF_ACCESS_CLIENT_ID=
# CF_ACCESS_CLIENT_SECRET=
GEMINI_API_KEY=
DISCORD_BOT_TOKEN=
DISCORD_GUILD_ID=
DISCORD_CHANNEL_ID=
# 互換・通知専用に残す場合
# DISCORD_WEBHOOK_URL=
IMAP_HOST=
IMAP_USER=
IMAP_PASSWORD=
インフラ作成手順の目安は インフラ。
実装順(合意済み)
自宅インフラを整えたうえで、次の順で進める。
- Discord Bot + Gemini + PostgreSQL(手動テキスト/画像 → 厳し目返信)
- Grafana ← PostgreSQL(最低限の可視化)
- Cloudflare Tunnel + ingest API + Tasker(PayPay 自動)
- メール / CSV
- 予算ルールなど高度化
Tip
最初から Tunnel / Tasker は必須ではない。 Discord → 自宅は Bot Gateway で先に成立させられる。