Firefly III is a comprehensive, self-hosted personal finance manager — tracking income, expenses, budgets, and financial goals with detailed reporting, entirely under your own control.
What Firefly III Tracks
- Multiple accounts (checking, savings, credit cards, cash)
- Income and expense transactions with categorization
- Budgets and spending limits
- Bills and recurring transactions
- Financial reports and visualizations
Prerequisites
- Docker and Docker Compose installed
Step 1 — Create a Docker Compose Configuration
mkdir firefly-iii && cd firefly-iii
nano docker-compose.yml
version: '3'
services:
app:
image: fireflyiii/core:latest
restart: unless-stopped
ports:
- "8082:8080"
env_file: .env
volumes:
- firefly-upload:/var/www/html/storage/upload
depends_on:
- db
db:
image: mariadb:lts
restart: unless-stopped
environment:
- MYSQL_RANDOM_ROOT_PASSWORD=yes
- MYSQL_USER=firefly
- MYSQL_PASSWORD=CHANGE_ME_STRONG_PASSWORD
- MYSQL_DATABASE=firefly
volumes:
- firefly-db:/var/lib/mysql
volumes:
firefly-upload:
firefly-db:
Step 2 — Create the Environment File
curl -o .env https://raw.githubusercontent.com/firefly-iii/firefly-iii/main/.env.example
nano .env
APP_KEY=$(openssl rand -base64 32)
DB_HOST=db
DB_DATABASE=firefly
DB_USERNAME=firefly
DB_PASSWORD=CHANGE_ME_STRONG_PASSWORD
Step 3 — Start Firefly III
docker compose up -d
Step 4 — Access and Complete Setup
http://YOUR_SERVER_IP:8082
Create your admin account through the setup wizard.
Step 5 — Add Your Accounts
Create entries for each of your real financial accounts (checking, savings, credit cards) to begin tracking.
Step 6 — Import Transaction History
Firefly III supports CSV import for bulk-loading historical transactions from your bank's exported statements, saving significant manual entry for getting started.
Step 7 — Set Up Budgets
Define budget categories and spending limits, then track actual spending against them over time.
Step 8 — Add HTTPS
See How to Install Nginx Proxy Manager with Docker — genuinely important given the sensitive financial data involved.
Security Considerations Given Financial Data Sensitivity
See VPS Security Checklist for Beginners and consider additional measures (2FA if supported, restricted network access via VPN) given that this application handles detailed personal financial information.
Automating Recurring Transactions
Set up recurring transaction rules for regular bills/income, reducing manual entry for predictable, repeating financial events.
Backing Up Firefly III (Critical Given Financial Data)
docker exec firefly-iii-db-1 mysqldump -u firefly -p'PASSWORD' firefly > firefly-backup.sql
Back up the database regularly and securely — see Backup Encryption: Protecting Your Backups from Unauthorized Access given the sensitivity of financial records.
Common Errors
CSV import doesn't correctly map columns — Firefly III's import wizard lets you manually map columns from your specific bank's export format; review this mapping carefully before completing the import.
Continue Reading
- VPS Security Checklist for Beginners
- Backup Encryption: Protecting Your Backups from Unauthorized Access
- How to Install Nginx Proxy Manager with Docker
Browse more articles in Popular Self-Hosted Applications.