Deploy Finance Tracker
Private multi-user household finance ledger with budgets and CSV import.
Just deployed
/var/lib/postgresql/data
finance-tracker
Just deployed
Deploy and Host Finance Tracker with Railway
Finance Tracker is private, multi-user household finance software. It replaces browser-only totals with an authenticated PostgreSQL ledger: accounts, cash flow, budgets, recurring bills, reversible transfers, and CSV import validation live together. Monetary values are stored as integer minor units, preventing floating-point drift.
About Hosting Finance Tracker
Hosting Finance Tracker deploys the Node application and a managed PostgreSQL database together. Household members create accounts and record balanced postings rather than editing balances directly; the dashboard derives net worth and cash flow from posted ledger data. Secure signed sessions isolate households. Template supports EUR, USD, and COP; COP uses zero fractional digits. Version 0.1 includes manual account and transfer workflows, reverse-not-delete ledger safety, dashboard, onboarding, CSV preview/deduplication foundation, budget schema, and recurring transaction timeline model. It intentionally excludes bank synchronization and investment pricing.
Common Use Cases
- Shared household cash, card, loan, and savings tracking
- Budget envelopes and monthly spending reviews
- Upcoming recurring bills and income planning
- Safe migration from spreadsheet or CSV transactions
Dependencies for Finance Tracker Hosting
- Node.js 22 application runtime
- Railway PostgreSQL for users, sessions, household records, and immutable ledger postings
Deployment Dependencies
Why Deploy Finance Tracker on Railway?
Railway hosts application servers and PostgreSQL on one platform with minimal configuration. Private service networking supplies database connection reference automatically. Scale vertically for larger ledgers or horizontally for web traffic while retaining managed deployment, logs, domains, and environment isolation.
Environment variables
| Name | Required | Default | Description |
|---|---|---|---|
DATABASE_URL | Yes | ${{Postgres.DATABASE_URL}} | Railway private PostgreSQL connection reference. |
SESSION_SECRET | No | auto-generated at startup | Cookie-signing secret. If unset, the app generates an ephemeral secret and sessions reset on each redeploy; set a stable random value (e.g. openssl rand -hex 32) for persistent logins. |
PORT | Yes | 3000 | Internal Railway HTTP listener port. |
NODE_ENV | Yes | production | Enables production cookie settings and SSL-aware database connections. |
Notes:
- The template ships the
wotonews/finance-trackerDocker image (built from the private source repo) plus a managed single-node Railway PostgreSQL service. Private networking suppliesDATABASE_URLautomatically. - v0.1 targets a single app instance; horizontal scaling requires a stable
SESSION_SECRETshared across replicas.
Local setup
- Start PostgreSQL locally and copy
.env.exampleto uncommitted.env. - Run
npm ci, thennpm run migrate. - Run
npm run dev; open Vite local URL.
Deploy with Railway
- Push this isolated repository to
contourkde/finance-trackerusing/push-github. - Build and push the image:
./scripts/push-to-dockerhub.sh finance-tracker --tag v0.1.0(bump the tag inrailway.jsonon every image change). - Verify with a real deploy:
./scripts/railway-e2e-deploy.sh finance-tracker— provisions managed Postgres first, then the app, and checks/healthz. - Publish via
./scripts/publish-template.sh finance-tracker.
Template Content
PGDATA
PGPORT
POSTGRES_DB
POSTGRES_USER
SSL_CERT_DAYS
RAILWAY_DEPLOYMENT_DRAINING_SECONDS
finance-tracker
wotonews/finance-tracker:v0.1.0PORT
NODE_ENV
