A self-hosted, multi-currency net worth and investment tracker for people who want a private, unified view of their finances.
Live Demo · Quick Start · Deployment · Security · Contributing
- Own your data — run your own instance with PostgreSQL using Docker or deploy to Vercel and Neon.
- One financial view — combine bank accounts, brokerages, crypto wallets, property, liabilities, and options.
- Multi-currency by design — preserve original balances and normalize history into your preferred base currency.
- Current market data — refresh stocks, ETFs, crypto, options, and exchange rates through Yahoo Finance and CoinGecko.
- Planning and automation — track recurring cash flow, recurring investments, daily snapshots, goals, and FIRE projections.
- Desktop and mobile — responsive charts, keyboard navigation, themes, English/Traditional Chinese, and an installable PWA.
Built with Next.js 16, React 19, Prisma 7, PostgreSQL, Tailwind CSS 4, and NextAuth.js 5.
Assets Tracker v1 is stable for personal self-hosting. Review the data responsibility notice before serving other users.
| Desktop | Mobile |
|---|---|
Assets Tracker focuses on net worth and investments. If you mainly want double-entry bookkeeping or envelope budgeting, Firefly III and Actual Budget are excellent at that — here is where each tool fits:
| Assets Tracker | Ghostfolio | Firefly III | Actual Budget | |
|---|---|---|---|---|
| Primary focus | Net worth + investments | Investment portfolio | Bookkeeping & budgets | Envelope budgeting |
| Live market data (stocks, ETFs, crypto) | ✅ | ✅ | — | — |
| Options positions | ✅ | — | — | — |
| Multi-currency accounts & history | ✅ | ✅ | ✅ | — |
| Recurring rules | ✅ cash + DCA investing | — | ✅ cash | ✅ cash |
| Goals & FIRE projections | ✅ | ✅ | — | — |
| Budgeting / double-entry ledger | — | — | ✅ | ✅ |
| License | MIT | AGPL-3.0 | AGPL-3.0 | MIT |
Summarized from each project's public documentation as of July 2026 — check their sites for the latest.
- Node.js 24
- Docker with Docker Compose
cp .env.example .envReplace the generated-placeholder values for AUTH_SECRET, AUTH_SELF_HOST_PASSWORD, and CRON_SECRET. The example database URLs are ready for the bundled local PostgreSQL container.
The default self-host login is a single owner account protected by AUTH_SELF_HOST_PASSWORD. Google OAuth is optional for non-Vercel deployments. To enable it, set both AUTH_GOOGLE_ID and AUTH_GOOGLE_SECRET, then configure the OAuth client with:
- Authorized JavaScript origin:
http://localhost:3000 - Authorized redirect URI:
http://localhost:3000/api/auth/callback/google
Use your HTTPS production origin and the same /api/auth/callback/google path when deploying. Vercel production continues to require Google OAuth.
corepack enable
pnpm install
pnpm db:up
pnpm exec prisma migrate deploypnpm devOpen http://localhost:3000. Stop the local database with pnpm db:down.
To explore the app with sample data, sign in with the one-click Preview Login (local development only) and run pnpm seed:demo. See the development workflow for details.
Set NEXT_PUBLIC_APP_URL, POSTGRES_PASSWORD, and the production secrets in .env, then pull the prebuilt application and migration images from GHCR and start the complete stack:
docker compose --profile full pull
docker compose --profile full up --no-build -dTo build both images from source instead:
docker compose --profile full up --build -dThe one-shot migration service must finish successfully before the application starts. PostgreSQL data is stored in the postgres_data volume.
Vercel with a separate Neon production/preview database is the supported hosted path. See the deployment guide for environment variables, migrations, preview isolation, cron scheduling, health checks, and non-Vercel hosting.
Docker deployments:
git pull
docker compose --profile full pull
docker compose --profile full up --no-build -dSource deployments:
git pull
pnpm install --frozen-lockfile
pnpm exec prisma migrate deploy
pnpm buildAlways back up the database before an upgrade and review the release notes.
- Deployment and self-hosting
- Development workflow
- CI policy
- Architecture
- Database and migrations
- Versioning
- Environment variable reference
pnpm format:check
pnpm lint
pnpm typecheck
pnpm test:unitContributions are welcome. Read CONTRIBUTING.md before opening a pull request; community participation is governed by the Code of Conduct.
Use GitHub Issues for reproducible bugs and feature requests. Report vulnerabilities privately through the Security Policy, not a public issue.
Each deployment owner controls its OAuth credentials, PostgreSQL database, backups, cron secret, and optional monitoring integrations. Assets Tracker is personal-tracking software, not financial, tax, or investment advice. Self-hosters are responsible for data security, privacy disclosures, regulatory compliance, backups, and access controls.
Licensed under the MIT License © 2026 Mike Tsai.