Lucciola III – Responsabile delle finanze personali

Suppongo che forse molti di voi lo conosceranno, Firefly III è un servizio che possiamo utilizzare per gestire le nostre finanze. Un manager che ci aiuterà a capire i nostri conti bancari, Saremo in grado di capire facilmente dove vanno a finire i nostri soldi, Naturalmente open source e on-premise!

Bene, Bene, questo è tutto, Se hai bisogno di avere maggiore visibilità sui tuoi conti bancari, o avere un maggiore monitoraggio delle entrate e delle uscite, FireFly III aiuta in questo senso da anni. Lo avremo installato in meno di 5 minuti grazie a Docker!

Esistono diversi modi per installare Firely III (e per configurarlo), in base a ciò di cui abbiamo bisogno; in questo caso installeremo Firefly III in un container Docker, Prima di procedere, scarichiamo i file di cui avremo bisogno e li adattiamo alle nostre esigenze:

wget https://raw.githubusercontent.com/firefly-iii/docker/main/docker-compose-importer.yml -O docker-compose.yml wget https://raw.githubusercontent.com/firefly-iii/firefly-iii/main/.env.example -O .env wget https://raw.githubusercontent.com/firefly-iii/docker/main/database.env -O .db.env wget https://raw.githubusercontent.com/firefly-iii/data-importer/main/.env.example -O .importer.env

Modifichiamo il file '.env’ e almeno modificheremo il APP_KEY, Accesso al database MySQL Locali e credenziali, poiché questo file avrà la maggior parte della configurazione, la parte di posta se vogliamo le notifiche…

APP_KEY=secretrode32characters DEFAULT_LANGUAGE=es_ES TZ=Europa/Madrid
...
DB_USERNAME=USUARIO_BD DB_PASSWORD=CONTRASEÑA_USUARIO_BD
...

Modifichiamo il file '.db.env’ e modificare almeno le credenziali di accesso al DB (lo stesso del passaggio precedente):

MYSQL_USER=USUARIO_BD MYSQL_PASSWORD=CONTRASEÑA_USUARIO_BD

Ultimo, se siamo interessati ad avere il contenitore per importare i dati su Firefly modifichiamo '.importer.env’ (E se non lo è, Ignoriamo questo). E indicheremo l'indirizzo IP o FQDN del server Firefly III, così come sceglieremo il modo per autenticarci, solitamente con il token di accesso (Più avanti vedremo come generarlo):

FIREFLY_III_URL=http://IP_O_FQDN_FIREFLY_III FIREFLY_III_ACCESS_TOKEN=ey...
TZ=Europa/Madrid

E abbiamo finito per modificare il 'docker-compose.yml’ se siamo interessati ad apportare modifiche, Nel mio caso ho aperto solo le porte, 80tcp per FireFly III, 81tcp per l'importatore e, naturalmente, il 3306 Lo lascio aperto per consultare MySQL dall'esterno, ad esempio da Grafana, Soggiornare:

Servizi:
...
  App:
...
    Porte:
      - '80:8080'
...
...
  Db:
...
    Porte:
      - '3306:3306'
...
...
  Importatore:
...
    Porte:
      - '81:8080'
...

E, Concludiamo sollevando i container:

docker compose -f docker-compose.yml up -d --pull=sempre

Ora saremo in grado di accedere al sito web di Firefly iii, in questo caso pubblicato sulla porta 80tcp dell'IP host Docker, Quindi HTTP://DIRECCION_IP_O_FQDN e la prima volta che accediamo dobbiamo creare un account, Forniamo il nostro indirizzo e-mail e una password & “Registro”,

Appena entrati, dovremo registrare la nostra prima banca, e possiamo iniziare a dare un'occhiata all'applicazione, ma senza dati è un po' povero… Quindi la prossima cosa sarà importare i dati dalla nostra banca!

Innanzitutto, dobbiamo decidere il tipo di autenticazione che utilizzeremo nel contenitore 'Firefly III Data Impor Tool', la cosa più semplice è generare un token di accesso personale da Firefly III e indicarlo nel '.importer.env’

Se rigeneriamo i contenitori e ci colleghiamo al sito web del 'Firefly III Data Impor Tool'’ (Nel mio caso sulla porta 81tp) Saremo in grado di avviare il processo di importazione, Clicca su “Importa file”,

In 'File importabile'’ lasceremo il file CSV che avremo scaricato dalla nostra banca, con tutto lo storico che ci interessa dei movimenti. Il file di configurazione opzionale che ci chiede, per ora non lo avremo, Ma una volta terminata questa procedura guidata, saremo in grado di generarlo, un file JSON che verrà alimentato con le opzioni che andremo a scegliere di seguito, “Prossimo”,

Indichiamo se il file CSV ha intestazioni, se vogliamo convertirlo in UTF-8, cos'è il delimitatore CSV, In quale banca lo importeremo da FireFly III, Formato data… “Invia”,

A seconda delle opzioni scelte sopra, ci mostrerà il contenuto del nostro file e separerà le colonne… Possiamo ignorare le colonne che non ci interessa importare (Certo), e associa il ruolo di ogni colonna, almeno importeremo i campi 'Data transazione', «Descrizione’ e 'Importo'. “Invia”,

Prima di iniziare, possiamo cliccare su “Scarica il file di configurazione” in modo da non dover fare questa procedura guidata e ricordare il formato che ha, o per automatizzare questa importazione in futuro. Clicca su “Avvia processo” Inizia con,

Vediamo quanto sono importanti i movimenti CSV… Speranza…

Una volta finito ce lo dirà, Perfetto!

Stiamo iniziando ad avere dati! Ole e ole Rigodón! Ora saremo in grado di vedere qualsiasi rapporto in modo più dettagliato, and so on…

Quanto segue, può essere quello di configurare le Categorie, Per sapere dove vanno a finire i nostri soldi! in modo che categorizzi ogni movimento e dica se si tratta di un mutuo, Spesa al supermercato, benzina, da Amazon…

Poiché “Automazione” > “Norme” possiamo crearli, L'installazione è semplice, Gli diamo un nome e quando vogliamo che venga attivato, quando rileva una parola nella descrizione, Per esempio…

E qui vi lascio con Firefly III, Poche curve molto semplici; Poi i formaggini, I report sono più eleganti, Capiamo dove sta andando il nostro budget in modo più dettagliato. Questi screenshot che vedi sopra provengono da un'app open source che possiamo installare sui nostri cellulari (chiamato Waterfly III) che si collega a FireFly III ed è forse più comodo…

E… Aspetta, non abbiamo finito! Ti ricordi che nel contenitore del database MySQL abbiamo lasciato aperto il 3306tcp? Bene, con le credenziali di accesso possiamo connetterci e fare query, come ci interessa e vederlo in un modo bellissimo e da gustare da Grafana, Per categorie, o semplicemente i movimenti… ma non solo per vederlo da Grafana, ma con quanto sono geek, Genero un PDF e queste informazioni mi arrivano in esso, tra le altre cose come dettagli interessanti di Home Assistant (statistica…)

A proposito, I numeri che vediamo, Sono falsi, a parte il fatto che sono coperti a metà in modo che non si conoscano le figure che gestisco, Non posso dirlo pubblicamente quanti milioni ho). Venire, al punto, chi ha bisogno delle query MySQL:

  • Grafico con totale:
SELECT tj.date come ora, "Totale" come metrico, SOMMA(t.importo) SOPRA (ORDINA PER: tj.date ASC) AS value
FROM transactions t INNER JOIN transaction_journals tj ON t.transaction_journal_id = tj.id
WHERE t.account_id = 'TU_ID_DEL_BANCO' ORDER BY tj.date ASC;

  • Grafico con movimenti:
SELECT tj.date come ora, t.importo come valore, tj.description as metric
FROM transactions t INNER JOIN transaction_journals tj ON t.transaction_journal_id = tj.id
WHERE t.account_id = 'TU ID DEL BANCO' ORDER BY tj.date ASC;

  • Tabella di movimento:
SELEZIONA t.amount, tj.descrizione, A sinistra(tj.date, 10) Ad oggi, SOMMA(t.importo) SOPRA (ORDINA PER: tj.date ASC) AS Total
FROM transactions t INNER JOIN transaction_journals tj ON t.transaction_journal_id = tj.id
WHERE t.account_id = 'TU ID DEL BANCO' ORDER BY date desc;

E spero di dimenticare la cosa più importante! Come possiamo automatizzare questo processo? Beh, se sei fortunato e la tua banca ti permette di connetterti in qualche modo,, tramite API, and so on… Non male, altrimenti, Esiste un servizio di terze parti (A pagamento ed esterni) che potrebbe aiutarti… Un altro modo è quello di scaricare manualmente i file settimanalmente e lasciarli sempre sullo stesso percorso, quindi uno script li importa (C'è un contenitore cron), o utilizzando uno strumento che registra i clic, Accedi alla banca e genera il report… Quest'ultima è una mia scelta personale. È davvero schifoso, Si dispone di una macchina virtuale isolata, Nessun accesso a Internet (nient'altro che i siti delle banche)… e ogni giorno viene eseguito un Tiny Task (Attento) che genera i report, come ogni banca appartiene al suo padre, alcuni sono generati in CSV, altri in XLS e altri in XLSX (tocca il tuo…) Quindi vi lascio alcuni consigli che ho in uno script che può aiutarvi:

#Converti da XLSX a CSV e usa il pulsante ; come separatore:
    xlsx2csv -d ';' fichero.xlsx fichero.csv

#Convierte de XLS a CSV sin perder el formato de las fechas:
    libreoffice --convert-to csv fichero.xls #Borra il primo 15 poema:
    sed -i '1,15d' fichero.csv

#Importa el csv que hay en la carpeta actual con el JSON de configuración, Entrambi i file hanno lo stesso nome:
    Sudo Docker Run --RM -V $PWD:/import -e FIREFLY_III_ACCESS_TOKEN=ey... -e IMPORT_DIR_ALLOWLIST=/import -e FIREFLY_III_URL=http://IP_FQDN_FIREFLY_III -e WEB_SERVER=falso fireflyiii/importatore di dati:ultimissimo

Con quest'ultimo comando importeremo il CSV nella Banca indicata nel JSON una meraviglia! Evitare movimenti duplicati, and so on… Le ultime novità (E questo è tutto per davvero), le query MySQL che abbiamo visto prima, possono tornare utili per integrarlo con Home Assistant, e che ci dice mentre facciamo colazione con i nostri altoparlanti il saldo che abbiamo nei conti, così come gli ultimi movimenti… Tessuto da marinaio!!!

Venire, Ora ti lascio in pace, Vi auguro tanto, che lavori poco e guadagni molto 😉 un abbraccio!

Post consigliati

Autore

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Non esitate a contattarmi, Cercherò di aiutarti ogni volta che potrò, Condividere è vivere ;) . Goditi i documenti!!!