In order to run the Firefly III Data Importer (FIDI) you need a working LAMP, LEMP or WAMP running PHP 8.2 and access to the command line. Here are some Google queries to help you.
Also remember these Gists, which may help in case you run into issues:
- Firefly-III CSV-Importer Ubuntu 20.04 Proxmox Installation Guide. Remember to change 'CSV' to 'data' where necessary.
FIDI will not work properly when installed or accessed through a subdirectory on your web server. If you run FIDI from
/importer or a similar subdirectory your milage may vary and I can't support you.
Preparing your server
Install the following PHP modules:
- PHP BCMath Arbitrary Precision Mathematics
- PHP JSON
You need to install composer or download composer.
If you're having trouble with (parts of) this step, please check out the FAQ or open an issue on GitHub.
/var/www. Enter the following command.
composer create-project firefly-iii/data-importer --no-dev --prefer-dist data-importer 1.0.2
If this gives an error because of access rights, prepend the command with
sudo. Then fix the access rights:
sudo chown -R www-data:www-data data-importer sudo chmod -R 775 data-importer/storage
In general, these access rights aren't terrible important for FIDI, as long as your web server can read all the files.
data-importer directory you will find a
.env file. There are instructions what to do in this file. If you can't find this file, copy
.env and voila!
You can access FIDI at http://localhost/. If this URL is taken by Firefly III already, make sure your server configuration accepts both. This is called a "virtual host".
A virtual host would entail setting up two (sub)domains like
Browsing to site
Browsing to the site should be easy. You should see the following screen.
If this is not the case, or something is broken, be sure to open an issue on GitHub or check out the FAQ.
To run FIDI behind a reverse proxy, make sure you set the
TRUSTED_PROXIES environment variable to either
* or the IP address of your reverse proxy.
To enable TLS in FIDI, your reverse proxy must send the right information to FIDI. Here is some code for nginx:
proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; client_max_body_size 64M; proxy_read_timeout 300s;