Version 2.1 · Run it on a server you control

Self-host the budget—and the responsibility that comes with it.

Keep your budget on infrastructure you control. You decide who can sign in, where financial data is stored, when updates happen, and how you recover from a problem.

Backup screen where you can add password protection, preview what a restore would change, and recover from a recent safety copy.

Before the commands

Know what you are agreeing to operate.

Run it locally or on your server

Try the app from a local checkout. For production, use the included Compose file with a release you choose.

Keep your budget after restarts

Your months, accounts, imports, and users live in PostgreSQL. Never remove its volume as part of a routine update.

HTTPS and access

Put HTTPS in front of production, set real secrets, decide who may register or sign in, and protect administrator access to the server.

Back up and test recovery

Keep PostgreSQL backups plus encrypted application exports. Preview a restore and verify the seven-day safety copy before a move or update.

Choose when updates happen

Read release notes, review environment changes, pin the version you intend to run, and check your budget after restarting.

Choose one path

Try it locally first. Use a stable release on your private server.

Try it on your computer

Use this path to decide whether the budgeting routine fits before you prepare a server.

$ git clone https://github.com/taimoorq/expense_tracker.git
$ cd expense_tracker
$ cp .env.example .env
$ docker compose up --build

Success looks like: FinanceTracking.app opens at http://localhost:4287, you can create an account, and the same budget is still there after a restart.

Run a specific release on your server

Set the current version in .env.production, pull it, and start without rebuilding on the server.

EXPENSE_TRACKER_IMAGE=ghcr.io/taimoorq/expense_tracker:v2.1.0
docker compose --env-file .env.production \
  -f docker-compose.production.yml pull web
docker compose --env-file .env.production \
  -f docker-compose.production.yml up -d --no-build

Version 2.1 runs confirmed account activity imports and Backup v2 work in a dedicated worker. After startup, confirm both the web and worker services are running.

Use latest only if you intentionally want updates to move automatically. A version tag keeps each update predictable.

Do not use the local setup as a public server.Finish secrets, HTTPS, registration and access settings, persistent database storage, monitoring, and recovery planning first.

Upgrading an existing installation

Protect every budget before switching.

The update keeps existing budgets available while you run the required checks. Back up first, and switch calculations only after the results match.

Before the switch

  • Take a PostgreSQL backup and application export.
  • Run the documented upgrade checks.
  • Resolve every difference through the review flow.

After the switch

  • Verify Home, Activity, Accounts, Reports, month close, and Backup.
  • If anything is wrong, use the documented rollback.

Follow the complete upgrade and rollback guide.

Production checklist

Make recovery work before storing important financial data.

01

Protect configuration

Keep real secrets and environment files outside version control. Use strong admin and user credentials.

02

Persist the database

Know which volume or external PostgreSQL service holds the data and how it is backed up.

03

Use a secure connection

Use a trusted HTTPS certificate and a reverse proxy or platform configuration appropriate for the host.

04

Export before updating

Back up PostgreSQL, export application data, and review .env.example before pulling a release.

05

Restart without deleting data

Never use docker compose down -v during a normal update.

06

Verify the real workflow

Confirm the web and worker services are running, then open Home, Plan, Activity, Accounts, Reports, month close, and Backup.

Shared responsibility

What the app handles—and what you manage.

FinanceTracking.app handles

  • Stable releases and in-app notes that explain what changed.
  • Password-protected backups, restore previews, and seven-day safety copies.
  • CSV import previews with row errors and duplicate checks.
  • Saved progress and safe retry for confirmed account activity imports and Backup v2 operations.
  • Guided upgrade checks with a documented rollback.
  • User sign-in and initial administrator setup.

You manage

  • The server, PostgreSQL storage, HTTPS, firewall, and host access.
  • Credentials and the policy for who may register or sign in.
  • Database and application backup storage.
  • Update timing, verification, monitoring, and incident recovery.
  • Privacy notices appropriate for the people using that installation.

Use the detailed guide for exact files, variables, and update commands.

This page helps you decide. The install guide gives you the commands, and the trust center explains where data lives and which outside services the app contacts.