Skip to content

Econumo

Productivity & Wikis

A self‑hosted personal finance & budgeting app that runs as a single Go binary inside a Docker container

Go Latest v1.2.0 · 3d ago Security brief →

Features

  • Runs as a lightweight, distroless Docker image with a bundled Go binary
  • Supports SQLite (default) or PostgreSQL backends via environment variables
  • Web UI and API together in one container; automatic DB migrations on boot

Recent releases

View all 12 releases →
Review required
v1.2.0 New feature
Auth Dependencies

Single‑binary, MCP server, PostgreSQL

No immediate action
v1.1.1 Bug fix

CodeQL alert fixes

Review required
v1.1.0 Breaking risk
Auth RBAC

Multi‑language, sharing flow, exact decimals

No immediate action
v1.0.1 Bug fix

Missing budget elements self‑heal

v1.0.0 Breaking risk
⚠ Upgrade required
  • Back up your database before upgrading.
  • Follow the v0 → v1 migration guide at https://github.com/econumo/econumo/blob/v1.0.0/docs/migration-v0-to-v1.md for full steps, including `.env` rewrite and one‑off `data:remove-salt` if a salt was set.
Breaking changes
  • Removed PHP/Symfony backend and Vue.js frontend; replaced with a Go backend and React 19 frontend shipped as a single self-contained binary.
  • Docker image moved from `docker.io/econumo/econumo-ce` to `ghcr.io/econumo/econumo`; the old image is no longer updated.
  • .env configuration must be rewritten: Symfony variables removed, database selection now uses `DATABASE_URL` DSN, `MAILER_DSN` semantics changed, several variables renamed or dropped (full mapping in migration guide).
Security fixes
  • Hardened authentication with Argon2id password hashing for new hashes and added brute‑force rate limiting on public auth endpoints.
Notable features
  • Go backend replaces PHP/Symfony, reducing memory usage from ~200 MB to ~10 MB and improving performance.
  • Redesigned React 19 frontend with new UI/UX, selectable icon avatars replacing Gravatar, and various interaction refinements.
  • Revocable sessions and personal access tokens (PATs) for fine‑grained API authentication; changing a password revokes all other sessions.
Full changelog

Econumo v1.0.0 is a complete rewrite — a new Go backend and a new React frontend, shipped as a single self-contained binary. Upgrading from v0.x involves breaking changes: please read the v0 → v1 migration guide before upgrading, and back up your database first.

⚠️ Breaking changes

  • New tech stack — the PHP/Symfony backend and the Vue.js frontend are gone, replaced by a Go backend and a React 19 frontend. Everything is one self-contained binary. See the migration guide for the full upgrade path.
  • New Docker image — the image moved from Docker Hub to the GitHub Container Registry: docker.io/econumo/econumo-ceghcr.io/econumo/econumo. The old image is no longer updated.
  • .env must be rewritten — the Symfony-era variables are gone. Database selection is now a single DATABASE_URL DSN, MAILER_DSN changed meaning (a leftover v0.x value fails at boot), and several variables were renamed or removed. The migration guide has the full mapping table.
  • ECONUMO_DATA_SALT is deprecated — v1 runs salt-free. If your v0.x instance had a salt set, you must run the one-off data:remove-salt migration once, or those users cannot log in. If it was never set, nothing to do.
  • Everyone signs in again once — v1 stores auth tokens in the database instead of issuing JWTs, so existing login tokens are invalidated. Passwords are unchanged.

Your data is reused in place — there is no export/import. The schema is carried forward unchanged, and the new binary recognizes the old migrations on boot and applies only the genuinely new ones.

What's new

  • Go backend replaces the PHP/Symfony backend (#46). One static binary in a distroless image serves the API and the web app, and runs database migrations automatically on boot. Memory consumption dropped from ~200 MB to ~10 MB, and the app got much faster. SQLite (default) or PostgreSQL, selected at runtime by DATABASE_URL.
  • Redesigned React frontend replaces the Vue.js app (#58) — a rebuilt UI/UX on React 19, served from the same image, with selectable icon avatars replacing Gravatar (#71) and a range of interaction refinements.
  • Revocable sessions and personal access tokens (#74) — opaque bearer tokens stored (hashed) in the database. Sign-ins create revocable sessions you can manage and revoke individually, and you can mint personal access tokens (PATs) for API access. Changing your password revokes your other sessions.
  • Hardened authenticationargon2id password hashing for all new hashes (#70) and brute-force rate limiting on the public auth endpoints (#72).
  • Simpler deployment — a single-service docker-compose.yml; password-reset mail via MAILER_DSN (console output by default, Resend supported).
  • Dependency updates across the stack.

Migrating from v0.x

Follow the step-by-step migration guide: back up your database, switch the image, point the container at your existing data, rewrite .env, and start the stack.

The ghcr.io/econumo/econumo:latest image tag points to this build; to pin the exact version use ghcr.io/econumo/econumo:v1.0.0.

Full changelog: v0.10.1...v1.0.0

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
79
Forks
2
Languages
Go TypeScript JavaScript

Install & Platforms

Install via
docker

Beta — feedback welcome: [email protected]