Self-hosted finance mirror (Firefly III) fed by Copilot exports + LLM layer #15

Open
opened 2026-07-25 16:13:54 -05:00 by adam · 0 comments
Owner

Parked research from 2026-07-25. Keep Copilot Money (trusted paid bank sync stays source of truth); add a self-hosted analytical mirror for durability + a private LLM-over-my-finances layer.

Decision

Tier 2 — Firefly III as a self-hosted archive/query backend (chosen over lightweight DuckDB Tier 1 for extensibility out of the box).

Why Firefly III

  • API-first: full REST API + webhooks + data-importer rule engine = the real extensibility surface (no separate UI repo — the UI is built into the app).
  • Double-entry rigor suits a durable source-of-record backup.

Stack (3 containers + Postgres)

  • firefly-iii/firefly-iii (app, Laravel/PHP, AGPL-3.0)
  • firefly-iii/data-importer (CSV ingest: Copilot export -> column mapping + rules)
  • Postgres
  • Deploy via Dockhand git-stack; secrets (APP_KEY, DB creds) in Dockhand UI; front via Pangolin/Traefik; consider Pocket ID OIDC.

Data flow

Copilot has no API — export is manual CSV (Settings -> Account -> Export your transactions; web app has filtered exports). Rich schema: Date, Name, Amount, Pending/Posted, Category, Parent Category, Excluded, Type, Account, Account Mask, Notes, Associated Recurrings.
Pipeline: manual CSV export (periodic) -> watched folder -> data-importer -> Firefly. Everything after the CSV lands can be automated; the export click stays manual.

LLM layer

Point existing LiteLLM proxy (litellm:4000) at Firefly's REST API for NL queries + auto-categorization (see community firefly-iii-ai-categorize pattern).

Gotcha

  • Name collision: hyperledger-firefly/* is Linux Foundation Web3/blockchain, NOT the finance app. Correct repos: firefly-iii/firefly-iii + firefly-iii/data-importer. API docs: api-docs.firefly-iii.org.

Alternatives considered

  • Actual Budget (best budgeting, SimpleFIN sync ~$15/yr) — better if replacing Copilot outright.
  • Wealthfolio (native + iOS + OIDC, investment-first) — strong Ghostfolio replacement.
  • Sure (Maybe fork) — slickest all-in-one but fork-durability risk.

Next steps when picked up

  1. Draft Dockhand stack (compose + .env defaults + secrets flagged).
  2. Create Postgres DB/user.
  3. Register as git-stack + wire webhook.
  4. Do a test Copilot CSV export -> importer mapping.
  5. Wire LiteLLM query script.
Parked research from 2026-07-25. Keep Copilot Money (trusted paid bank sync stays source of truth); add a self-hosted analytical mirror for durability + a private LLM-over-my-finances layer. ## Decision **Tier 2 — Firefly III** as a self-hosted archive/query backend (chosen over lightweight DuckDB Tier 1 for extensibility out of the box). ## Why Firefly III - API-first: full REST API + webhooks + data-importer rule engine = the real extensibility surface (no separate UI repo — the UI is built into the app). - Double-entry rigor suits a durable source-of-record backup. ## Stack (3 containers + Postgres) - `firefly-iii/firefly-iii` (app, Laravel/PHP, AGPL-3.0) - `firefly-iii/data-importer` (CSV ingest: Copilot export -> column mapping + rules) - Postgres - Deploy via Dockhand git-stack; secrets (APP_KEY, DB creds) in Dockhand UI; front via Pangolin/Traefik; consider Pocket ID OIDC. ## Data flow Copilot has **no API** — export is manual CSV (Settings -> Account -> Export your transactions; web app has filtered exports). Rich schema: Date, Name, Amount, Pending/Posted, Category, Parent Category, Excluded, Type, Account, Account Mask, Notes, Associated Recurrings. Pipeline: manual CSV export (periodic) -> watched folder -> data-importer -> Firefly. Everything after the CSV lands can be automated; the export click stays manual. ## LLM layer Point existing LiteLLM proxy (litellm:4000) at Firefly's REST API for NL queries + auto-categorization (see community `firefly-iii-ai-categorize` pattern). ## Gotcha - **Name collision:** `hyperledger-firefly/*` is Linux Foundation Web3/blockchain, NOT the finance app. Correct repos: `firefly-iii/firefly-iii` + `firefly-iii/data-importer`. API docs: api-docs.firefly-iii.org. ## Alternatives considered - Actual Budget (best budgeting, SimpleFIN sync ~$15/yr) — better if replacing Copilot outright. - Wealthfolio (native + iOS + OIDC, investment-first) — strong Ghostfolio replacement. - Sure (Maybe fork) — slickest all-in-one but fork-durability risk. ## Next steps when picked up 1. Draft Dockhand stack (compose + .env defaults + secrets flagged). 2. Create Postgres DB/user. 3. Register as git-stack + wire webhook. 4. Do a test Copilot CSV export -> importer mapping. 5. Wire LiteLLM query script.
Sign in to join this conversation.
No labels
lab-honing
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
adam/foundry#15
No description provided.