Ich stand vor Kurzem vor der Herausforderung Firefly III auf einem ALL-INKL-Server zu installieren. Vorweg habe ich einen Subdomain/Unteraccount bei ALL-INKL im KAS angelegt und für diesen Account auch einen eigenen FTP- und Datenbank-Account angelegt. Überdies wurde ein eigenes E-Mail-Postfach erstellt.
Mein erster Ansatz war, einfach per FTP die Skript-Dateien von Firefly III hochzuladen. Hierzu habe ich die aktuelle Version von Github heruntergeladen und per FTP auf den ALL-INKL-Server übertragen. Leider musste ich schnell feststellen, dass eine Installation (so wie auch in der offiziellen Dokumentation beschrieben) nur mittels Composer möglich ist.
Um Firefly III zu installieren musste ich daher zuerst ein SSH-Zugang bei ALL-INKL einrichten. Hierfür kann man der offiziellen Anleitung folgen.
Anschließend muss man sich mit einem SSH-Client (z.B. verwende ich Putty Portable) am ALL-INKL-Server anmelden.
In weiterer Folge kann Composer über den Befehl:
curl -sS https://getcomposer.org/installer | php
heruntergeladen werden. Dann kann mit
echo "alias composer='/www/htdocs/w0123456/subdomain.domain.at/composer.phar'" >> /www/htdocs/w0123456/.user_bashrc
der Bash-Eintrag erzeugt werden, wobei w0123456 mit dem Loginnamen des KAS (technische Verwaltung von ALL-INKL) ersetzt werden muss. Sofern – wie in meinem Fall – mit einem Unteraccount/Subdomain gearbeitet wird, muss statt subdomain.domain.at der verwendete Subdomain eingetragen werden. Falls nicht, reicht im Pfad der Loginname, daher z.B.:
echo "alias composer='/www/htdocs/w0123456/composer.phar'" >> /www/htdocs/w0123456/.user_bashrc
Anschließend kann mit
source /.bashrc
die Bash neu gestartet werden. Nähere Details finden sich in der offiziellen Anleitung.
Im nächsten Schritt sollte die PHP CLI Version auf die neueste verfügbare PHP Version gesetzt werden, weil Composer sonst Fehlermeldungen auswirft. Nähere Details finden sich in der offiziellen Anleitung. Ich habe beispielsweise für PHP 8.0 folgenden Code in die Putty-Console eingetragen:
ln -sfv /usr/bin/php80 /usr/bin/php
Sodann konnte mit
composer create-project grumpydictator/firefly-iii --no-dev --prefer-dist firefly-iii <Versionsnummer>
nun endlich Firefly III installiert werden. <Versionsnummer> muss mit der aktuellen Versionsnummer ersetzt werden, z.B. bei Version 5.6.6 würde der Befehl lauten:
composer create-project grumpydictator/firefly-iii --no-dev --prefer-dist firefly-iii 5.6.6
Nachdem Firefly III installiert wurde kopierte ich die Dateien per FTP vom firefly-iii-Ordner in den subdomain.domain.at-Ordner. Als Root-Verzeichnis der URL subdomain.domain.at wurde der Ordner subdomain.domain.at/public/ gewählt (aus Sicherheitsgründen, siehe hierzu die offiziellen Anleitung). Dann wurde die .env-Datei (Konfigurationsdatei von Firefly III) geöffnet und die benötigten Variablen entsprechend konfiguriert (Zugangsdaten für MySQL-Datenbank, Zugangsdaten für E-Mail-Server, Zeitzone, usw.).
Zuletzt wurden per SSH folgende Befehle ausgeführt (wieder subdomain.domain.at durch die eigene Sub-/Domain ersetzen), um die Firefly III-Datenbank anzulegen:
cd /www/htdocs/w0123456/subdomain.domain.at/
php artisan migrate:refresh --seed
php artisan firefly-iii:upgrade-database
php artisan passport:install
Danach sollte Firefly III unter subdomain.domain.at erreichbar sein und es können Benutzerkonten angelegt werden. Mehr Details finden sich auch in der offiziellen Anleitung.

