Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
en:extras:firefly3 [2023/01/06 20:01] – removed - external edit (Unknown date) 127.0.0.1 | en:extras:firefly3 [2023/03/04 19:45] (current) – [Installing Firefly III] changed header to match with data importer dan | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Firefly III ====== | ||
+ | |||
+ | " | ||
+ | |||
+ | Firefly III should give you **insight** into and **control** over your finances. Money should be useful, not scary. You should be able to see where it is going, to feel your expenses and to... wow, I'm going overboard with this aren't I? | ||
+ | |||
+ | But you get the idea: this is your money. These are your expenses. Stop them from controlling you. I built this tool because I started to dislike money. Having money, not having money, paying bills with money, you get the idea. But no more. I want to feel " | ||
+ | Purpose | ||
+ | |||
+ | Firefly III on iPad | ||
+ | |||
+ | Personal financial management is pretty difficult, and everybody has their own approach to it. Some people make budgets, other people limit their cashflow by throwing away their credit cards, others try to increase their current cashflow. There are tons of ways to save and earn money. Firefly III works on the principle that if you know where your money is going, you can stop it from going there. | ||
+ | |||
+ | By keeping track of your expenses and your income you can budget accordingly and save money. Stop living from paycheck to paycheck but give yourself the financial wiggle room you need. | ||
+ | |||
+ | You can read more about the purpose of Firefly III in the [[https:// | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | |||
+ | Check also [[https:// | ||
+ | |||
+ | |||
+ | ===== Packages ===== | ||
+ | |||
+ | < | ||
+ | pacman -S composer php-sodium | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== PHP configuration ===== | ||
+ | |||
+ | See also [[/ | ||
+ | |||
+ | < | ||
+ | nano / | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | extension=bcmath | ||
+ | extension=curl | ||
+ | extension=gd | ||
+ | extension=iconv | ||
+ | extension=intl | ||
+ | extension=pdo_mysql | ||
+ | extension=sodium | ||
+ | extension=zip | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | systemctl restart php-fpm.service | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Firefly III ===== | ||
+ | |||
+ | |||
+ | ==== Installation ==== | ||
+ | |||
+ | Check [[https:// | ||
+ | |||
+ | < | ||
+ | cd /srv/http | ||
+ | composer create-project grumpydictator/ | ||
+ | chown -R http: firefly-iii/ | ||
+ | chmod -R 775 firefly-iii/ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Configure .env ==== | ||
+ | |||
+ | Check also [[/ | ||
+ | |||
+ | Just the important ones will be listed here. Change the rest to your needs: | ||
+ | |||
+ | < | ||
+ | nano .env | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | TRUSTED_PROXIES=** | ||
+ | DB_CONNECTION=mysql | ||
+ | DB_DATABASE=firefly | ||
+ | DB_USERNAME=firefly | ||
+ | DB_PASSWORD=PASSWORD | ||
+ | DB_SOCKET=/ | ||
+ | CACHE_DRIVER=redis | ||
+ | SESSION_DRIVER=redis | ||
+ | REDIS_SCHEME=unix | ||
+ | REDIS_PATH=/ | ||
+ | # Leave it empty | ||
+ | REDIS_HOST= | ||
+ | REDIS_PORT= | ||
+ | REDIS_PASSWORD=yourPASSWORD | ||
+ | REDIS_DB=" | ||
+ | REDIS_CACHE_DB=" | ||
+ | APP_URL=https:/ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Upgrade ==== | ||
+ | |||
+ | Create the update script in ''/ | ||
+ | |||
+ | < | ||
+ | nano update_firefly.sh | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | #!/bin/bash | ||
+ | |||
+ | # Modify next line to where your firefly-iii instance is installed to. | ||
+ | cd / | ||
+ | |||
+ | # Remove old version of firefly-iii | ||
+ | rm -r firefly-iii-old | ||
+ | |||
+ | # Get latest version of firefly | ||
+ | latestversion=$(curl -s https:// | ||
+ | |||
+ | # Install latest version | ||
+ | yes | composer create-project grumpydictator/ | ||
+ | cp firefly-iii/ | ||
+ | cp firefly-iii/ | ||
+ | cp firefly-iii/ | ||
+ | cd firefly-iii-updated | ||
+ | rm -rf bootstrap/ | ||
+ | php artisan cache:clear | ||
+ | php artisan migrate --seed | ||
+ | php artisan firefly-iii: | ||
+ | php artisan passport: | ||
+ | php artisan cache:clear | ||
+ | |||
+ | # Serve next version, make sure rights are ok, restart nginx | ||
+ | cd .. | ||
+ | mv firefly-iii firefly-iii-old | ||
+ | mv firefly-iii-updated firefly-iii | ||
+ | sleep 10 | ||
+ | cd firefly-iii | ||
+ | php artisan cache:clear | ||
+ | sleep 10 | ||
+ | cd .. | ||
+ | chown -R http: firefly-iii | ||
+ | sleep 10 | ||
+ | chmod -R 775 firefly-iii/ | ||
+ | sleep 10 | ||
+ | systemctl restart nginx.service | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | chmod u+x update_firefly.sh | ||
+ | ./ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Data importer ===== | ||
+ | |||
+ | This data importer is a universal importer, which means it can import from any sources you can think of. And if it can't, well then drop me a line and make me add your favorite data source. | ||
+ | |||
+ | The data import supports a variety of sources: | ||
+ | |||
+ | * You can import **CSV files** from any source: your bank, YNAB, Tiller or any other source of financial data. | ||
+ | * You can import from your bank directly using a secure connection. | ||
+ | |||
+ | Because it is very difficult for a poor open source developer like me to build custom-made secure connections to every single bank out there, I've called in the help from two companies that already solved that enigma. They cannot get enough credit: | ||
+ | |||
+ | * Salt Edge is a fintech solution whose Spectre API supports over 5000 banks. | ||
+ | * Nordigen is a fintech solution whose API supports over 2100 banks. | ||
+ | |||
+ | If those institutes do not support your financial institution, | ||
+ | |||
+ | |||
+ | ==== Installation ==== | ||
+ | |||
+ | Check [[https:// | ||
+ | |||
+ | < | ||
+ | cd /srv/http | ||
+ | composer create-project firefly-iii/ | ||
+ | chown -R http: firefly-iii-data-importer/ | ||
+ | chmod -R 775 firefly-iii-data-importer/ | ||
+ | </ | ||
+ | |||
+ | |||
+ | === Create access token === | ||
+ | |||
+ | Go to your https:// | ||
+ | |||
+ | |||
+ | ==== Configure .env ==== | ||
+ | |||
+ | Check also [[/ | ||
+ | |||
+ | Just the important ones will be listed here. Change the rest to your needs: | ||
+ | |||
+ | < | ||
+ | nano .env | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | FIREFLY_III_URL=https:// | ||
+ | FIREFLY_III_ACCESS_TOKE=yourTOKEN | ||
+ | TRUSTED_PROXIES=** | ||
+ | REDIS_SCHEME=unix | ||
+ | REDIS_PATH=/ | ||
+ | # Leave it empty | ||
+ | REDIS_HOST= | ||
+ | REDIS_PORT= | ||
+ | REDIS_PASSWORD=yourPASSWORD | ||
+ | REDIS_DB=" | ||
+ | REDIS_CACHE_DB=" | ||
+ | APP_URL=https:// | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Upgrade ==== | ||
+ | |||
+ | Create the update script in ''/ | ||
+ | |||
+ | < | ||
+ | nano update_firefly-importer.sh | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | #!/bin/bash | ||
+ | |||
+ | # Modify next line to where your firefly-iii instance is installed to. | ||
+ | cd / | ||
+ | |||
+ | # Remove old version of firefly-iii | ||
+ | rm -r firefly-iii-data-importer-old | ||
+ | |||
+ | # Get latest version of firefly | ||
+ | latestversion=$(curl -s https:// | ||
+ | |||
+ | # Install latest version | ||
+ | yes | composer create-project firefly-iii/ | ||
+ | cp firefly-iii-data-importer/ | ||
+ | cp firefly-iii-data-importer/ | ||
+ | |||
+ | # Serve next version, make sure rights are ok, restart nginx | ||
+ | mv firefly-iii-data-importer firefly-iii-data-importer-old | ||
+ | mv firefly-iii-data-importer-updated firefly-iii-data-importer | ||
+ | sleep 10 | ||
+ | chown -R http: firefly-iii-data-importer/ | ||
+ | sleep 10 | ||
+ | chmod -R 775 firefly-iii-data-importer/ | ||
+ | sleep 10 | ||
+ | systemctl restart nginx.service | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | chmod u+x update_firefly-importer.sh | ||
+ | ./ | ||
+ | </ | ||
+ | ===== Nginx ===== | ||
+ | |||
+ | Check also [[/ | ||
+ | |||
+ | |||
+ | ==== Firefly ==== | ||
+ | |||
+ | < | ||
+ | nano / | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | server { | ||
+ | listen 80; | ||
+ | server_name firefly.home; | ||
+ | |||
+ | rewrite ^ https:// | ||
+ | } | ||
+ | server { | ||
+ | |||
+ | listen 443 ssl http2; | ||
+ | server_name firefly.home; | ||
+ | |||
+ | ssl_certificate / | ||
+ | ssl_certificate_key / | ||
+ | include conf.d/ | ||
+ | |||
+ | root / | ||
+ | index index.html index.htm index.php; | ||
+ | |||
+ | location / { | ||
+ | try_files $uri / | ||
+ | autoindex on; | ||
+ | sendfile off; | ||
+ | } | ||
+ | |||
+ | location ~ \.php$ { | ||
+ | fastcgi_pass unix:/ | ||
+ | fastcgi_index index.php; | ||
+ | fastcgi_read_timeout 240; | ||
+ | # | ||
+ | include fastcgi_params; | ||
+ | fastcgi_split_path_info ^(.+.php)(/ | ||
+ | fastcgi_param modHeadersAvailable true; | ||
+ | fastcgi_param SCRIPT_FILENAME $request_filename; | ||
+ | } | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== Importer ==== | ||
+ | |||
+ | < | ||
+ | nano / | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | server { | ||
+ | listen 80; | ||
+ | server_name firefly-importer.home; | ||
+ | |||
+ | rewrite ^ https:// | ||
+ | } | ||
+ | server { | ||
+ | listen 443 ssl http2; | ||
+ | server_name firefly-importer.home; | ||
+ | |||
+ | ssl_certificate / | ||
+ | ssl_certificate_key / | ||
+ | include conf.d/ | ||
+ | |||
+ | root / | ||
+ | index index.html index.htm index.php; | ||
+ | |||
+ | location / { | ||
+ | try_files $uri / | ||
+ | autoindex on; | ||
+ | sendfile off; | ||
+ | } | ||
+ | |||
+ | location ~ \.php$ { | ||
+ | fastcgi_pass unix:/ | ||
+ | fastcgi_index index.php; | ||
+ | fastcgi_read_timeout 240; | ||
+ | # fastcgi_param SCRIPT_FILENAME / | ||
+ | include fastcgi_params; | ||
+ | fastcgi_split_path_info ^(.+.php)(/ | ||
+ | fastcgi_param modHeadersAvailable true; | ||
+ | fastcgi_param SCRIPT_FILENAME $request_filename; | ||
+ | |||
+ | client_max_body_size 64M; | ||
+ | fastcgi_buffer_size 128k; | ||
+ | fastcgi_buffers 4 256k; | ||
+ | fastcgi_busy_buffers_size 256k; | ||
+ | } | ||
+ | |||
+ | access_log / | ||
+ | error_log / | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Conjob ===== | ||
+ | |||
+ | < | ||
+ | # Firefly III | ||
+ | 0 3 * * * / | ||
+ | </ |