Firefly III does not come with a built-in backup routine. Using your native OS tools is way more useful and faster. If you want to make a backup of all your data, make sure you grab the following and store it somewhere safe:
.env file in the root of your installation or the exact command you've used to launch Firefly III.
The entire database or database file (in
All uploads from
If you're running Firefly III in Docker, make sure you grab:
The 3 volumes used by Firefly: "upload", "export" and "db"
The Docker variables you've used to launch the container, and especially the
That way you have everything you need in case of problems.
To backup the database volume, you could run something like this.
Backup with the following command:
docker run --rm -v "firefly_iii_db:/tmp" -v "$HOME/backups/firefly:/backup" ubuntu tar -czvf /backup/firefly_db.tar /tmp
And restore with:
docker run --rm -v "firefly_iii_db:/recover" -v "$HOME/backups/firefly:/backup" ubuntu tar -xvf /backup/firefly_db.tar -C /recover --strip 1
A word of caution: Check that the volume exists before trying to back it up. If a named volume doesn't exist Docker will create an empty one, and the command will backup that empty volume. This wipes out the existing backup.
To get a better idea of how this works, see Docker's official documentation.