Self-hosted Bitcoin portfolio tracker with multi-user support
10K+
Self-hosted Bitcoin portfolio tracker - that's it.
If you find BTC Tracker useful, please consider giving it a star ⭐
Track your Bitcoin investments privately on your own PC. Import transactions from exchanges or add them manually. Multi-user support with admin controls. Your data never leaves your server, period.
Special thanks to @dennysubke for helping bring BTC Tracker to Umbrel!
Install BTC Tracker with one click on your Umbrel home server
Customisable dashboard: portfolio value, price chart with your buys, quick actions, wallets, DCA score and milestones
Every buy, sale and wallet move in one table, with CSV import from 9 exchange formats
Total return, your average price vs today, each month's buys at today's price and your stack over time
DCA score with timing and consistency, what-if scenarios and purchase distribution
Set a target like 1 BTC by 2030 and track your progress
Recurring buys that record themselves at the current price
Manage the users on your server (admin only)
Calculate in one currency, show another, and add your own
With Docker (recommended):
git clone https://github.com/wilqq-the/BTC-Tracker.git
cd BTC-Tracker
cp docker.env.example .env
# Edit .env and add NEXTAUTH_SECRET
docker-compose up -d
Local development:
npm install
cp .env.example .env
# Add NEXTAUTH_SECRET to .env
npm run dev # Migrations run automatically
Windows Desktop App (Beta):
Download the installer from the latest release — no Docker or browser required. Everything runs locally on your machine.
Open app and register the first user (becomes admin automatically).
Supports most major exchanges. If yours isn't supported, open an issue with example file.
npm run dev # Start dev server
npm run build # Build for production
npm test # Run tests
npm exec prisma studio # Database GUI
Existing portfolio trackers either:
This gives you complete control over your Bitcoin tracking data.
Your data lives in a single SQLite file. The easiest way to manage backups is from the app:
Settings → Backup (admin only):
A backup is the whole database (every user's data), so restoring is admin-only and replaces everything.
Note: Exchange API credentials are encrypted with a key derived from
NEXTAUTH_SECRET. A backup restored on the same install decrypts them fine; restoring onto an install with a differentNEXTAUTH_SECRETleaves those credentials unreadable (all other data is unaffected). After a restore you may need to sign in again.
You can still back up manually by copying the SQLite file:
# Docker
docker cp btc-tracker:/app/data/bitcoin-tracker.db ./backup.db
# Local
cp prisma/dev.db ./backup.db
To restore manually, copy the file back and restart the app.
Found a bug? Want a feature? Open an issue.
Want to add support for another exchange? Check the Parser Development Guide.
Want to automate transactions via n8n or scripts? Check the API Documentation.
MIT - do what you want with it.
Your Bitcoin data belongs to you, not someone else's.
Content type
Image
Digest
sha256:f7780ebf7…
Size
178.4 MB
Last updated
12 days ago
docker pull thewilqq/btc-tracker