Upgrade Firefly-III

Edited 15 February 2025 to update the upgrade instructions.

Firefly III has had a long and stormy history. There are many ways of installing Firefly III, so there are many ways to upgrade.

Download the latest release from Github.

cd /srv/www
wget https://github.com/firefly-iii/firefly-iii/releases/download/<next-version>/FireflyIII-<next-version>.zip
mkdir firefly-new
cd firefly-new
unzip ../FireflyIII-<next-version>.zip
cd ..

Where <next_version> is the latest version of Firefly III. This installs Firefly III in a new directory called firefly-new. Assuming your original Firefly III installation is in the directory firefly-iii you can upgrade by moving over your .env file and other stuff:

cp firefly/.env firefly-new/.env
rm -r firefly-new/storage
cp -a firefly/storage firefly-new/

If you use SQLite as a database system (you will know if you do) copy your database as well. Otherwise the .env-file is enough.

Then, run the following commands to finish the upgrade:

cd firefly-new
php artisan migrate --seed
php artisan cache:clear
php artisan view:clear
php artisan firefly-iii:upgrade-database
php artisan firefly-iii:laravel-passport-keys
php artisan cache:clear
php artisan view:clear
cd ..

To make sure your webserver serves you the new Firefly III:

mv firefly firefly-old
mv firefly-new firefly

If you get 500 errors or other problems, you may have to set the correct access rights:

chown -R www:www firefly
chmod -R og-w firefly

Lastly restart php and nginx.