Once Composer was installed started to follow instructions on the Firefly site —>
https://firefly-iii.readthedocs.io/en/latest/installation/server.html
and also here
https://gist.github.com/philthynz/ec04833a8e39c7f7d1b0d33cb4197a95
In order to have Firefly running without access to other users I created a new user for Firefly.
A new SQL database was added using mysql with the new users being the users allowed the complete access to the new database.
When I first ran the install command
composer create-project grumpydictator/firefly-iii --no-dev --prefer-dist firefly-iii 4.7.5
I got the following error
[InvalidArgumentException] Could not find package grumpydictator/firefly-iii with version 4.7.5 in a version installable using your PHP version 7.0.30.
Following this through by looking at the available packages at https://packagist.org/packages/grumpydictator/firefly-iii highlighted that version 4.7.5 needed PHP 7.1. This is not yet available on Debian as an official release. Further searching at the packagist site shows that the latest version for PHP 7.0 is 4.6.3.1. I installed this and all was OK.
But I want the latest release. So I googled and found there is a 7.2 release. See here https://www.chris-shaw.com/blog/installing-php-7.2-on-debian-8-jessie-and-debian-9-stretch. I installed this following the instructions. A few extra packages were needed to get all OK for Firefly php7.2-zip, php7.2-bcmath, php7.2-intl.
It is worth noting that the installer creates the directory for Firefly and you do not need to create this first. If the installer fails however the directory the installer creates needs to be deleted before the installer is run again.
This time I ran
composer create-project grumpydictator/firefly-iii --no-dev --prefer-dist firefly-iii 4.7.5.3
and it worked fine
Installing grumpydictator/firefly-iii (4.7.5.3) - Installing grumpydictator/firefly-iii (4.7.5.3): Loading from cache Created project in firefly-iii > @php -r "file_exists('.env') || copy('.env.example', '.env');" > @php -r "if (!(getenv('DYNO'))===false){file_exists('.env') || copy('.env.heroku', '.env');}" Loading composer repositories with package information Installing dependencies from lock file Package operations: 62 installs, 0 updates, 0 removals - Installing bacon/bacon-qr-code (1.0.3): Downloading (100%) - Installing psr/http-message (1.0.1): Downloading (100%) - Installing guzzlehttp/psr7 (1.4.2): Downloading (100%) - Installing guzzlehttp/promises (v1.3.1): Downloading (100%) - Installing guzzlehttp/guzzle (6.3.3): Downloading (100%) - Installing bunq/sdk_php (dev-master 8c1faef): Downloading (100%) - Installing vlucas/phpdotenv (v2.5.0): Downloading (100%) - Installing symfony/css-selector (v4.1.2): Downloading (100%) - Installing tijsverkoyen/css-to-inline-styles (2.2.1): Downloading (100%) - Installing symfony/polyfill-php72 (v1.8.0): Downloading (100%) - Installing symfony/polyfill-mbstring (v1.8.0): Downloading (100%) - Installing symfony/var-dumper (v4.1.2): Downloading (100%) - Installing symfony/routing (v4.1.2): Downloading (100%) - Installing symfony/process (v4.1.2): Downloading (100%) - Installing symfony/polyfill-ctype (v1.8.0): Downloading (100%) - Installing symfony/http-foundation (v4.1.2): Downloading (100%) - Installing symfony/event-dispatcher (v4.1.2): Downloading (100%) - Installing psr/log (1.0.2): Loading from cache - Installing symfony/debug (v4.1.2): Downloading (100%) - Installing symfony/http-kernel (v4.1.2): Downloading (100%) - Installing symfony/finder (v4.1.2): Downloading (100%) - Installing symfony/console (v4.1.2): Downloading (100%) - Installing doctrine/lexer (v1.0.1): Loading from cache - Installing egulias/email-validator (2.1.4): Downloading (100%) - Installing swiftmailer/swiftmailer (v6.1.2): Downloading (100%) - Installing paragonie/random_compat (v2.0.17): Downloading (100%) - Installing ramsey/uuid (3.8.0): Downloading (100%) - Installing psr/simple-cache (1.0.1): Downloading (100%) - Installing psr/container (1.0.0): Downloading (100%) - Installing symfony/translation (v4.1.2): Downloading (100%) - Installing nesbot/carbon (1.25.0): Downloading (100%) - Installing monolog/monolog (1.23.0): Loading from cache - Installing league/flysystem (1.0.45): Downloading (100%) - Installing erusev/parsedown (1.7.1): Downloading (100%) - Installing dragonmantank/cron-expression (v2.2.0): Downloading (100%) - Installing doctrine/inflector (v1.3.0): Downloading (100%) - Installing laravel/framework (v5.6.29): Downloading (100%) - Installing davejamesmiller/laravel-breadcrumbs (5.1.0): Downloading (100%) - Installing doctrine/event-manager (v1.0.0): Downloading (100%) - Installing doctrine/cache (v1.7.1): Downloading (100%) - Installing doctrine/dbal (v2.8.0): Downloading (100%) - Installing fideloper/proxy (4.0.0): Downloading (100%) - Installing zendframework/zend-diactoros (1.8.3): Downloading (100%) - Installing symfony/psr-http-message-bridge (v1.0.2): Downloading (100%) - Installing phpseclib/phpseclib (2.0.11): Downloading (100%) - Installing league/event (2.1.2): Downloading (100%) - Installing lcobucci/jwt (3.2.2): Downloading (100%) - Installing defuse/php-encryption (v2.2.1): Downloading (100%) - Installing league/oauth2-server (6.1.1): Downloading (100%) - Installing firebase/php-jwt (v5.0.0): Downloading (100%) - Installing laravel/passport (v5.0.3): Downloading (100%) - Installing laravelcollective/html (v5.6.10): Downloading (100%) - Installing league/commonmark (0.17.5): Downloading (100%) - Installing league/csv (9.1.4): Downloading (100%) - Installing league/fractal (0.17.0): Downloading (100%) - Installing paragonie/constant_time_encoding (v2.2.2): Downloading (100%) - Installing symfony/polyfill-util (v1.8.0): Downloading (100%) - Installing symfony/polyfill-php56 (v1.8.0): Downloading (100%) - Installing pragmarx/google2fa (v3.0.1): Downloading (100%) - Installing pragmarx/google2fa-laravel (v0.2.0): Downloading (100%) - Installing twig/twig (v1.35.4): Downloading (100%) - Installing rcrowe/twigbridge (v0.9.6): Downloading (100%) Generating optimized autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump > php artisan firefly:instructions install +------------------------------------------------------------------------------+ | | | Thank you for installing Firefly III, v4.7.5.3! | | | | | +------------------------------------------------------------------------------+ > @php artisan key:generate
and the key needed for config is generated.
So artisan is part of PHP 7.2 and not PHP 7.0!
I have not listed the key for obvious reasons!!
The .env file was then updated following the instructions here https://gist.github.com/philthynz/ec04833a8e39c7f7d1b0d33cb4197a95
and then the following command run
/media/www/firefly-iii# php artisan migrate:refresh --seed
with this result
Migration table not found. Migration table created successfully. Migrating: 2016_06_16_000000_create_support_tables Migrated: 2016_06_16_000000_create_support_tables Migrating: 2016_06_16_000001_create_users_table Migrated: 2016_06_16_000001_create_users_table Migrating: 2016_06_16_000002_create_main_tables Migrated: 2016_06_16_000002_create_main_tables Migrating: 2016_08_25_091522_changes_for_3101 Migrated: 2016_08_25_091522_changes_for_3101 Migrating: 2016_09_12_121359_fix_nullables Migrated: 2016_09_12_121359_fix_nullables Migrating: 2016_10_09_150037_expand_transactions_table Migrated: 2016_10_09_150037_expand_transactions_table Migrating: 2016_10_22_075804_changes_for_v410 Migrated: 2016_10_22_075804_changes_for_v410 Migrating: 2016_11_24_210552_changes_for_v420 Migrated: 2016_11_24_210552_changes_for_v420 Migrating: 2016_12_22_150431_changes_for_v430 Migrated: 2016_12_22_150431_changes_for_v430 Migrating: 2016_12_28_203205_changes_for_v431 Migrated: 2016_12_28_203205_changes_for_v431 Migrating: 2017_04_13_163623_changes_for_v440 Migrated: 2017_04_13_163623_changes_for_v440 Migrating: 2017_06_02_105232_changes_for_v450 Migrated: 2017_06_02_105232_changes_for_v450 Migrating: 2017_08_20_062014_changes_for_v470 Migrated: 2017_08_20_062014_changes_for_v470 Migrating: 2017_11_04_170844_changes_for_v470a Migrated: 2017_11_04_170844_changes_for_v470a Migrating: 2018_01_01_000001_create_oauth_auth_codes_table Migrated: 2018_01_01_000001_create_oauth_auth_codes_table Migrating: 2018_01_01_000002_create_oauth_access_tokens_table Migrated: 2018_01_01_000002_create_oauth_access_tokens_table Migrating: 2018_01_01_000003_create_oauth_refresh_tokens_table Migrated: 2018_01_01_000003_create_oauth_refresh_tokens_table Migrating: 2018_01_01_000004_create_oauth_clients_table Migrated: 2018_01_01_000004_create_oauth_clients_table Migrating: 2018_01_01_000005_create_oauth_personal_access_clients_table Migrated: 2018_01_01_000005_create_oauth_personal_access_clients_table Migrating: 2018_03_19_141348_changes_for_v472 Migrated: 2018_03_19_141348_changes_for_v472 Migrating: 2018_04_07_210913_changes_for_v473 Migrated: 2018_04_07_210913_changes_for_v473 Migrating: 2018_04_29_174524_changes_for_v474 Migrated: 2018_04_29_174524_changes_for_v474 Migrating: 2018_06_08_200526_changes_for_v475 Migrated: 2018_06_08_200526_changes_for_v475 Seeding: AccountTypeSeeder Seeding: TransactionCurrencySeeder Seeding: TransactionTypeSeeder Seeding: PermissionSeeder Seeding: LinkTypeSeeder Seeding: ConfigSeeder
and then this run
/media/www/firefly-iii# php artisan passport:install Encryption keys generated successfully. Personal access client created successfully. Client ID: 1 Client Secret: .......... Password grant client created successfully. Client ID: 2 Client Secret: ........
Continue to follow instructions
Update Postfix
Update Aliases
Change ownership of directory firefly-iii to www-data for NGINX and PHP
From this point I changed direction and decided to use the NGINX plug in for OMV and add a sock for Firefly.
And the could never get to work. The tried to address a php7.2 error and ended up by mistake deleting OMV again!
So started again. I am deciding to run this only with supported packages. i.e. I’ll wait for PHP 7+ on Debian.
So basically did the steps above again. Created a new sock.
The NGINX configuration was a bit tricky but this worked in the end.
location /firefly { root /path to install/firefly-iii; index index.php; try_files $uri $uri/ /firefly/index.php?$query_string; autoindex on; sendfile off; location ~ \.php$ { include fastcgi.conf; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_pass unix:/var/run/sockname.sock; } location = /firefly/favicon.ico { access_log off; log_not_found off; } location = /firefly/robots.txt { allow all; access_log off; log_not_found off; } location ~ /firefly/\. { deny all; } location ~* /firefly/(?:config)/.*\.php$ { deny all; } location ~* /firefly/\.(js|css|png|jpg|jpeg|gif|ico)$ { expires max; log_not_found off; } }