v0.1.0
First tagged release of Loot, a self-hosted personal finance ledger.
Running it
docker pull ghcr.io/aroesec/loot:0.1.0Or from source: Node 22+, pnpm, and a Postgres database.
pnpm install
cp .env.example .env.local # DATABASE_URL, APP_PASSWORD, SESSION_SECRET
pnpm db:migrate && pnpm db:seed
pnpm devThree variables and a database is the whole requirement. The model and bank
syncing are optional, and the app is fully usable without either.
What it does
Imports CSV and PDF statements, deduplicating by fingerprint so the same file
can be uploaded repeatedly. Classifies with merchant rules first and a model
second, and files anything it cannot place as Uncategorized rather than
guessing. Corrections teach rules and re-file matching history.
Credit card payments are excluded from spending and reconciled back to the
charges they settled, so a swipe and its payment do not both hit the budget.
Payments to cards the ledger cannot see are counted as debt rather than
silently dropped.
Budgets, recurring detection, spending trends, a cash buffer measured against
your own median month, and comparison against published national averages
adjusted for household size and region.
Business mode adds a profit and loss, quarterly periods, a Schedule C summary
with CSV export, and an estimated tax set-aside that keeps computed
self-employment tax visibly separate from the income tax rate you supply.
Optional Plaid syncing, web push and SMS alerts, an MCP server, verified
pg_dump backups, and full data export as CSV or JSON.
Notes
latest moves with main. Pin to 0.1.0 or a sha- tag for anything you
depend on. The image does not run migrations on start.
The major version stays at 0 until the schema settles.