Self-Hosting Guide
Run Expense Budget Tracker on your own server with Docker Compose and Postgres.
Requirements
- Docker and Docker Compose
- Postgres 18 (included in the Compose file)
Quick Start
git clone https://github.com/kirill-markin/expense-budget-tracker.git
cd expense-budget-tracker
cp .env.example .env
make up
This starts Postgres, runs migrations, and launches:
- the web app at
http://localhost:3000 - the auth service at
http://localhost:8081 - the FX worker in Docker Compose
Configuration
Copy .env.example to .env and adjust:
MIGRATION_DATABASE_URL— owner role used by migrationsDATABASE_URL— app role for the web processAUTH_DATABASE_URL— auth schema role for the auth serviceAUTH_MODE—nonefor local use,cognitofor email OTP environmentsAUTH_DOMAIN,COOKIE_DOMAIN, andALLOWED_REDIRECT_URIS— auth routing and cookies
When AUTH_MODE=cognito, you also need the Cognito settings and SESSION_ENCRYPTION_KEY from .env.example.
Updating
git pull
make up
Docker Compose rebuilds the services and reruns migrations through the migrate container.
AWS Deployment
For production deployment on AWS (ECS Fargate + RDS + ALB + Cognito), see the AWS CDK guide.