Modern finance web app for tracking expenses, budgets, and reports.
303
Modern finance web app for tracking expenses, budgets, and reports. Containerized with Docker.
The fastest way to get started is to pull the pre-built image from Docker Hub.
1. Create a docker-compose.yaml:
services:
finance-app:
image: julianhintermann/financeflow:latest
ports:
- "3000:3000"
volumes:
- financeflow-data:/app/data
environment:
- NODE_ENV=production
- DATA_DIR=/app/data
- OPENROUTER_API_KEY=your-api-key-here
- OPENROUTER_MODEL=openai/gpt-4o-mini
- OPENROUTER_VISION_MODEL=openai/gpt-4o-mini
restart: unless-stopped
volumes:
financeflow-data:
2. Start the app:
docker compose up -d
The app is available at http://localhost:3000.
NAS users (e.g. Synology): You can use bind mounts instead of named volumes to store data on a specific path:
volumes: - /volume1/data/financeflow:/app/data
If you want to build the image yourself instead of pulling from Docker Hub:
git clone https://github.com/julianhintermann-cmd/financeflow.git
cd financeflow
cp .env.example .env
# Add your OPENROUTER_API_KEY to .env
docker compose up -d
cd backend
npm install
npm run dev
cd frontend
npm install
npm run dev
Frontend runs on http://localhost:5173, backend on http://localhost:3000.
| Variable | Description | Default |
|---|---|---|
OPENROUTER_API_KEY | OpenRouter API key | - |
OPENROUTER_MODEL | AI model for analysis | openai/gpt-4o-mini |
OPENROUTER_VISION_MODEL | Vision model for receipts | openai/gpt-4o-mini |
PORT | Server port | 3000 |
DATA_DIR | Data directory | ./data |
Automatically generated on the 1st of each month. Stored in ./Monatsreport/ on the host.
File format: MonthlyReport-MMYYYY-MMYYYY.pdf
Content type
Image
Digest
sha256:6f2c2a5b9…
Size
63.5 MB
Last updated
6 months ago
docker pull julianhintermann/financeflow