Hosted by third parties

There are several third parties where you can run a Firefly III instance. Keep in mind do that there’s no such thing as a “free lunch”, and these options are either paid or severly limited (is very slow or can’t handle many transactions).

Sandstorm.io

Firefly III supports Sandstorm.io. You can find Firefly III in Sandstorm.io by going to the Sandstorm.io App Market. Please keep in mind that you need a paid Sandstorm account to be able to run Firefly III, or you must download Sandstorm locally and run it from there.

Heroku

Firefly III supports Heroku. You can deploy Firefly III in Heroku after you register for a (free) account.

Considerations when using heroku

Heroku uses what is called an “ephemeral file system” and it will not be able to store attachments. They will be deleted after some time. Don’t use Firefly III on Heroku in combination with sensitive or rare file attachments.

The free-tier database can hold a maximum of 10,000 rows, which is about one year’s worth of transactions.

Softaculous

Firefly III is featured in Softaculous. If your (hosting) server provides packages using Softaculous, Firefly III will be available as a package there. They even made a special demo site.

AMPPS

Firefly III is featured in AMPPS. You can download AMPPS for Windows, Linux and Mac and Firefly III will be available as a package there.

YunoHost

Anmol Sharma has made a package for Firefly III on YunoHost. You can install it from the YunoHost website.

Amazon Web Services

AWS EC2 instances can be provisioned with a startup script to setup Firefly III immediately, but first do note: This is far from the recommended solution for provisioning a VPC with an application installed, and may not even work out of the box by the time you read this. Better solutions might involve other tools like Ansible, Chef, or Docker. Below is the simplest way to get this done without any pre-requisits:

#!/bin/bash
yum update -y
amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
yum install -y httpd mariadb-server php-intl.x86_64 php-bcmath.x86_64 php-mbstring.x86_64 php-gd.x86_64 php-ldap.x86_64 php-xml.x86_64 php-pecl-zip-1.15.2-3.amzn2.0.1.x86_64
systemctl start mariadb
systemctl enable mariadb
export DATABASE_PASS=secret
mysql -u root -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1')"
mysql -u root -e "DELETE FROM mysql.user WHERE User=''"
mysql -u root -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\_%'"
mysql -u root -e "CREATE USER IF NOT EXISTS 'homestead'@'localhost' IDENTIFIED BY 'secret'"
mysql -u root -e "CREATE DATABASE IF NOT EXISTS homestead"
mysql -u root -e "GRANT ALL PRIVILEGES ON homestead.* TO 'homestead'@'localhost' IDENTIFIED BY 'secret'"
mysql -u root -e "FLUSH PRIVILEGES"
mysql -u root -e "UPDATE mysql.user SET Password=PASSWORD('$DATABASE_PASS') WHERE User='root'"
export COMPOSER_HOME=/home/ec2-user/.composer
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
composer create-project grumpydictator/firefly-iii --no-dev --prefer-dist /var/www/html 4.7.9
systemctl start httpd
systemctl enable httpd
usermod -a -G apache ec2-user
chown -R ec2-user:apache /var/www
chmod 2775 /var/www && find /var/www -type d -exec chmod 2775 {} \;
find /var/www -type f -exec chmod 0664 {} \;
php /var/www/html/artisan migrate:fresh --seed
php /var/www/html/artisan firefly-iii:upgrade-database
php /var/www/html/artisan passport:install

If you have the AWS CLI installed, then drop that into some file (firefly, for example) and run this command to spin up the server:

aws ec2 run-instances --image-id ami-035be7bafff33b6b6 --instance-type t3.small --count 1 --user-data file://firefly --security-group-ids sg-yousgidhere --key-name firefly

Please change the $DATABASE_PASS variable before using this script.