Ghostfolio is an open source wealth management application for keeping track of stocks, ETFs and cryptocurrencies held across several brokers in one place. It runs as a web application you host yourself, stores everything in your own PostgreSQL database, and turns a plain transaction history into a live picture of what your portfolio is worth, how it has performed and how the money is spread.
Most people end up with a spreadsheet once they hold positions on two or three platforms, and that spreadsheet slowly drifts out of date. Ghostfolio keeps the transaction history as the source of truth and recalculates everything from it, so performance figures stay consistent the moment a new activity is added.
Because it is self-hosted, your portfolio data never leaves infrastructure you control — there is no third-party account holding your positions, no advertising profile built from them, and no vendor that can change the terms under which you can read your own history. The design also suits the buy and hold investor rather than the day trader: it is built for continuous personal use, not for charting every tick.
Ghostfolio ships official container images for linux/amd64, arm/v7 and arm64 on Docker Hub, and the repository includes a docker-compose.yml that brings up the application together with PostgreSQL and Redis. Configuration is done with environment variables: the database connection, the Redis host and password, a random access token salt, and optional CoinGecko API keys if you want the professional market data tier. Health endpoints are provided for readiness and liveness probes, so it fits into an existing container stack or a Kubernetes cluster.
The code is licensed under the GNU Affero General Public License v3.0, which keeps the server side open as well: if you run a modified Ghostfolio as a network service, you have to offer that source to its users. The project also sells a hosted Premium tier, which funds the hosting and the paid market data providers — a convenient option, but entirely optional. Self-hosting the open source application remains free.
The stack itself is TypeScript throughout: an Angular front end with Angular Material, and a NestJS back end using Prisma against PostgreSQL, with Redis for caching.