DEV Community

selfhosting.sh
selfhosting.sh

Posted on • Originally published at selfhosting.sh

Personal Finance

Pick the Right Tool

These three apps take fundamentally different approaches to personal finance. Picking the right one depends on how you think about money management:

Updated March 2026: Verified with latest Docker images and configurations.

Approach Best Choice Why
Envelope budgeting Actual Budget Forward-looking, allocate every dollar
Transaction tracking Firefly III Record where money went, rules and automation
Full accounting GnuCash Double-entry bookkeeping, investment tracking
Best overall for individuals Firefly III Most complete self-hosted finance app

Firefly III — Best Overall

Firefly III is the most complete self-hosted personal finance tool. It tracks bank accounts, credit cards, loans, and assets. You import transactions via CSV, OFX, or automated bank connections (through third-party tools like Saltedge), categorize them with rules, and get reports on spending by category, budget, and time period.

The rule engine is what sets Firefly III apart. Define rules like "if the description contains 'AMAZON', set the category to 'Shopping' and tag it as 'online'" — and Firefly III applies them automatically to every imported transaction. After initial setup, most categorization happens without manual intervention.

Budgets work on a monthly allocation model. Set a budget for each category, and Firefly III shows how much you've spent against each budget with a visual progress bar. It's not envelope budgeting (that's Actual Budget's territory) — it's spending-limit tracking.

Pros:

  • Comprehensive transaction management with automated rules
  • Multi-currency support
  • CSV, OFX, MT940, CAMT import formats
  • Recurring transaction templates
  • Piggy banks (savings goals)
  • Bill tracking with reminders
  • Reports: income/expense, budget, category, tag breakdowns
  • Active development, large community
  • Well-documented API for custom integrations

Cons:

  • PHP/Laravel backend — heavier than Actual Budget
  • Bank auto-import requires third-party tools (not built-in)
  • No mobile app (responsive web UI only)
  • Learning curve for the rule engine

Docker Compose:

services:
  firefly:
    image: fireflyiii/core:version-6.5.4
    container_name: firefly-iii
    ports:
      - "8080:8080"
    environment:
      - APP_KEY=CHANGEME_32_CHARS_EXACTLY_HERE!!  # Generate with: head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32
      - DB_HOST=firefly-db
      - DB_PORT=3306
      - DB_CONNECTION=mysql
      - DB_DATABASE=firefly
      - DB_USERNAME=firefly
      - DB_PASSWORD=secret_firefly_password        # Change this
      - APP_URL=http://localhost:8080
      - TRUSTED_PROXIES=**
      - TZ=America/New_York
    volumes:
      - firefly-upload:/var/www/html/storage/upload
    depends_on:
      - firefly-db
    restart: unless-stopped

  firefly-db:
    image: mariadb:11
    container_name: firefly-db
    environment:
      - MYSQL_ROOT_PASSWORD=root_password           # Change this
      - MYSQL_DATABASE=firefly
      - MYSQL_USER=firefly
      - MYSQL_PASSWORD=secret_firefly_password      # Match above
    volumes:
      - firefly-db:/var/lib/mysql
    restart: unless-stopped

volumes:
  firefly-upload:
  firefly-db:
Enter fullscreen mode Exit fullscreen mode

Resources: ~120 MB RAM (app + MariaDB). Moderate disk for transaction history.

[Read our full guide: How to Self-Host Firefly III]

Actual Budget — Best for Envelope Budgeting

Actual Budget is a zero-based envelope budgeting app, similar to YNAB (You Need A Budget). The core idea: every dollar you earn gets assigned to a category (an "envelope") before you spend it. When the grocery envelope is empty, you stop spending on groceries — or move money from another envelope.

Actual was originally a commercial product that went open-source in 2022. The community fork (Actual Budget) has been actively developed since, adding bank sync via GoCardless/SimpleFIN, improved reporting, and a polished UI that feels closer to a commercial app than most open-source finance tools.

The UI is fast — Actual uses a local-first architecture where the database lives in the browser with server sync. This means the app feels snappy even on slow connections. Budget changes, transaction edits, and category updates are instant.

Pros:

  • Envelope/zero-based budgeting done right
  • Local-first architecture — extremely responsive UI
  • Bank sync via GoCardless (EU) and SimpleFIN (US)
  • Clean, modern UI that rivals commercial apps
  • Import from YNAB4, nYNAB, and CSV
  • Goal tracking for savings targets
  • End-to-end encryption option

Cons:

  • Focused solely on budgeting — no investment tracking or net worth features
  • Reporting is improving but not as deep as Firefly III
  • No mobile app yet (PWA works on mobile)
  • Bank sync requires third-party accounts

Docker Compose:

services:
  actual-budget:
    image: actualbudget/actual-server:26.3.0
    container_name: actual-budget
    ports:
      - "5006:5006"
    volumes:
      - actual-data:/data
    restart: unless-stopped

volumes:
  actual-data:
Enter fullscreen mode Exit fullscreen mode

Resources: ~40 MB RAM. Minimal CPU. SQLite storage — database grows with transaction count (~50 MB for years of history).

[Read our full guide: How to Self-Host Actual Budget]

GnuCash — Full Double-Entry Accounting

GnuCash is not a budgeting app — it's a full accounting system. Double-entry bookkeeping, chart of accounts, investment portfolio tracking with stock price fetching, business invoicing, accounts receivable/payable, and tax report generation. It's been in development since 1998 and is used by individuals and small businesses alike.

GnuCash is primarily a desktop application (GTK). The Docker self-hosting angle is more limited — you can run GnuCash in a container with VNC/web access, or use its companion mobile apps that sync via the file format. There's no native web UI like Firefly III or Actual Budget.

Pros:

  • Full double-entry bookkeeping
  • Investment tracking with automatic price fetching
  • Business features: invoices, AP/AR, employee expense tracking
  • Tax report generation (Schedule C, Schedule D)
  • Extremely mature and stable (25+ years)
  • Handles multiple currencies, stocks, and commodities

Cons:

  • Desktop application — no native web UI
  • Docker hosting requires VNC/web wrapper
  • Steep learning curve if you don't know accounting
  • UI shows its age
  • Not designed for envelope budgeting

Best for: People who want proper accounting — tracking investments, doing taxes, or running a small business. Not the right tool if you just want to track personal spending.

GnuCash vs Firefly III

Comparison Table

Feature Firefly III Actual Budget GnuCash
Primary approach Transaction tracking Envelope budgeting Double-entry accounting
Web UI Yes (responsive) Yes (local-first) No (desktop app)
Docker support Native Native Via VNC wrapper
Bank sync Via third-party GoCardless / SimpleFIN OFX import
Mobile app No (web only) PWA Android / iOS companion
Rule automation Extensive Basic N/A
Investment tracking No No Yes (stocks, funds, commodities)
Multi-currency Yes Limited Yes (with exchange rates)
Business features No No Yes (invoicing, AP/AR)
Reports Comprehensive Growing Comprehensive
RAM usage ~120 MB ~40 MB N/A (desktop)
Database MySQL / PostgreSQL SQLite SQLite / XML
License AGPL-3.0 MIT GPL-2.0
Active development Very active Active Active

Which One Should You Pick?

Choose Firefly III if you want to understand where your money goes. You'll import or manually enter transactions, set budgets as spending limits, and build rules to automate categorization. It's the most versatile option and works well for couples or households sharing a single financial view.

Choose Actual Budget if you want to plan where your money goes before you spend it. Envelope budgeting forces you to make intentional allocation decisions. If you've used YNAB and want to self-host the same workflow, Actual Budget is the closest match.

Choose GnuCash if you need real accounting. Investment portfolios, business expenses, tax prep, depreciation schedules — GnuCash handles what the other two can't. But if you don't need those features, it's overkill for personal budgeting.

Frequently Asked Questions

Can I import transactions from my bank automatically?

Firefly III supports automated bank import via third-party tools — Saltedge and Spectre are the most popular options. Actual Budget has native bank sync through GoCardless (EU banks) and SimpleFIN (US banks). GnuCash imports OFX/QFX files exported manually from your bank's website but has no live connection.

Is my financial data safe on a self-hosted server?

Safer than most cloud services, as long as you follow basic security practices. Use a reverse proxy with HTTPS, keep your server updated, and restrict access via VPN or firewall. Actual Budget also offers end-to-end encryption — your server only stores encrypted data. Back up your database regularly.

Can multiple people in a household use the same instance?

Firefly III supports multiple users natively — each person gets their own accounts and budgets, or you can share accounts. Actual Budget supports multi-user access to the same budget (everyone sees the same envelopes). GnuCash is single-user by design, though you can share the data file via a sync service.

How do I migrate from Mint or YNAB?

Firefly III has a CSV importer that handles exports from most financial tools. Actual Budget has dedicated import from YNAB4 and nYNAB — it maps categories, accounts, and transaction history. For Mint, export to CSV first, then import into either Firefly III or Actual Budget.

Which one should I pick if I just want to track spending?

Firefly III. It's designed for recording where your money went — import or enter transactions, set budgets as spending limits, and build automated rules to categorize everything. Actual Budget is better if you want to plan spending in advance (envelope budgeting), and GnuCash is overkill unless you need investment tracking or business accounting.

Do these apps have mobile apps?

Firefly III has no native mobile app but its web UI is responsive. Third-party apps like Waterfly III provide native access. Actual Budget works as a PWA on mobile. GnuCash has companion apps for iOS and Android that sync via the data file format.

Related

Top comments (0)