====== Firefly III ====== "Firefly III" ist ein (selbstgehosteter) Manager für Ihre persönlichen Finanzen. Er hilft Ihnen, den Überblick über Ihre Ausgaben und Einnahmen zu behalten, so dass Sie weniger ausgeben und mehr sparen können. Firefly III unterstützt die Verwendung von Budgets, Kategorien und Tags. Mit einer Reihe von externen Tools können Sie Daten importieren. Außerdem stehen Ihnen viele übersichtliche Finanzberichte zur Verfügung. Firefly III soll Ihnen **Einblick** in und **Kontrolle** über Ihre Finanzen geben. Geld sollte nützlich sein, nicht beängstigend. Sie sollten in der Lage sein, zu sehen, wohin es fließt, Ihre Ausgaben zu spüren und zu... wow, ich übertreibe, nicht wahr? Aber Sie verstehen schon: Es ist Ihr Geld. Das sind Ihre Ausgaben. Halten Sie sie davon ab, Sie zu kontrollieren. Ich habe dieses Tool entwickelt, weil ich anfing, Geld zu hassen. Geld zu haben, kein Geld zu haben, Rechnungen mit Geld zu bezahlen - Sie verstehen, was ich meine. Aber jetzt nicht mehr. Ich möchte mich "sicher" fühlen, egal wie hoch mein Kontostand ist. Und ich hoffe, dieses Tool kann Ihnen helfen. Ich weiß, dass es mir hilft. Zweck Firefly III auf dem iPad Persönliches Finanzmanagement ist ziemlich schwierig, und jeder hat seinen eigenen Ansatz dazu. Manche Leute machen Budgets, andere begrenzen ihren Geldfluss, indem sie ihre Kreditkarten wegwerfen, wieder andere versuchen, ihren aktuellen Geldfluss zu erhöhen. Es gibt unzählige Möglichkeiten, Geld zu sparen und zu verdienen. Firefly III basiert auf dem Prinzip, dass Sie, wenn Sie wissen, wohin Ihr Geld fließt, verhindern können, dass es dorthin fließt. Indem Sie Ihre Ausgaben und Einnahmen im Auge behalten, können Sie Ihr Budget entsprechend planen und Geld sparen. Hören Sie auf, von Gehaltsscheck zu Gehaltsscheck zu leben, sondern geben Sie sich den finanziellen Spielraum, den Sie brauchen. Mehr über den Zweck von Firefly III erfahren Sie in der [[https://docs.firefly-iii.org/|documentation]]. [[https://github.com/firefly-iii/firefly-iii|Github]] [[https://www.firefly-iii.org/|Website]] Siehe auch [[https://techsaviours.org/news/de/blog/your-own-open-source-finance-tool-firefly-iii|unsere News]], die einige Erklärungen und Screenshots enthält. Die Installation dort ist Docker-basiert, du diesen Weg bevorzugst. ===== Packete ===== pacman -S composer php-sodium ===== PHP konfiguration ===== See also [[/de/server/services/php|php installation]] nano /etc/php/php.ini 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 ==== Siehe [[https://version.firefly-iii.org/|neueste Versions]] Nummer und ändere den Befehl wie folgt: cd /srv/http composer create-project grumpydictator/firefly-iii --no-dev --prefer-dist firefly-iii 5.7.18 chown -R http: firefly-iii/ chmod -R 775 firefly-iii/storage ==== Konfiguriere .env ==== Siehe auch dazu [[/de/server/services/redis|redis]] und erstelle einen [[/de/server/services/mariadb#lokalen_benutzer_anlegen|user]] und [[/de/server/services/mariadb#datenbank_erstellen|database]]. Hier werden nur die wichtigsten aufgeführt. Änder den Rest nach deinen Bedürfnissen: nano .env TRUSTED_PROXIES=** DB_CONNECTION=mysql DB_DATABASE=firefly DB_USERNAME=firefly DB_PASSWORD=PASSWORD DB_SOCKET=/run/mysqld/mysqld.sock CACHE_DRIVER=redis SESSION_DRIVER=redis REDIS_SCHEME=unix REDIS_PATH=/run/redis/redis.sock # Leave it empty REDIS_HOST= REDIS_PORT= REDIS_PASSWORD=yourPASSWORD REDIS_DB="0" REDIS_CACHE_DB="1" APP_URL=https:/firefly.home ==== Upgrade ==== Erstelle das Update-Skript in ''/srv/http'': nano update_firefly.sh #!/bin/bash # Modify next line to where your firefly-iii instance is installed to. cd /srv/http # Remove old version of firefly-iii rm -r firefly-iii-old # Get latest version of firefly latestversion=$(curl -s https://api.github.com/repos/firefly-iii/firefly-iii/releases/latest | grep -oP '"tag_name": "\K(.*)(?=")') # Install latest version yes | composer create-project grumpydictator/firefly-iii --no-dev --prefer-dist firefly-iii-updated $latestversion cp firefly-iii/.env firefly-iii-updated/.env cp firefly-iii/storage/upload/* firefly-iii-updated/storage/upload/ cp firefly-iii/storage/export/* firefly-iii-updated/storage/export/ cd firefly-iii-updated rm -rf bootstrap/cache/* php artisan cache:clear php artisan migrate --seed php artisan firefly-iii:upgrade-database php artisan passport:install 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/storage sleep 10 systemctl restart nginx.service chmod u+x update_firefly.sh ./update_firefly.sh ===== Data importer ===== Dieser Datenimporteur ist ein Universalimporteur, d.h. er kann aus allen erdenklichen Quellen importieren. Und wenn er das nicht kann, dann schreiben Sie mir eine Nachricht und lassen Sie mich Ihre Lieblingsdatenquelle hinzufügen. Der Datenimport unterstützt eine Vielzahl von Quellen: * Sie können **CSV-Dateien** aus jeder beliebigen Quelle importieren: Ihrer Bank, YNAB, Tiller oder jeder anderen Quelle für Finanzdaten. * Sie können direkt von Ihrer Bank über eine sichere Verbindung importieren. Da es für einen armen Open-Source-Entwickler wie mich sehr schwierig ist, maßgeschneiderte sichere Verbindungen zu jeder einzelnen Bank aufzubauen, habe ich die Hilfe von zwei Unternehmen in Anspruch genommen, die dieses Rätsel bereits gelöst haben. Sie können nicht genug Anerkennung bekommen: * Salt Edge ist eine Fintech-Lösung, deren Spectre-API über 5000 Banken unterstützt. * Nordigen ist eine Fintech-Lösung, deren API über 2100 Banken unterstützt. Wenn diese Institute Ihr Finanzinstitut nicht unterstützen, können Sie sicher sein, dass Sie trotzdem CSV-Dateien importieren können. Andere Formate sind noch in Planung. Das sollte Ihre Bedürfnisse abdecken. ==== Installation ==== Siehe [[https://version.firefly-iii.org/|neueste Versions]] Nummer und ändere den Befehl wie folgt: cd /srv/http composer create-project firefly-iii/data-importer --no-dev --prefer-dist firefly-iii-data-importer 0.9.17 chown -R http: firefly-iii-data-importer/ chmod -R 775 firefly-iii-data-importer/storage === Erstelle einen access token === Gehe zu deinem https://firefly.home/profile und erstelle ein neuen Access Token und nenne es `Importer` oder wie immer du willst. ==== Konfiguriere .env ==== Siehe auch dazu [[/de/server/services/redis|redis]]. Hier werden nur die wichtigsten aufgeführt. Änder den Rest nach deinen Bedürfnissen: nano .env FIREFLY_III_URL=https://firefly.home FIREFLY_III_ACCESS_TOKE=yourTOKEN TRUSTED_PROXIES=** REDIS_SCHEME=unix REDIS_PATH=/run/redis/redis.sock # Leave it empty REDIS_HOST= REDIS_PORT= REDIS_PASSWORD=yourPASSWORD REDIS_DB="0" REDIS_CACHE_DB="1" APP_URL=https://firefly-import.home ==== Upgrade ==== Erstelle das Update-Skript in ''/srv/http'': nano update_firefly-importer.sh #!/bin/bash # Modify next line to where your firefly-iii instance is installed to. cd /srv/http # Remove old version of firefly-iii rm -r firefly-iii-data-importer-old # Get latest version of firefly latestversion=$(curl -s https://api.github.com/repos/firefly-iii/data-importer/releases/latest | grep -oP '"tag_name": "\K(.*)(?=")') # Install latest version yes | composer create-project firefly-iii/data-importer --no-dev --prefer-dist firefly-iii-data-importer-updated $latestversion cp firefly-iii-data-importer/.env firefly-iii-data-importer-updated/.env cp firefly-iii-data-importer/storage/configurations/*.json firefly-iii-data-importer-updated/storage/configurations/ # 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/storage sleep 10 systemctl restart nginx.service chmod u+x update_firefly-importer.sh ./update_firefly-importer.sh ===== Nginx ===== Siehe auch [[/de/server/services/nginx]] und [[/de/server/services/ssl|ssl]]. ==== Firefly ==== nano /etc/nginx/sites-available/firefly.home server { listen 80; server_name firefly.home; rewrite ^ https://$host$request_uri? permanent; } server { listen 443 ssl http2; server_name firefly.home; ssl_certificate /etc/nginx/ssl/firefly.home.crt; ssl_certificate_key /etc/nginx/ssl/firefly.home.key; include conf.d/ssl-params.conf; root /srv/http/firefly-iii/public; index index.html index.htm index.php; location / { try_files $uri /index.php$is_args$args; autoindex on; sendfile off; } location ~ \.php$ { fastcgi_pass unix:/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_read_timeout 240; # fastcgi_param SCRIPT_FILENAME /srv/http/firefly-iii/public/index.php; include fastcgi_params; fastcgi_split_path_info ^(.+.php)(/.+)$; fastcgi_param modHeadersAvailable true; fastcgi_param SCRIPT_FILENAME $request_filename; } access_log /var/log/nginx/firefly-access.log; error_log /var/log/nginx/firefly_error.log; } ==== Importer ==== nano /etc/nginx/sites-available/firefly-importer.home server { listen 80; server_name firefly-importer.home; rewrite ^ https://$host$request_uri? permanent; } server { listen 443 ssl http2; server_name firefly-importer.home; ssl_certificate /etc/nginx/ssl/firefly-importer.home.crt; ssl_certificate_key /etc/nginx/ssl/firefly-importer.home.key; include conf.d/ssl-params.conf; root /srv/http/firefly-iii-data-importer/public; index index.html index.htm index.php; location / { try_files $uri /index.php$is_args$args; autoindex on; sendfile off; } location ~ \.php$ { fastcgi_pass unix:/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_read_timeout 240; # fastcgi_param SCRIPT_FILENAME /srv/http/firefly-iii-data-importer/public/index.php; 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 /var/log/nginx/firefly-importer-access.log; error_log /var/log/nginx/firefly-importer_error.log; } ===== Conjob ===== # Firefly III 0 3 * * * /usr/bin/php /srv/http/firefly-iii/artisan firefly-iii:cron