Sign inSign up

tallon43/nestegg

By tallon43

•Updated 24 days ago

Self-hosted personal savings & investment tracker. Single-user, SQLite, React + FastAPI.

Image
0

612

tallon43/nestegg repository overview

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.

⁠Features

  • Dashboard — total net worth at a glance: bank balance + every investment, with a yearly savings bar chart.
  • Savings — a simple monthly ledger per year (income vs. withdrawals), with an editable table and a monthly trend chart.
  • Investments — track an initial contribution plus recurring monthly contributions, with a running value that fluctuates over time. See contributed-vs-actual-value lines on the chart to visualize your returns.
  • Multi-language — switch between English and Spanish right from the login screen.
  • Multi-currency — display all amounts in EUR or USD.
  • JWT authentication with brute-force rate limiting on login.

⁠Quick start

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.

Tag summary

Content type

Image

Digest

sha256:7e7cca564…

Size

138.5 MB

Last updated

24 days ago

docker pull tallon43/nestegg