Read all the comments first - there are a number of corrections and important points in the comment section
This is a summarized guide I created while installing Firefly-III in a Proxmox (6.2-15) container running Ubuntu 20.04.
I followed this tutorial. It has a link to this other tutorial for installing mariaDB. Furthermore, the official Firefly-iii documentation is Here .
This guide has everything I did in one concise summary. Not much is explained. This will take about 1.5 hrs.
Note: I initially followed the official instructions and used a LAMP stack. I had issues with apache and getting the webserver to work (likely because I am not familiar with apache and am more comfortable with nginx).
To begin, first read through the two tutorials and official documentation so that you hav an idea of whats going on
First, create a 20.04 privileged container with 1 core, 512 mb ram, and default 8GB hard disk space. CT 128 with IP 192.168.1.128
Did I mention to first read through the two tutorials and official documentation?
apt update
apt upgrade
apt install nginx curl -y
apt install software-properties-common
#add-apt-repository ppa:ondrej/php
#apt update
apt install -y php7.4 php7.4-{cli,zip,gd,fpm,json,common,mysql,zip,mbstring,curl,xml,bcmath,imap,ldap,intl}
Check to see if php is running
php -v
and systemctl status php7.4-fpm
Adjust some php settings
nano /etc/php/7.4/fpm/php.ini
use ctrl-w to search for and change or enable the following lines of code
memory_limit = 512M
[Date]
date.timezone = America/Los_Angeles
stop apache
systemctl stop apache2
systemctl disable apache2
backup nginx file
cd /etc/nginx/sites-enabled/
mv default{,.bak}
create firefly.conf in sites-enabled folder and then paste in the config below
nano /etc/nginx/sites-enabled/firefly.conf
server {
listen 80 default_server;
listen [::]:80 default_server;
#server_name subdomain.domain.com;
root /var/www/html/firefly-iii/public;
index index.html index.htm index.php;
location / {
try_files $uri /index.php$is_args$args;
autoindex on;
sendfile off;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_read_timeout 240;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_split_path_info ^(.+.php)(/.+)$;
}
}
restart
systemctl restart nginx php7.4-fpm
If you get an error due to duplicate web servers, you need to remove the symbolic link in sites-available (ls -l
) and then rm
the link
Install mariaDB
apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
add-apt-repository 'deb [arch=amd64] http://mariadb.mirror.globo.tech/repo/10.5/ubuntu focal main'
apt update
apt install mariadb-server mariadb-client
mysql_secure_installation
test installation
mysql -u root -p
in the mysql shell, check version with the command in bold
MariaDB [(none)]> SELECT VERSION();
while still inside the mariaDB shell:
CREATE DATABASE firefly_db;
CREATE USER 'fireflyuser'@'localhost' IDENTIFIED BY 'yourpasswordhere';
GRANT ALL PRIVILEGES ON firefly_db. * TO 'fireflyuser'@'localhost';
FLUSH PRIVILEGES;
exit;
cd ~
curl -sS https://getcomposer.org/installer -o composer-setup.php
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
test composer
composer -V
install firefly - change the version number at the end of the command below to whatever the latest is
cd /var/www/html/
composer create-project grumpydictator/firefly-iii --no-dev --prefer-dist firefly-iii 5.4.6
cd /var/www/html/firefly-iii
php artisan migrate:refresh --seed
php artisan firefly-iii:upgrade-database
php artisan passport:install
Make sure we have the right locale enabled (currency and language?)
First check to see what is enabled. I want (en_US.utf8, en_US.UTF-8
)
locale -a
nano /etc/locale.gen
and uncomment the line en_US.utf8, en_US.UTF-8
locale-gen
systemctl restart nginx php7.4-fpm
That should be it. Navigate to the container IP address and you should get firefly Login
Before running
php artisan migrate:refresh --seed
please make sure to update /var/www/html/firefly-iii/.env following section to:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=firefly_db DB_USERNAME=fireflyuser DB_PASSWORD=yourpasswordhere
Or accordingly to your changes