Repository navigation
HomeLedger v1.0.0
HomeLedger v1.0.0 π
First stable release. HomeLedger is a self-hosted personal finance manager β accounts, transactions, budgets, savings goals, subscriptions, loans and net worth β with a SvelteKit 5 frontend and a Fastify + SQLite (Drizzle) backend, shipped as a single Docker image and available as a Home Assistant add-on + HACS integration.
As of 1.0.0, the /api/v1 HTTP API and the backup file format are stable under Semantic Versioning β no breaking changes within 1.x. See docs/STABILITY.md.
Highlights
- ποΈ Per-user categories β every user gets their own editable copy of the default set at sign-up. Rename or delete freely; nobody else is affected.
- π€ CSV export β download the full filtered transaction list (
/api/v1/transactions/export.csv), Excel-friendly (UTF-8 BOM). - π Import dry-run preview β see exactly what a backup would restore/replace before the destructive import.
- π§Ύ Receipts in backups β attachments (inline), receipt analyses and line items now export/import with foreign keys remapped.
- βΏ Accessibility β aria-labels, keyboard Escape-to-close on every modal, reduced-motion support, and a WCAG-AA contrast fix for muted text in both themes.
- ποΈ UI polish β spring-free CSS motion, press feedback, translucent materials, popover anchoring, tabular numerals.
- β‘ Performance β a composite
transactions(account_id, type)index cuts balance/dashboard/net-worth latency ~30% at 20k transactions. - π³ Multi-arch Docker β
linux/amd64andlinux/arm64, both built natively.
Security
- Production refuses to boot on insecure
JWT_SECRET/ADMIN_PASSWORDdefaults (override withALLOW_INSECURE_DEFAULTS=trueonly for the zero-config demo). TRUST_PROXYwiring so rate limiting keys on the real client IP behind a reverse proxy β off by default to prevent IP spoofing.- Backup import is multi-user safe: it only touches the caller's data and remaps foreign keys, so overlapping ids can't collide with or clobber another user's rows.
Fixed
- Receipt OCR no longer mistakes item-count lines (e.g. "TOTAL ARTICULOS: 3") for the receipt total.
- Assorted UI fixes (NaN "days remaining", stale shell metadata, misaligned card actions).
Install / upgrade
docker pull irving1flores/homeledger:1.0.0
docker run -d -p 3000:3000 -v homeledger-data:/data \
-e JWT_SECRET="your-strong-random-secret-min-32-chars" \
-e ADMIN_EMAIL="you@example.com" \
-e ADMIN_PASSWORD="your-strong-password" \
--name homeledger irving1flores/homeledger:1.0.0Upgrades are safe: your data lives on the homeledger-data volume and migrations run automatically on start. See Upgrading and docs/DEPLOYMENT.md.
Note
Verified quality gate: 549 tests passing, backend + frontend typecheck clean, all workspaces build clean.
Full changelog: CHANGELOG.md