Skip to content

HomeLedger v1.0.0

Choose a tag to compare

@TastingRogue TastingRogue released this 13 Sep 20:28
· 91 commits to main since this release

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/amd64 and linux/arm64, both built natively.

Security

  • Production refuses to boot on insecure JWT_SECRET/ADMIN_PASSWORD defaults (override with ALLOW_INSECURE_DEFAULTS=true only for the zero-config demo).
  • TRUST_PROXY wiring 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.0

Upgrades 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