Skip to main content

Get started in three steps

This guide will help you set up Firefly III, create your first account, and record your first transaction. By the end, you’ll understand the basics of tracking your finances.
This quickstart uses Docker for the simplest setup experience. For other installation methods, see the installation guide.
1

Install Firefly III with Docker

The fastest way to get started is with Docker. Make sure you have Docker installed on your system.Create a docker-compose.yml file:
docker-compose.yml
version: '3.3'

services:
  firefly_iii_app:
    image: fireflyiii/core:latest
    restart: always
    volumes:
      - firefly_iii_upload:/var/www/html/storage/upload
    env_file: .env
    ports:
      - 80:8080
    depends_on:
      - firefly_iii_db

  firefly_iii_db:
    image: mariadb:latest
    restart: always
    environment:
      - MYSQL_RANDOM_ROOT_PASSWORD=yes
      - MYSQL_USER=firefly
      - MYSQL_PASSWORD=secret_firefly_password
      - MYSQL_DATABASE=firefly
    volumes:
      - firefly_iii_db:/var/lib/mysql

volumes:
  firefly_iii_upload:
  firefly_iii_db:
Create a .env file with your configuration:
.env
# You can leave this on "local". If you change it to production most console commands will ask for extra confirmation.
APP_ENV=production

# Set to false if you want to see debug information in error screens.
APP_DEBUG=false

# This should be your email address
SITE_OWNER=[email protected]

# The encryption key for your sessions. Keep this very secure.
# Generate with: head /dev/urandom | LC_ALL=C tr -dc 'A-Za-z0-9' | head -c 32 && echo
APP_KEY=SomeRandomStringOf32CharsExactly

# The default language
DEFAULT_LANGUAGE=en_US

# Your timezone
TZ=Europe/Amsterdam

# Database credentials - must match docker-compose.yml
DB_CONNECTION=mysql
DB_HOST=firefly_iii_db
DB_PORT=3306
DB_DATABASE=firefly
DB_USERNAME=firefly
DB_PASSWORD=secret_firefly_password

# Application URL
APP_URL=http://localhost
Important: Change APP_KEY to a random 32-character string. You can generate one with:
head /dev/urandom | LC_ALL=C tr -dc 'A-Za-z0-9' | head -c 32 && echo
Start Firefly III:
docker-compose up -d
Wait about 30 seconds for the database to initialize, then open http://localhost in your browser.
The first time you start Firefly III, it will set up the database and create the necessary tables. This may take a minute.
2

Create your first account and transaction

After logging in to Firefly III, you’ll see the dashboard. Let’s set up your first financial account and record a transaction.

Register your account

When you first access Firefly III, you’ll be prompted to create an account. Choose a username and password.
If you’re using 2FA (recommended), you’ll be asked to scan a QR code with your authenticator app.

Create an asset account

  1. Navigate to Accounts > Asset accounts in the top menu
  2. Click Create new asset account
  3. Fill in the details:
    • Name: Your checking account name (e.g., “Main Checking”)
    • Account type: Select “Default account”
    • Account number: Your actual account number (optional)
    • IBAN: Your IBAN if applicable (optional)
    • Opening balance: The current balance in your account
    • Opening balance date: Today’s date
  4. Click Submit
Start with one account to keep things simple. You can add more accounts (savings, credit cards, cash) later.

Record your first transaction

Now let’s record an expense:
  1. Click Create transaction (or press Ctrl+N)
  2. Choose Withdrawal (an expense)
  3. Fill in the transaction details:
    • Description: What you spent money on (e.g., “Groceries at Supermarket”)
    • Amount: The amount you spent
    • Source account: Select your checking account
    • Destination account: Type the store name (e.g., “Supermarket”) - Firefly III will create this expense account automatically
    • Date: When the transaction occurred
    • Category: Optional but helpful (e.g., “Groceries”)
    • Budget: Optional - we’ll set this up later
  4. Click Submit
Firefly III uses double-entry bookkeeping. Every transaction has a source (where money comes from) and a destination (where it goes to).

Transaction types

Firefly III supports three main transaction types:

Withdrawal

Money leaving your accounts (expenses like groceries, bills, shopping)

Deposit

Money entering your accounts (income like salary, gifts, refunds)

Transfer

Money moving between your own accounts (checking to savings)
3

Explore the dashboard and features

After creating your first transaction, return to the dashboard to see your financial overview.

Dashboard overview

The dashboard shows:
  • Account balances: Current balances of all your accounts
  • Recent transactions: Your latest income and expenses
  • Budget status: How much you’ve spent vs. your budget (if set)
  • Bill reminders: Upcoming bills you need to pay
  • Piggy banks: Progress toward your savings goals

Set up a budget

Budgets help you control spending:
  1. Go to Budgets in the top menu
  2. Click Create a budget
  3. Enter a budget name (e.g., “Groceries”)
  4. Set a budget amount for the current month
  5. Click Submit
Now when you create transactions, you can assign them to budgets to track your spending.

Create a recurring transaction

For expenses that repeat (like rent or subscriptions):
  1. Navigate to Recurring transactions
  2. Click Create a recurring transaction
  3. Set up the pattern:
    • Description: What the transaction is for
    • Amount: How much
    • First date: When it starts
    • Repeat: How often (daily, weekly, monthly, yearly)
    • Repetitions: How many times (or leave empty for indefinite)
  4. Click Submit
Firefly III will automatically create these transactions on schedule.
Set up recurring transactions for your salary, rent, subscriptions, and regular bills to automate your bookkeeping.

Next steps

Now that you have Firefly III running and understand the basics, explore these features:

Manage accounts

Learn about different account types and how to organize them

Master transactions

Deep dive into transaction management and bulk operations

Set up budgets

Control your spending with monthly and annual budgets

Create rules

Automate transaction categorization with powerful rules

Track bills

Set up bill tracking to never miss a payment

Generate reports

Analyze your finances with detailed reports and charts

Import existing data

If you have existing financial data to import:

CSV import

Import transactions from CSV files exported from your bank

Data importer

Use the official data importer for automated imports

Keyboard shortcuts

Speed up your workflow with these shortcuts:
ShortcutAction
Ctrl+NCreate new transaction
Ctrl+Alt+TJump to search
/Focus search box

Common questions

Go to Options > Profile and click Change password. You’ll need to enter your current password and the new password twice.
Yes! Firefly III supports any currency. Go to Options > Currencies to enable additional currencies. Each transaction can have a foreign currency amount.
Your data is stored in the database. Back up the database regularly using your database system’s backup tools. For Docker, also back up the volume data.
Yes! The web interface is mobile-friendly. There are also community-built mobile apps available. Check the ecosystem page for links.

Need help?

Documentation

Read the full documentation for detailed guides

Community support

Ask questions in GitHub Discussions

Report bugs

Found an issue? Let us know on GitHub

Live chat

Get quick answers on Gitter

Build docs developers (and LLMs) love