How to Use Ghostfolio: The Beginner's Guide (First Deploy, the Salt-Is-Forever Rule, Your First Activity, and the Market-Data Lesson)
CodexFuse Team · 2026-11-01T12:38:31.113Z · 9 min read
Learn how to use Ghostfolio: install v3.96.0 with Docker, set your three secrets once, add your first buy activity, get market prices, set benchmarks, and back it up.
This guide teaches you how to use Ghostfolio, the open-source self hosted portfolio tracker that keeps your entire investment portfolio in one private dashboard. Stocks, ETFs, crypto, cash, and even liabilities — Ghostfolio turns them into one net-worth number you can actually read. The current release is version 3.96.0 (October 31, 2026), and it runs entirely on your own server, so your holdings never leave your hands. This ghostfolio tutorial walks you from a fresh Docker deploy to your first buy activity, working market prices, benchmarks, and a backup habit that protects everything you enter.
One thing to get straight before anything else: Ghostfolio is a portfolio tracker, not a budgeting app. If your goal is tracking where your salary goes each month — groceries, rent, subscriptions — our Firefly III beginner guide covers the budgeting lane instead. Ghostfolio answers a different question: what is everything I own worth right now, and how is it performing? If you are here to track investments, you are in the right place.
What Is Ghostfolio?
Ghostfolio is a free, open-source wealth management app you self-host to track investments, cash, and liabilities in one dashboard. It is licensed under the AGPL-3.0, has roughly 9,600 GitHub stars, and is built with Angular and NestJS. You deploy it with Docker, open it in a browser, and build your portfolio out of activities — every buy, sell, and dividend you enter becomes part of a live net-worth picture with market prices pulled in automatically. There is a live demo at ghostfol.io/en/demo if you want to click around the interface before installing anything.
Is Ghostfolio the Right Tool for You?
The honest answer depends on which money question you are asking. Ghostfolio, Firefly III, and Actual Budget are the three apps people usually compare in this lane, and they are not rivals — they answer different questions.
| App | The question it answers | Best for |
|---|---|---|
| Ghostfolio | What is my net worth, and how are my investments performing? | Investors with stocks, ETFs, crypto, or property to track |
| Firefly III | Where did my money go this month? | Budgeting, expense tracking, and spending rules |
| Actual Budget | How do I plan next month's spending? | Envelope-style budgeting and debt payoff planning |
If you hold investments anywhere — a brokerage, a crypto exchange, a savings account, a rental property — Ghostfolio is the lane. Our Actual Budget beginner guide covers the budgeting side for when you need that too. And one style note for searchers: always write it as Ghostfolio. Searching for "Ghost" alone will bury you in results about the Ghost CMS publishing platform, which is a completely different product.
How Do You Install Ghostfolio With Docker?
The official ghostfolio install path is a Docker Compose stack with three containers: the Ghostfolio app itself, a PostgreSQL database, and a Redis cache. The fastest route to a running instance follows this arc:
- Get Docker and a place to run it. You need Docker with the Compose plugin, and a machine that stays on. A small VPS is the usual choice — our what is VPS hosting guide explains the options, and our Docker beginner guide gets Docker itself installed. Community install guides suggest around 2 vCPUs, 4 GB of RAM, and 20 GB of disk for a comfortable Ghostfolio host.
- Create the environment file. Ghostfolio reads its secrets from environment variables. The three you must set yourself are the three-secret env lesson:
ACCESS_TOKEN_SALT(a random string used to derive users' security tokens),JWT_SECRET_KEY(a random string for session tokens), andPOSTGRES_PASSWORD. Generate all three with a password manager or a tool likeopenssl rand -hex 32— do not leave the defaults in place. - Set the salt once and never touch it again. This is the SALT-IS-FOREVER rule: Ghostfolio derives users' security tokens from
ACCESS_TOKEN_SALT, and changing it after accounts exist locks every user out. Pick a strong random value now and treat it as permanent. - Start the stack. Bring up the three containers —
ghostfolio/ghostfolio(with images for amd64, arm64, and arm/v7), PostgreSQL, andredis:8-alpine— with Docker Compose. - Open the app. Ghostfolio listens on port 3333 by default (bound to 0.0.0.0), so visit your server's address at that port and you will see the login screen.
This ghostfolio docker setup uses only variable names the official README documents — ACCESS_TOKEN_SALT, JWT_SECRET_KEY, DATABASE_URL, POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB, REDIS_HOST, REDIS_PORT, REDIS_PASSWORD — with PORT defaulting to 3333 and DIRECT_URL available as an optional direct Prisma migration URL.
What Happens on Your First Login?
Click Get Started and create the first user — that account automatically receives the ADMIN role, and it is the account you will use to manage the whole instance. From here on, Ghostfolio is yours: no cloud account, no subscription, no trial timer. The AGPL-3.0 license means the self-hosted app is free forever; there is an optional Ghostfolio Premium subscription (listed at $15 per year on software directories) that unlocks the professional GHOSTFOLIO market-data provider, but the app itself never asks for it.
How Do You Add Your First Activity?
Activities are the product. Ghostfolio does not hold "positions" you type in directly — it builds everything from the activities you record: BUY, SELL, DIVIDEND, FEE, INTEREST, and LIABILITY. Buy 10 shares of an ETF, record the dividend it pays, sell half a year later — each activity is a line in your history, and the dashboard computes holdings, performance, and dividends from those lines. You enter activities manually, import them from CSV or JSON, or push them through the REST API.
Two design decisions shape the workflow. First, there is no automatic broker sync — connecting to your brokerage is deliberately not supported, because your credentials never leaving your hands is the privacy point of self-hosting. Second, activities live inside accounts, and accounts live inside platforms: if you keep a savings account and a trading account at the same bank, both accounts sit under one platform, so the platform view shows the unified position. Tags let you slice everything further — by strategy, by goal, by whatever categories you invent.
How Does Ghostfolio Get Market Prices?
This is the MARKET-DATA lesson, and it is the one beginners ask about most. The ghostfolio market data layer ships with four officially supported data providers: Ghostfolio ships with four officially supported data providers: YAHOO (Yahoo Finance — the default, and it needs no API key), COINGECKO (crypto, with demo or Pro API keys supported), MANUAL (you supply the price), and GHOSTFOLIO (the professional provider, unlocked with the Ghostfolio Premium API key). Every other data provider is considered experimental.
For most people, the default just works: stocks and ETFs price themselves from Yahoo Finance the moment you add a symbol. Crypto assets use CoinGecko. If an asset exists nowhere — a private company stake, a collectible, a custom instrument — create it with Add Manually under a unique symbol and update its price yourself; that is the MANUAL provider, and it is the fallback for everything the others cannot see.
How Do You Set Benchmarks?
A portfolio number means little without something to compare it against. The ghostfolio benchmark setup lives in the admin area: In the admin area, under Admin Control then Market Data, you can mark assets to Include in Benchmark — Bitcoin, gold, or the S&P 500, for example — and Ghostfolio will chart your portfolio's performance against them. This is where the app stops being a ledger and starts being a report card: you see, in one chart, whether your stock picking is actually beating the index you could have bought for free.
How Do You Back Up Ghostfolio?
All of your portfolio data lives in the PostgreSQL database, so the ghostfolio backup rule is simple: regularly take full database dumps of the Postgres instance. Redis holds only cache — it can be rebuilt from the database, so it needs no backup. And remember the salt: ACCESS_TOKEN_SALT can never change after accounts exist, so keep your environment file somewhere safe alongside the backups. A backup without the salt it was created with is a recovery you cannot log into.
7 Beginner Mistakes to Avoid
| Mistake | What happens | The fix |
|---|---|---|
| Changing ACCESS_TOKEN_SALT later | Every user is locked out immediately | Set a strong random salt once, at install, and never touch it |
| Typing holdings instead of activities | Performance and dividend numbers come out wrong or empty | Always record BUY/SELL/DIVIDEND activities; holdings are computed |
| Looking for a broker auto-sync | Hours lost hunting a feature that does not exist | Import via CSV/JSON or the API — manual entry is the privacy trade-off |
| Skipping platforms | Accounts at the same bank scatter across the dashboard | Group accounts under one platform per institution |
| Expecting every ticker to price itself | Exotic assets show no price and stall the setup | Use Add Manually with a unique symbol for unsupported assets |
| Backing up the wrong container | Restoring Redis or the app volume recovers nothing | Dump the PostgreSQL database — that is where the data lives |
| Paying for Premium on day one | Money spent before you know what you need | Start free with Yahoo and CoinGecko; add Premium only if you want the GHOSTFOLIO provider |
Sources
- Ghostfolio GitHub releases (current version 3.96.0, October 31, 2026): https://api.github.com/repos/ghostfolio/ghostfolio/releases/latest
- Ghostfolio GitHub repository (stars, forks, AGPL-3.0 license): https://github.com/ghostfolio/ghostfolio
- Official README (self-hosting env vars, first user admin, images): https://raw.githubusercontent.com/ghostfolio/ghostfolio/main/README.md
- Official self-hosting FAQ (data providers, manual assets, backup, platforms, tags, benchmarks): https://raw.githubusercontent.com/ghostfolio/ghostfolio/main/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html
- Osaas Ghostfolio service docs (deploy steps, salt immutability): https://docs.osaas.io/osaas.wiki/Service%3A-Ghostfolio.html
- Shape.host install guide (AlmaLinux 9 full install arc): https://shape.host/resources/how-to-install-ghostfolio-investment-tracker-on-almalinux-9
- Selfhost.directory project page (install guide and FAQ): https://selfhost.directory/project/ghostfolio
- ILoveFreeSoftware walkthrough (cloud-app usage walkthrough): https://www.ilovefreesoftware.com/18/webware/free-open-source-wealth-management-tool-for-individuals-ghostfolio.html
- OpenSourceProjects.dev overview (product overview): https://www.opensourceprojects.dev/post/6f4e9462-80f0-4c6c-a656-bb277d9efad3
- Ghostfolio live demo: https://ghostfol.io/en/demo
- Railway one-click deploy template: https://railway.com/deploy/ghostfolio-portfolio-tracker
- SourceForge listing (Premium pricing): https://sourceforge.net/software/product/Ghostfolio/
Frequently Asked Questions
Is Ghostfolio free to use?
Yes. Ghostfolio is open source under the AGPL-3.0 license, so self-hosting it costs nothing beyond your own server. An optional Ghostfolio Premium subscription (listed at $15 per year on software directories) unlocks the professional GHOSTFOLIO market-data provider, but the app itself — including Yahoo Finance and CoinGecko data — is free.
Does Ghostfolio connect to my brokerage automatically?
No, and that is deliberate. Ghostfolio never asks for your brokerage credentials — you enter activities manually or import them via CSV, JSON, or the REST API. Keeping your financial credentials off the server is a core part of the self-hosting privacy model.
Can I track crypto in Ghostfolio?
Yes. The COINGECKO data provider is officially supported, covering both demo and Pro API keys, so coins and tokens price themselves like stocks do. For anything CoinGecko does not list, the MANUAL provider lets you add a custom asset with a unique symbol and set the price yourself.
What happens if I change ACCESS_TOKEN_SALT after creating accounts?
Everyone gets locked out. Ghostfolio derives users' security tokens from that salt, so a different value invalidates every existing token. Set a strong random value during installation and never change it — keep it with your backups.
Do I need Ghostfolio Premium?
Probably not at first. Yahoo Finance (the default, no key needed) covers most stocks and ETFs, and CoinGecko covers crypto. Premium adds the professional GHOSTFOLIO data provider via an API key — worth it only when you need data quality beyond what the free providers give you.