Most personal finance apps work the same way: you hand over your bank credentials, they pull in your transactions, and they show you a chart of where your money went. That model is convenient and it is also a bet that the company stays solvent, keeps your credentials secure, and never changes its pricing. Firefly III is a different kind of tool. You install it on your own server, you enter or import your transactions yourself, and everything stays on infrastructure you control. It has 24,218 stars on GitHub and has been actively maintained for over a decade. The tradeoff is real: more setup, more manual work, and no bank sync out of the box. But if you want a complete financial picture with a proper audit trail and no third party involved, Firefly III is one of the most capable open-source options available.
| Fact | Value |
|---|---|
| What it is | Self-hosted personal finance manager |
| Built by | James Cole (open-source community) |
| License | AGPL-3.0 (open-source, free to use) |
| Platforms | Docker, Linux, PHP web hosting |
| Requires | Docker or a PHP/MySQL web server (PHP and MySQL are common open-source web technologies) |
| Install method | Docker Compose |
| Verdict | Install if you want a detailed financial ledger with budgets and reports, with your data on your own server |
What Firefly III actually is
Firefly III is a personal finance manager built on double-entry bookkeeping. Double-entry bookkeeping is an accounting method where every transaction has two sides: money leaves one account and enters another. If your salary lands in your checking account, the transaction records both the income source (wages coming in) and the destination asset (your checking account balance going up). The two sides always balance. This is the same method that businesses and professional bookkeepers use, and it matters because it gives you a general ledger, a complete record of every financial transaction across all your accounts, rather than a simplified running total.
This is different from what Mint, YNAB, or most consumer finance apps produce. Those apps aggregate transactions from your bank feed and categorize them. Firefly III treats your finances as an accounting system. Every account in Firefly III has a type: asset accounts (things you own, like a checking account, savings account, or investment account), expense accounts (where money goes when you spend, like a grocery store or utility company), revenue accounts (where money comes from, like your employer), and liability accounts (things you owe, like a credit card balance or loan). Every transaction you record moves money between two of these, and the ledger never lies.
The result is a more complete picture than most consumer apps provide. You can see exactly where every dollar originated and where it ended up, reconstruct your financial history at any point, and produce reports that show your true net worth (total assets minus total liabilities) over time rather than just a spending summary.
What you get after installing it
Accounts and transactions form the foundation. You create accounts for everything you want to track: your checking account, savings account, credit cards, cash wallet, investment accounts. Transactions move money between accounts. A grocery run records as money leaving your checking account asset and entering a grocery expense account. A credit card payment records as money leaving your checking account and reducing your credit card liability. A salary deposit records as income from your employer entering your checking account. Once you have a few weeks of transactions, the ledger gives you a complete audit trail of your financial activity.
Budgets let you set monthly spending limits per category. You can create a budget for Groceries, set a monthly limit of $600, and track how your actual grocery spending compares against it throughout the month. Budget usage is visible on the dashboard and in reports, so you can see at a glance whether you are on track before the month closes.
Categories and tags give you two additional ways to slice the same transaction data. A category groups similar expenses (Food, Transport, Housing). Tags are freeform labels you can apply to any transaction for custom analysis, like tagging every work-related expense to separate business from personal costs.
Recurring transactions let you log predictable financial events automatically. Set up your monthly rent as a recurring transaction, and Firefly III creates the transaction entry on the scheduled date. The same works for salary deposits, subscription charges, and loan payments. This keeps your ledger current without requiring manual entry of every predictable item.
Rules automate transaction categorization. You define conditions (if the transaction description contains "Whole Foods", apply the Groceries category and the "food" tag), and Firefly III applies them automatically when transactions are imported. This pays off quickly once you have a set of rules covering your regular merchants.
Reports are where the double-entry foundation shows its value. The income versus expense report shows you exactly how much money came in and went out per month. The balance sheet, a summary report showing everything you own versus everything you owe at a given moment, displays your total assets, liabilities, and net worth at any point in time. Budget reports show spending against limits. Account history charts show a line for every account balance over time. These reports are generated entirely from your own data on your own server.
Piggy banks let you track savings goals. Create a piggy bank for a vacation fund, set a target amount, and transfer money into it periodically. The piggy bank tracks how close you are to the goal.
The Data Importer is a companion tool (installed separately) that handles CSV file imports. A CSV file is a plain-text spreadsheet format, and virtually every bank lets you export your transaction history in this format. You download your bank statement as a CSV, configure the importer to map the columns to Firefly III's fields (date, amount, description, account), and run the import. The Data Importer does not connect to your bank directly; it only reads files you export yourself and upload to it.
The install experience
The recommended path is Docker Compose. Docker is software that packages applications so they run identically on any compatible server. Docker Compose is a configuration format that lets you define multiple Docker containers and their connections in a single text file. The official documentation at firefly-iii.org provides a ready-made compose file that runs three containers: Firefly III itself (the PHP web application), a MySQL database (the storage layer where your financial data lives), and the Data Importer.
The realistic sequence for a first-time install on a home server or a VPS (a virtual private server, a rented slice of a remote machine you access over the internet):
- Install Docker and Docker Compose on your server.
- Download or copy the official compose file and a matching environment variables file.
- Set values for a few required environment variables: the database password, an application key (a random string used for encryption), and the URL where you will access Firefly III.
- Run
docker compose up -dto start the containers. - Open the URL in a browser to complete the initial setup wizard, which creates your administrator account.
Someone who has run Docker before will finish this in under 30 minutes. A first-time Docker user should budget 60 to 90 minutes and plan to follow the documentation closely. The documentation is detailed and the community is active on the GitHub Discussions and the subreddit. Firefly III is not a five-minute install, but it is also not unusually difficult for a self-hosted application of its scope.
Once running, you access Firefly III entirely through a web browser. There is no desktop app. The mobile experience works through the browser, and there are third-party companion apps available for iOS and Android that connect to your Firefly III instance via its API (application programming interface, a standardized way for apps to communicate with a server) for recording transactions on the go.
Where it fits and what to compare it to
YNAB (youneedabudget.com) is the category leader for envelope budgeting. Envelope budgeting assigns every dollar to a named spending category before the month starts. YNAB is polished, has excellent mobile apps, and costs $14.99 per month or $99 per year. Your financial data lives on YNAB's servers, and you have no path to self-host. If you want the envelope method specifically and are comfortable with a cloud subscription, YNAB is the right tool. Firefly III uses double-entry accounting rather than envelope budgeting, which gives you a more complete picture of your financial position but requires more setup and more deliberate data entry.
Actual Budget is covered separately on this site and occupies a related but distinct niche. Actual uses envelope budgeting and is local-first (your data stays on your own machine by default), making it the closer comparison to YNAB in terms of the budgeting philosophy. Firefly III is the better fit if you want accounting-grade tracking, detailed asset and liability management, and reporting that looks more like a business ledger than a household budget. Actual is the better fit if you want envelope budgeting with less setup and a lighter interface.
GnuCash is a free, open-source accounting application that also uses double-entry bookkeeping. GnuCash is a desktop application with no web interface, which means you run it on one machine and your data lives on that machine as a local file. There is no browser access, no multi-device sync, and the interface reflects its age. Firefly III runs in a browser, which means any device on your network can access it, and it has a substantially more modern interface than GnuCash.
Copilot Money is Mac and iOS only, costs $13 per month, and stores data in its own cloud. Not a meaningful comparison on the self-hosted and privacy dimensions.
Firefly III sits at a specific position: open-source, self-hosted, double-entry accounting, browser-based. GnuCash is the closest open-source predecessor, but it is desktop-only. YNAB is the closest in terms of active users, but it is cloud-only and uses a different budgeting philosophy. If you want a self-hosted web application with a real accounting model and active maintenance, Firefly III is the primary option.
Verdict
Install Firefly III if you want a detailed financial ledger rather than a simplified spending tracker. The double-entry model gives you a complete record of your finances that you can interrogate from multiple angles: budget usage, income versus expenses, account balances over time, net worth history. Your data lives on your own server, no third party sees your financial records, and the AGPL-3.0 license means you can run it indefinitely without negotiating with a vendor.
The caveats are real. This is not a beginner app. The double-entry accounting model has a learning curve if you have never worked with it. There is no direct bank connection built in, so you are either importing CSV files from your bank on a regular cadence or entering transactions manually. The install requires Docker. If you want something you can set up in an evening with no bank export routine and no server maintenance, Actual Budget is the lighter starting point.
Firefly III rewards consistent use. After a few months of importing bank statements and running the rules engine to categorize transactions, you have a financial picture that most consumer apps cannot produce: a complete, balanced ledger of where your money has come from and where it has gone, entirely on infrastructure you control.