How to Install Firefly III (Self-Hosted Personal Finance)

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

Browse more articles in Popular Self-Hosted Applications.

  • firefly iii, self hosted personal finance, self hosted budgeting, firefly iii docker
  • 0 gebruikers vonden dit artikel nuttig
Was dit antwoord nuttig?

Gerelateerde artikelen

How to Install Nextcloud on a VPS with Docker

Nextcloud is a self-hosted file sync, sharing, and collaboration platform — a...

How to Install GitLab CE on a VPS

GitLab Community Edition is a full-featured, self-hosted DevOps platform — Git repository...

How to Install Ghost CMS on a VPS

Ghost is a modern, fast, purpose-built platform for blogging and newsletters — a lighter,...

How to Set Up a Minecraft Server on a VPS

Running your own Minecraft server gives you full control over mods, plugins, and world settings....

How to Install n8n for Workflow Automation

n8n is a self-hosted workflow automation tool — connecting apps and APIs through a visual...