🎬

Video tutorial coming soon.

💰 Deploy Firefly III — Personal Finance Manager

Deploy Firefly III on Ubuntu with Docker — take full control of your finances with self-hosted double-entry bookkeeping, budget tracking, and bank data import.

⚠️ This script is provided for demo and testing purposes only. Not intended for production use.

📦 Resources & Setup Scripts

Grab the automated bash script from GitHub to follow along with the video.

Automated install — one command deploys Firefly III with MySQL and the Data Importer tool.
View on GitHub

Quick Install:

wget https://raw.githubusercontent.com/mhmdali94/Docker/main/tools/firefly-iii/firefly-iii-ubuntu.sh
chmod +x firefly-iii-ubuntu.sh
sudo bash firefly-iii-ubuntu.sh

Tutorial Steps

1 Download the Script

wget https://raw.githubusercontent.com/mhmdali94/Docker/main/tools/firefly-iii/firefly-iii-ubuntu.sh

2 Make it Executable

chmod +x firefly-iii-ubuntu.sh

3 Run the Installer

Script deploys Firefly III with MySQL and the Firefly III Data Importer via Docker Compose. All containers start automatically.

sudo bash firefly-iii-ubuntu.sh

4 Access the Web UI

Open your browser and navigate to your server IP. Complete the registration page to create your admin account — only the first registration is allowed by default.

http://<your-server-ip>

5 Import Your Bank Data

Use the Data Importer tool at port 8080 with a CSV export from your bank to import historical transactions in bulk.

http://<your-server-ip>:8080

Ports Used

PortPurpose
80Web UI
8080Data Importer

Overview

Firefly III is a free, open-source self-hosted personal finance manager built on double-entry bookkeeping principles — the same accounting method used by businesses. Every transaction has a source account and a destination account, ensuring your books always balance. You get full control over categorization, budgets, and bills without your financial data leaving your server or a subscription fee. Firefly III supports multiple currencies, multiple accounts (checking, savings, credit cards, investments, cash), recurring transactions, and sophisticated reporting including spending trends, budget adherence, and net worth over time.

Why Use It

Cloud finance apps like Mint, YNAB, and MoneyMoney require you to hand over your bank credentials or transaction history to a third party. Firefly III keeps everything on your server. Beyond privacy, it gives you deeper control — custom categories, rules that auto-categorize transactions, budget alerts, and reports that no consumer app provides. The double-entry system means your data is always consistent: if money moves, it moves from somewhere to somewhere, with no mystery spending black holes.

When You Need It

    Who Should Use It

      Real Use Cases

        Main Features

          How to Use After Installation

            Security Best Practices

              Ports and Firewall Notes

              Firefly III listens on port 80 (HTTP, proxied to HTTPS by your reverse proxy). The Data Importer runs on port 8080 — restrict this port to your local network or your IP only, as it is only needed during data import sessions. The MySQL port (3306) must never be exposed externally. In production, only ports 80 and 443 should be publicly accessible via your reverse proxy.

              Backup and Maintenance

                Common Mistakes

                  Troubleshooting

                    Alternatives

                    YNAB (You Need a Budget) is the gold standard for budgeting but is cloud-only and subscription-based. Akaunting is better for business invoicing and accounting rather than personal finance. Hledger and Beancount are text-file-based alternatives for power users who prefer plain text accounting. For a simpler self-hosted option, Actual Budget has a modern UI and sync. Firefly III's strength is the depth of its reporting, rules engine, and double-entry integrity for complex personal finances.

                    When Not to Use It

                    Skip Firefly III if you want a simple budget tracker — it has a learning curve from the double-entry model and account setup. If you just need to track spending categories with no import workflow, a simpler app like Actual Budget or even a spreadsheet may suit you better. Firefly III is not designed for business bookkeeping with invoicing, payroll, or tax reporting — use Akaunting or proper accounting software for those needs.

                    PrismaTechWork Professional Help

                    PrismaTechWork provides end-to-end infrastructure services — from initial deployment and security hardening to ongoing monitoring, automated backups, and dedicated support. Whether you need a single-server setup or a multi-site network, our team ensures your infrastructure is built right, secured properly, and maintained reliably.

                      Contact Us

                      Frequently Asked Questions

                      What is double-entry bookkeeping and why does Firefly III use it?

                      Double-entry bookkeeping records every transaction as two equal and opposite entries — a debit in one account and a credit in another. For example, buying groceries debits your Grocery category and credits your Checking account. This ensures your total assets always equal your total liabilities plus equity — the books always balance. Firefly III uses this model because it prevents common errors in personal finance apps (money appearing from nowhere, mysterious negative balances) and enables accurate net worth calculation across all your accounts.

                      How do I import transactions from my bank?

                      Most banks let you export transactions as a CSV file from their online banking portal. Open the Data Importer at port 8080, upload your CSV, and use the mapping wizard to match columns (Date, Amount, Description, etc.) to Firefly III fields. Save the mapping configuration for future imports from the same bank — next time you just upload a new CSV and apply the saved map. Firefly III also supports OFX and CAMT.053 formats for banks that offer them.

                      Can Firefly III connect directly to my bank to auto-import?

                      Yes, via the Firefly III Data Importer with a bank connection service. It supports Nordigen/GoCardless (European banks) for automatic transaction sync without sharing passwords — you authorize via open banking. For other regions, manual CSV import is the standard method. Never use services that require your actual bank username and password — those services pose significant security risks.

                      How do I set up automatic transaction categorization?

                      Go to Automation → Rules → Create Rule. Set a trigger (e.g., 'Description contains Uber') and an action (e.g., 'Set category to Transport'). Rules run automatically on new transactions during import. You can also run rules retroactively on existing transactions. Create rules for your most frequent payees first (grocery stores, utility companies, subscription services) and the majority of your imports will be categorized automatically.

                      What is the difference between a Budget and a Category?

                      A Category is a label for what money was spent on (Groceries, Petrol, Entertainment). A Budget is a monthly spending limit attached to one or more categories. Categories track what you spent; Budgets control how much you allow yourself to spend. You can have categories without budgets (informational tracking only) or link multiple categories to one budget (e.g., 'Food' budget covering both Groceries and Restaurants categories).

                      How do I handle credit card transactions?

                      Create a Credit Card account in Firefly III with the current balance as a liability. When you spend on the card, transactions come from the credit card account (debit). When you pay the credit card bill, create a transfer from your checking account to the credit card account. This correctly models the credit card as a debt that reduces when you pay it. Firefly III will track the balance, credit limit, and payment due dates if you set up the card as a Bill.

                      Can I use Firefly III in multiple currencies?

                      Yes — each account can have its own native currency. When you make a cross-currency transaction (e.g., paying in USD from a EUR account), you enter the exchange rate or amount in both currencies. Firefly III can fetch live exchange rates automatically if you configure an exchange rate API key. Reports can show totals in your base currency with automatic conversion, giving you a consolidated view across all accounts regardless of currency.

                      How do I track savings goals?

                      Create a Savings account for each goal (e.g., 'Emergency Fund', 'Holiday 2026'). Create recurring transfers from your checking account to each savings account on a monthly schedule. Firefly III will track the balance of each savings account over time, and you can see the growth in account reports. For more visual goal tracking, use the 'Piggy Banks' feature in Firefly III — set a goal amount and a target date and Firefly tracks progress as you transfer money in.