Firefly III — Self-Hosted Personal Finance Manager
Firefly III is an open-source personal finance manager for tracking expenses, budgets, and bank accounts. Self-hosted with full privacy, multi-currency, and powerful reporting.
What it is
Firefly III is an open-source personal finance manager for tracking expenses, budgets, and bank accounts. It runs self-hosted with full privacy, supports multiple currencies, and provides powerful reporting. You manage transactions, set budgets, and track spending categories through a web interface.
Firefly III targets anyone who wants full control over their financial data without relying on cloud services like Mint or YNAB. It supports manual transaction entry, bank import via CSV/OFX, and automated imports through the data importer companion tool.
How it saves time or tokens
Firefly III replaces spreadsheets and cloud finance apps with a structured, self-hosted solution. The budgeting system automatically tracks spending against budgets and shows remaining amounts. Recurring transaction rules handle regular bills without manual entry. Multi-currency support handles travel expenses and international accounts automatically. The reporting dashboard visualizes spending trends without manual chart creation.
How to use
- Deploy with Docker:
docker run -d --name firefly \
-p 8080:8080 \
-e APP_KEY=SomeRandomStringOf32Characters!! \
-e DB_CONNECTION=sqlite \
-v firefly-data:/var/www/html/storage \
fireflyiii/core:latest
- Open
http://localhost:8080, register your account, and start adding transactions.
- Set up budgets, categories, and recurring rules.
- Import bank statements via CSV or connect the data importer.
Example
# docker-compose.yml for Firefly III with PostgreSQL
services:
firefly:
image: fireflyiii/core:latest
ports:
- '8080:8080'
environment:
APP_KEY: change-me-32-characters-long!!!!!
DB_CONNECTION: pgsql
DB_HOST: postgres
DB_DATABASE: firefly
DB_USERNAME: firefly
DB_PASSWORD: secret
depends_on:
- postgres
postgres:
image: postgres:15
environment:
POSTGRES_DB: firefly
POSTGRES_USER: firefly
POSTGRES_PASSWORD: secret
volumes:
- firefly-db:/var/lib/postgresql/data
volumes:
firefly-db:
Related on TokRepo
- Self-Hosted Tools — Self-hosted alternatives to commercial SaaS
- Featured Workflows — Top-rated open-source tools
This tool integrates with standard development workflows and requires minimal configuration to get started. It is available as open-source software with documentation and community support through the official repository. The project follows semantic versioning for stable releases.
For teams evaluating this tool, the key advantage is reducing manual work in repetitive tasks. The automation provided by the built-in features means less custom code to maintain and fewer integration points to manage. This translates directly to lower maintenance costs and faster iteration cycles.
Common pitfalls
- The APP_KEY must be exactly 32 characters and should be generated securely; do not reuse the example key in production.
- SQLite works for single-user setups but does not handle concurrent access well; use PostgreSQL or MySQL for reliability.
- Bank import requires the separate Firefly III Data Importer tool; it is not built into the main application.
Frequently Asked Questions
Firefly III does not connect to banks directly. The companion Data Importer tool supports Spectre and Nordigen (GoCardless) APIs for automated bank imports. You can also import CSV/OFX files exported from your bank.
Yes. Firefly III supports any currency and handles exchange rates for transactions in foreign currencies. You set a default currency and can track accounts in different currencies simultaneously.
Yes. Firefly III is open-source under the AGPL-3.0 license. There are no subscription fees. You host it yourself and own all your financial data.
Firefly III is designed for single-user or household use. Multiple accounts can be created, but the system does not have multi-tenant isolation. Each user sees all accounts and transactions.
There is no official mobile app, but the web interface is responsive and works on mobile browsers. Community-built mobile apps exist for iOS and Android that connect to your Firefly III instance via its API.
Citations (3)
- Firefly III GitHub— Firefly III is a self-hosted personal finance manager
- Firefly III Documentation— Firefly III supports multi-currency and automated bank imports
- Data Importer GitHub— Firefly III Data Importer for bank connections
Related on TokRepo
Discussion
Related Assets
NAPI-RS — Build Node.js Native Addons in Rust
Write high-performance Node.js native modules in Rust with automatic TypeScript type generation and cross-platform prebuilt binaries.
Mamba — Fast Cross-Platform Package Manager
A drop-in conda replacement written in C++ that resolves environments in seconds instead of minutes.
Plasmo — The Browser Extension Framework
Build, test, and publish browser extensions for Chrome, Firefox, and Edge using React or Vue with hot-reload and automatic manifest generation.