Getting started
Capitrack is an open-source, self-hosted app for tracking your wealth across stocks, crypto and commodities. It ships as two containers — a .NET API and an nginx-served Blazor WebAssembly app — behind a single docker compose. This guide gets a private instance running on your own machine in a few minutes.
What you get
Once it's running, Capitrack gives you a single private dashboard for everything you own:
- Multi-account tracking — group stocks, crypto and commodities into as many accounts as you like.
- Real-time prices — live valuations pulled automatically from Yahoo Finance.
- CSV import — bring in history from Revolut, Trezor or any generic CSV, with automatic de-duplication.
- Analytics, goals & a calendar — interactive performance charts, savings goals with progress bars, and a wealth calendar.
Prerequisites
You only need Docker (with the Docker Compose plugin) and git:
| Requirement | Why |
|---|---|
git | To clone the repository |
docker + docker compose | Builds and runs the API and web containers — nothing else to install |
Install with Docker Compose
Clone the repository and bring the stack up. Compose builds both images and starts both services:
$ git clone https://github.com/jeff-nasseri/Capitrack.git
$ cd Capitrack
$ docker compose up -d
When the containers are up, open http://localhost:3000 in your browser. Only the web container (nginx) is published; it serves the app and proxies /api calls to the API container on the internal network.
docker-compose.override.yml that remaps the published port to 8088 (port 3000 was taken in that dev environment). Compose merges override files automatically, so check which port your instance came up on — edit or delete that file to control it.First login
On a fresh install the database is completely empty — no demo accounts, transactions or rates. A single admin login is provisioned so the app is reachable.
-
Find your admin password
The username is
admin. If you didn't set a password, a strong random one is generated on first run and printed to the API container logs:terminalbash$ docker compose logs apiLook for the boxed “initial admin account created” message containing the username and password.
-
Sign in
Open http://localhost:3000 and log in as
adminwith that password. -
Change your password
Go to Settings → Security and set your own password. The new password must be at least 8 characters with an uppercase letter, a lowercase letter, a number and a special character.
-
Create your first account
Add an account (e.g. “Stock Portfolio”), choose its currency and type, then add transactions or import a CSV.
.env.example to .env and set CAPITRACK_INIT_PASSWORD before the first run. See Configuration.Managing the stack
A few commands you'll use day to day:
# status and live logs
$ docker compose ps
$ docker compose logs -f
# stop (data is kept in the volume)
$ docker compose down
# rebuild & restart after pulling new code
$ docker compose up -d --build
docker compose down keeps your named data volume. docker compose down -v also deletes it, which permanently erases the database.Next steps
- Tune your instance in the Configuration guide — environment variables, the database path and data persistence.
- Bring in your history with the CSV import guide.
- Automate anything with the REST API.