Installation de Firefly III : un gestionnaire de finances personnelles
Introduction
Firefly III est un gestionnaire de finances personnelles gratuit et open source à installer sur un serveur web. Avant de l'utiliser, il faut bien comprendre son fonctionnement car il est basé sur les règles que YNAB utilise, c'est à dire gérer son budget par attribution d'enveloppe pour chaque catégorie. Vous pouvez apprendre les 4 règles d'or pour gérer votre argent avec la méthode de YNAB décrite en anglais. Le programme YNAB est un logiciel payant avec un abonnement au mois. Ici avec Firefly III vous avez une alternative gratuite et open source. Pour soutenir le développeur par cet excellent travail, vous pouvez lui faire un don.
Je vais détailler ici son installation pour que vous puissiez faire de même du 1er coup.
Ancienne version de composer
J'ai obtenu l'erreur suivante sur un hébergement mutualisé (o2switch) qui utilise une ancienne version de composer. Installez d'abord la dernière version de composer plutôt que le composer fourni.
Generating autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump You made a reference to a non-existent script @php artisan package:discover > php artisan optimize [InvalidArgumentException] Cannot instantiate Twig extension 'TwigBridge\Extension\Laravel\Session': N o application encryption key has been specified. Script php artisan optimize handling the post-install-cmd event returned with an error [RuntimeException] Error Output: create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--no-secure-http] [--keep-vcs] [--no-install] [--ignore-platform-reqs] [--] [<package>] [<directory>] [<version>]
Et dans le dossier de logs : firefly-iii/storage/logs/
[2017-11-30 13:54:03] production.ERROR: Cannot instantiate Twig extension 'TwigBridge\Extension\Laravel\Session': No application encryption key has been specified. {"exception":"[object] (InvalidArgumentException(code: 0): Cannot instantiate Twig extension 'TwigBridge\\Extension\\Laravel\\Session': No application encryption key has been specified. at /home/jinforma/t.jinformatique.net/firefly-iii/vendor/rcrowe/twigbridge/src/ServiceProvider.php:236)"}
Installation Firefly III - Base MySQL
Après avoir installé une version récente de composer, on lance la commande :
php ~/composer create-project grumpydictator/firefly-iii --no-dev --prefer-dist firefly-iii <latest>
Configurer le fichier de config .env en se basant sur l'aide fourni en ligne avec les données de connexion à la base de données que vous aurez crée au préalable. Ensuite lancez :
php artisan migrate:refresh --seed
Si vous obtenez l'erreur suivante :
Migration table not found. Migration table created successfully. [Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter table `link_types` add unique `link_types_name_outward_inward_unique`(`name`, `outward`, `inward`)) [Doctrine\DBAL\Driver\PDOException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes [PDOException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes
Relancez simplement la même commande une 2ème fois.
Vous pourrez ensuite vous connecter sur l'interface web et créer votre compte.
Installation Firefly III - Base SQLITE (en local)
D'abord rajouter quelques dépendances pour PHP
sudo apt install php7.1-intl php7.1-bcmath php7.1-sqlite3 php ~/bin/composer create-project grumpydictator/firefly-iii --no-dev --prefer-dist firefly-iii <latest> cd firefly-iii/
Changer la connexion dans le fichier .env pour avoir :
APP_URL=http://localhost/firefly-iii/public/ DB_CONNECTION=sqlite DB_HOST=127.0.0.1 DB_PORT=3306 #DB_DATABASE=homestead DB_USERNAME=homestead #DB_PASSWORD=secret
DB_DATABASE et DB_PASSWORD ne sont pas nécessaire. Pour que cela fonctionne vous aurez besoin du fichie base de donnée format sqlite. Vous pouvez le créer en executant la commande suivante depuis votre dossier Firefly III :
touch ./storage/database/database.sqlite
Ensuite vous pourrez initialiser la base de donnée de cette façon :
php artisan migrate:refresh --seed
Puis mettre les droits qui vont bien :
cd .. sudo chown -R www-data:www-data firefly-iii/ sudo chmod -R 775 firefly-iii/storage
Conversion BDD MySQL vers SQLITE
Si vous avez déjà commencé à utiliser MySQL et que vous souhaitez passer à SQLITE, utilisez le script suivant :
https://github.com/dumblob/mysql2sqlite
./mysql2sqlite dump_mysql.sql | sqlite3 database.sqlite
Réinstallation Firefly III - Base SQLITE, migration après une sauvegarde
Il s'agit de sauvegarder 2 fichiers clés :
- firefly-iii/.env (la configuration de l'installation)
- firefly-iii/storage/database/database.sqlite (la base de données)
Ensuite on va pouvoir les réinstaller sur une nouvelle installation
php ~/bin/composer create-project grumpydictator/firefly-iii --no-dev --prefer-dist firefly-iii<latest> cp .env firefly-iii #Copie du fichier sauvegardé cd firefly-iii touch ./storage/database/database.sqlite php artisan migrate:refresh --seed cp ../database.sqlite ./storage/database/database.sqlite #Copie du fichier sauvegardé sudo php artisan cache:clear cd .. sudo chown -R www-data:www-data firefly-iii/ sudo chmod -R 775 firefly-iii/storage
Une capture d'écran du programme.
Site officiel : https://firefly-iii.org/