Linux

Where Does Firefly III Store Data and Attachments?

Firefly III keeps money in its database and attachments in storage/upload. Back up the DB, .env, and upload folder.

Last updated

Firefly III has three pieces and people routinely back up two. The database holds transactions. The .env file holds keys and credentials. The upload folder holds attachments. All three must move together.

SQLite keeps the ledger as a file, MySQL and Postgres keep it in a server. Either way the attachments stay as files under storage/upload. Check your compose volumes to find the host side of each mount.

Where Firefly III stores this, by platform

Linux
/var/www/html/storage/upload (inside container)

Container-side attachments folder. Receipts, imports, and exports land here. Bind-mount it to the host.

Linux
/var/www/html/storage (inside container)

Holds .env plus the database file for SQLite setups. MySQL and Postgres users still need this folder for .env and a separate DB dump.

Frequently asked questions

How do I back up Firefly III?

Dump the database, copy the .env file with encryption keys and DB credentials, and copy storage/upload for attachments. Miss any of the three and the restore fails or shows broken attachments.

Can Firefly III use SQLite instead of MySQL?

Yes, and it is the easiest path for small setups. The SQLite file sits inside the data volume. Copy the whole volume and you carry the entire ledger.

Where do Firefly III attachments go?

Receipts and CSV imports land under storage/upload inside the container. Mount that path to a host folder so files survive container recreations.

Notice an outdated path? Let us know.