Skip to content

wilqq-the/BTC-Tracker

Repository files navigation

BTC Tracker

Docker Pulls Docker Image Size GitHub Stars License

Self-hosted Bitcoin portfolio tracker - that's it.

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.

Install on Umbrel

Available on Umbrel App Store

Special thanks to @dennysubke for helping bring BTC Tracker to Umbrel!

Install BTC Tracker with one click on your Umbrel home server

What it does

  • Multi-user setup - First user becomes admin, can create accounts for others
  • Import from exchanges - Kraken, Binance, Coinbase, Strike (auto-detects CSV format)
  • Real-time tracking - Live Bitcoin prices and portfolio value
  • Charts and analytics - Interactive price charts with your transaction history
  • Complete privacy - Everything runs on your server, no external data sharing
  • Multi-currency - Track in USD, EUR, GBP, PLN, or add custom currencies

Screenshots

Dashboard Main portfolio dashboard with real-time Bitcoin tracking

Transactions - Import and management

Transactions Transaction management and CSV import from exchanges

Analytics - Charts and performance

Analytics Advanced portfolio analytics and performance charts

Admin Panel - Multi-user management

Admin Panel Multi-user management interface (admin only)

Currencies - Multi-currency support

Currencies Multi-currency support and custom currency management

Quick Start

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 exec prisma db push
npm run dev

Open http://localhost:3000 and register the first user (becomes admin automatically).

How multi-user works

  • First user = automatic admin
  • Admin panel in Settings tab (admin users only)
  • Create users with email/password
  • Each user sees only their own transactions and portfolio
  • No data mixing between users

Admin features

  • Create/delete user accounts
  • Activate/deactivate users
  • View system stats (user count, total transactions)
  • Cannot see other users' financial data (privacy protection)

Importing transactions

  1. Export CSV from your exchange (Kraken, Binance, Coinbase, Strike)
  2. Go to Transactions tab > Import
  3. Drop the CSV file - format detected automatically
  4. Review and import

Supports most major exchanges. If yours isn't supported, open an issue with example file.

Tech stack

  • Frontend: Next.js, React, TypeScript
  • Backend: Next.js API routes, Prisma ORM
  • Database: SQLite (single file, easy backups)
  • Charts: TradingView Lightweight Charts
  • Deployment: Docker

Development

npm run dev      # Start dev server
npm run build    # Build for production
npm test         # Run tests
npm exec prisma studio # Database GUI

Why I built this?

Existing portfolio trackers either:

  • Send your data to third parties
  • Don't support multiple users
  • Have terrible import systems
  • Cost money for basic features
  • Require xpub or zpub wallet address

This gives you complete control over your Bitcoin tracking data.

Contributing

Found a bug? Want a feature? Open an issue.

Want to add support for another exchange? Check PARSER_DEVELOPMENT_GUIDE.md.

License

MIT - do what you want with it.


Your Bitcoin data belongs to you, not someone else's.