Home Docs Getting started
Overview

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.

You don't need to be a developer. If you can copy and paste a couple of commands, you can run Capitrack. Docker Compose builds and starts everything for you.

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:

RequirementWhy
gitTo clone the repository
docker + docker composeBuilds and runs the API and web containers — nothing else to install
Compose builds the images from source the first time, so you don't need the .NET SDK installed to run Capitrack. The SDK is only needed if you want to develop the app locally outside Docker.

Install with Docker Compose

Clone the repository and bring the stack up. Compose builds both images and starts both services:

terminalbash
$ 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.

The repository includes a local 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.

  1. 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 api

    Look for the boxed “initial admin account created” message containing the username and password.

  2. Sign in

    Open http://localhost:3000 and log in as admin with that password.

  3. 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.

  4. Create your first account

    Add an account (e.g. “Stock Portfolio”), choose its currency and type, then add transactions or import a CSV.

Prefer to choose the initial password yourself? Copy .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:

terminalbash
# 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.