Self-hosted personal savings & investment tracker. Single-user, SQLite, React + FastAPI.
612
A clean, self-hosted personal finance tracker built to replace a savings-tracking spreadsheet. Single-user, single container, your data never leaves your own server.
docker run -d \
--name nestegg \
-p 8686:8000 \
-e JWT_SECRET=$(openssl rand -hex 32) \
-e ADMIN_USER=youruser \
-e ADMIN_PASSWORD=yourpassword \
-v /path/on/host/nestegg-data:/data \
tallon43/nestegg:latest
Then open http://<your-server>:8686 and log in with the credentials above.
Environment variables
┌────────────────┬───────────────────────────────────────────────────────────────────┐
│ Variable │ Description │
├────────────────┼───────────────────────────────────────────────────────────────────┤
│ JWT_SECRET │ Required. Secret key used to sign JWT tokens. │
├────────────────┼───────────────────────────────────────────────────────────────────┤
│ ADMIN_USER │ Username created automatically on first boot (if no user exists). │
├────────────────┼───────────────────────────────────────────────────────────────────┤
│ ADMIN_PASSWORD │ Password for that initial admin user. │
├────────────────┼───────────────────────────────────────────────────────────────────┤
│ DATA_DIR │ Where the SQLite database is stored (default /data). │
└────────────────┴───────────────────────────────────────────────────────────────────┘
No credentials are hardcoded anywhere — the admin account is created only from
these environment variables the first time the container starts with an empty
database.
Content type
Image
Digest
sha256:7e7cca564…
Size
138.5 MB
Last updated
24 days ago
docker pull tallon43/nestegg