
Firefly III è una potente applicazione open source per la gestione delle finanze personali e aziendali, pensata per offrire pieno controllo sulle proprie entrate, spese e bilanci.
Grazie alla sua interfaccia web intuitiva e alle numerose funzionalità come la categorizzazione automatica delle transazioni, i report dettagliati e il supporto a più valute è diventato uno degli strumenti più apprezzati dagli utenti che cercano un’alternativa self-hosted ai servizi finanziari online.
In questo articolo vedremo come installare e configurare Firefly III su un server Ubuntu 24.04, partendo da un’installazione pulita del sistema.
Ti guiderò passo dopo passo nella configurazione dell’ambiente, dell’applicazione e del database, fino ad arrivare al primo accesso all’interfaccia web di Firefly III.
PREREQUISITI
- Un’istanza Linux (consigliata: Ubuntu 24.04 LTS)
- Accesso root (o sudo)
- Nome di dominio (facoltativo ma consigliato)
- Web server Nginx
- PHP 8.3 o superiore con le estensioni richieste
- MySQL/MariaDB
INSTALLAZIONE DI NGINX – PHP 8.4 – MARIADB + MODULI VARI
Aggiornare i repository e i pacchetti di sistema sistema con i seguenti comandi:
|
0 1 2 |
sudo apt update sudo apt install -y software-properties-common ca-certificates curl gnupg2 |
Aggiungere il repository ufficiale del PHP con il comando:
|
0 1 2 |
sudo add-apt-repository -y ppa:ondrej/php sudo apt update |
Installare Nginx, PHP 8.4 + moduli, e MariaDB con il seguente comando:
|
0 1 2 |
sudo apt install -y nginx mariadb-server php8.4-fpm php8.4-cli php8.4-bcmath php8.4-intl php8.4-curl php8.4-zip php8.4-sodium php8.4-gd php8.4-xml php8.4-mbstring php8.4-mysql sudo systemctl enable --now nginx mariadb php8.4-fpm |
CREAZIONE DEL DATABASE MYSQL E DELL’UTENTE
Per creare un database per Firefly, eseguire le operazioni seguenti.
Accedere al MySQL Server con il comando:
|
0 |
sudo mysql -u root |
Quindi creare il database con il comando:
|
0 |
CREATE DATABASE firefly CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; |
Creare un utente MySQL per Firefly con il comando:
|
0 |
CREATE USER 'fireflyuser'@'localhost' IDENTIFIED BY 'PASSWORD'; |
NOTA BENE: Al posto di PASSWORD inserire la password desiderata
Concedere le autorizzazioni all’utente sul database Firefly creato in precedenza con il comando:
|
0 |
GRANT ALL PRIVILEGES ON firefly.* TO 'fireflyuser'@'localhost'; |
Svuotare i privilegi in modo che le modifiche abbiano effetto con il comando:
|
0 |
FLUSH PRIVILEGES; |
Uscire con il comando:
|
0 |
EXIT; |
DOWNLOAD DELL’ULTIMA VERSIONE DI FIRFEFLY III
Prendere l’ultima release DI FireFly III dal seguente link: Firefly III
ATTENZIONE: al momento della stesura del seguente articolo l’ultima versione stabile disponibile è la v6.4.2
Poisizionarsi nella cartella TMP con il comando:
|
0 |
cd /tmp |
Scaricare Firefly III con il seguente comando:
|
0 |
curl -fLO "https://github.com/firefly-iii/firefly-iii/releases/download/v6.4.2/FireflyIII-v6.4.2.tar.gz" |
Scaricare il file sha256 per la verifica dell’integrità del file con il comando:
|
0 |
curl -fLO "https://github.com/firefly-iii/firefly-iii/releases/download/v6.4.2/FireflyIII-v6.4.2.tar.gz.sha256" |
Verificare l’integrità del file con il seguente comando:
|
0 |
sha256sum -c FireflyIII-v6.4.2.tar.gz.sha256 |
Se è andato tutto a buon fine dovremmo visualizzare il seguente output:
|
0 |
FireflyIII-v6.4.2.tar.gz: OK |
Creare la cartella firefly-iii all’interno della www con il comando:
|
0 |
sudo mkdir -p /var/www/firefly-iii |
Estrarre il file .tar scaricato all’interno della cartella firefly-iii con il comando:
|
0 |
sudo tar -xvf "FireflyIII-v6.4.2.tar.gz" -C /var/www/firefly-iii |
Assegnare i permessi con il comando:
|
0 |
sudo chown -R www-data:www-data /var/www/firefly-iii |
CONFIGURAZIONE DEL FILE .ENV
Spostarsi nella cartella firefly-iii con il comando:
|
0 |
cd /var/www/firefly-iii |
Quindi fare la copia del file .env con il comando:
|
0 |
sudo -u www-data cp .env.example .env |
Impostare il DB e la localizzazione con i seguenti comandi:
|
0 1 2 3 4 5 |
sudo -u www-data sed -i 's|DB_CONNECTION=.*|DB_CONNECTION=mysql|' .env sudo -u www-data sed -i 's|DB_HOST=.*|DB_HOST=127.0.0.1|' .env sudo -u www-data sed -i 's|DB_DATABASE=.*|DB_DATABASE=firefly|' .env sudo -u www-data sed -i "s|DB_USERNAME=.*|DB_USERNAME=fireflyuser|" .env sudo -u www-data sed -i "s|DB_PASSWORD=.*|DB_PASSWORD=PASSWORD|" .env sudo -u www-data sed -i 's|TZ=.*|TZ=Europe/Rome|' .env |
Generare e stampare la chiave con il comando:
|
0 |
sudo -u www-data bash -lc 'php artisan key:generate --show' |
Dovremmo visualizzare un output simile al seguente:
base64:8X7NYzHr3XAUvms83623QTYLYgzd3+UGJn6DTJEHJpI=
Prendere l’output della chiave e inserirlo nel file .env come:
|
0 |
APP_KEY=... (32 caratteri) |
Poisizionarsi nella cartella /var/www/firefly-iii con il comando:
|
0 |
cd /var/www/firefly-iii |
Editare quindi il file .env con il comando:
|
0 |
sudo nano .env |
Cercare la variabile:
|
0 |
APP_KEY=SomeRandomStringOf32CharsExactly |
Quindi sostituirla con la chiave generata in precedenza:
|
0 |
APP_KEY=base64:8X7NYzHr3XAUvms83623QTYLYgzd3+UGJn6DTJEHJpI= |
Verificare quindi che tutti i seguenti parametri siano valorizzati con i dati corretti:
|
0 1 2 3 4 5 6 |
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=db_firefly DB_USERNAME=fireflyuser DB_PASSWORD=PASSWORD APP_URL=https://fireflyServer.test.lab |
ATTENZIONE: Ricordare che ci sono altri parametri nel file di ambiente e dovrai configurarli se vuoi utilizzare tutte le funzionalità offerte da Firefly.
Salvare e chiudere il file di configurazione
INIZIALIZZAZIONE DEL DATABASE DI FIREFLY
Inizializzare il database con i seguenti comandi in sequenza:
|
0 1 2 3 |
sudo -u www-data php artisan firefly-iii:upgrade-database sudo -u www-data php artisan firefly-iii:correct-database sudo -u www-data php artisan firefly-iii:report-integrity sudo -u www-data php artisan firefly-iii:laravel-passport-keys |
Se andato tutto a buon fine dovremmo visualizzare il seguente output (OPZIONALE):
CONFIGURAZIONE DEL VHOST IN NGINX
Editare il file di configurazione del sito /etc/nginx/sites-available/firefly-iii con il comando:
|
0 |
sudo nano /etc/nginx/sites-available/firefly-iii |
Incollare all’interno del file il segunte ouptut:
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
server { listen 80; server_name FQDN-SERVER-O-IP; root /var/www/firefly-iii/public; index index.php; location / { try_files $uri /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.4-fpm.sock; } location ~ /\. { deny all; } } |
NOTA BENE: Sostituire con FQDN-SERVER-O-IP il nome del server o l’indirizzo IP
Salvare e chiudere il file di configurazione
Abilitare e ricaricare Nginx con i seguenti comandi:
|
0 1 2 |
sudo ln -s /etc/nginx/sites-available/firefly-iii /etc/nginx/sites-enabled/firefly-iii sudo nginx -t && sudo systemctl reload nginx |
ACCESSO E CONFIGURAZIONE DA WEBGUI
A questo punto da un qualsiasi browser richiamare il link:
http://FQDN-SERVER-O-IP-ADDRESS
Inserire l’indirizzo mail quindi la password e cliccare Register
Inserire il Nome della Banca, il saldo e la lingua quindi cliccare Submit
A questo punto dovremmo vedere la pagina principale di FireFly III come mostrato nell’immagine sovrastante
FUNZIONALITA’ PRINCIPALI DI FIREFLY III
1. Gestione dei conti
Con Firefly III puoi creare e organizzare tutti i tuoi conti:
Conti di attività (banche, carte di credito, contanti)
Conti di entrata e uscita (per stipendi, spese, ecc.)
Conti di risparmio o investimento
Ogni conto può avere la sua valuta, saldo iniziale e storico delle transazioni, dandoti una panoramica completa del tuo patrimonio.
2. Registrazione delle transazioni
Registra facilmente entrate, uscite e trasferimenti tra conti.
Puoi aggiungere:
Data, descrizione e importo
Categoria e tag
Beneficiario o pagatore
Documenti o ricevute in allegato
In pochi clic ottieni una visione chiara di dove va (e da dove arriva) il tuo denaro.
️
3. Categorie e Tag
Organizza le transazioni in modo flessibile:
Categorie per tipo di spesa o guadagno
Tag per progetti o eventi specifici (es. #vacanze, #lavoro)
Questo ti permette di filtrare, analizzare e confrontare facilmente le tue abitudini finanziarie.
4. Budget e bilanci
Crea budget personalizzati per tenere sotto controllo le spese mensili o settimanali.
Firefly III ti mostra quanto hai già speso, quanto ti resta e ti avvisa se superi i limiti.
Perfetto per mantenere l’equilibrio finanziario e raggiungere i tuoi obiettivi di risparmio.
5. Obiettivi di risparmio
Imposta goal finanziari — come “Risparmiare 1000 €” o “Acquistare una nuova auto” — e segui i progressi nel tempo.
Ogni movimento viene tracciato automaticamente per mostrarti quanto sei vicino al traguardo.
6. Transazioni ricorrenti
Automatizza le spese e le entrate periodiche, come:
Stipendi mensili
Affitti, bollette e abbonamenti
⏰ Meno inserimenti manuali, più precisione nei tuoi bilanci.
7. Importazione e sincronizzazione
Firefly III semplifica l’importazione dei dati da:
File CSV, OFX, QIF, MT940
Banche online tramite Firefly III Data Importer
Altri gestionali o app di finanza
In pochi minuti puoi migrare tutto il tuo storico contabile, senza perdere nulla.
8. Report e analisi
Crea report dettagliati e grafici interattivi per visualizzare:
Spese per categoria o periodo
Andamento delle entrate
Evoluzione del patrimonio nel tempo
Perfetto per identificare trend e migliorare la pianificazione finanziaria.
9. Multi-valuta e localizzazione
Gestisci conti in diverse valute e Firefly III convertirà automaticamente gli importi.
Supporta anche formati locali (es. “1.000,00 €” per l’Italia), così i dati risultano sempre leggibili e coerenti.
10. Sicurezza e privacy
Essendo self-hosted, Firefly III garantisce il massimo controllo sui tuoi dati.
Include:
Autenticazione locale, LDAP o SSO
Supporto HTTPS
Permessi e ruoli utente
Nessuna dipendenza da server esterni: i tuoi dati restano solo tuoi.
11. Backup ed esportazione
Puoi esportare facilmente tutti i dati in CSV o JSON, oppure configurare backup automatici per dormire sonni tranquilli.
Il tuo storico finanziario sarà sempre al sicuro.
12. API REST e integrazioni
Firefly III include un’API REST completa, ideale per:
Integrare strumenti di analisi
Automatizzare importazioni
Creare dashboard personalizzate
In più, la community offre estensioni utili come:
Firefly III Data Importer
Firefly III Exporter
App mobili di terze parti
️13. Interfaccia moderna e intuitiva
L’interfaccia è pulita, reattiva e mobile-friendly.
Puoi consultare i tuoi conti, grafici e report anche da smartphone, con la stessa esperienza fluida del desktop.
14. Open Source e community attiva
Firefly III è completamente open source e sostenuto da una community vivace di utenti e sviluppatori.
Puoi personalizzarlo, contribuire al codice o semplicemente usarlo in piena libertà, senza costi né vincoli.
All’interno di questa pagina è possibile vedere:
- un grafico che mostra il saldo attuale dei conti attività. E’ possibile selezionare i conti visibili qui nelle tue preferenze
- panoramica della tua situazione finanziaria
- tutti i conti finora creati. Puoi utilizzare il conto contanti per tracciare le spese in contanti ma ovviamente non è obbligatorio
ABILITAZIONE CERTIFICATO SSL SU NGINX
Si consiglia di abilitare HTTPS utilizzando Let’s Encrypt e Certbot con i seguenti comandi:
|
0 1 |
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx |
DEBUG DEGLI ERRORI
Per ottenere un errore leggibile direttamente a schermo è possibile attivare il debug temporaneamente con il comando:
|
0 1 |
sed -i 's/^APP_DEBUG=false/APP_DEBUG=true/' .env || echo 'APP_DEBUG=true' >> .env php artisan config:clear |
Richiamare FireFli tramite browser
Dovremmo visualizzare la modalità debug che ci mostra esattamante il problema presente come mostrato nell’immagine sovrastante
⚠️ ATTENZIONE: Non lasciare APP_DEBUG=true in produzione!
Lasciare il debug attivo espone informazioni sensibili (configurazione, DB, ecc.) in caso di errore.
Dopo aver finito di fare il debug disattivare la modalità debug con il comando:
|
0 |
sed -i 's/^APP_DEBUG=true/APP_DEBUG=false/' .env |
Dopo ogni modifica al file .env, svuotare la cache di configurazione Laravel con il comando:
|
0 |
php artisan config:clear |
CONSIDERAZIONI FINALI
✅ Punti di forza
Open source e self-hosted: Il fatto che Firefly III sia software libero e che tu possa ospitarlo su un tuo server significa che hai il pieno controllo sui dati — nessuno “terzo” che li gestisce per te.
Privacy e proprietà dei dati: Dal momento che è auto-ospitato, i dati rimangono sotto il tuo controllo, senza dipendere da provider esterni o “cloud proprietari”.
Funzionalità avanzate: Offre molte caratteristiche “serie” per la gestione delle finanze: supporto multivaluta, report dettagliati, tags, budget, conti multipli, regole di automazione, import di transazioni da file esterni, ecc.
Flessibilità e personalizzazione: Puoi adattarlo alle tue esigenze (campi personalizzati, regole, layout, filtri) in modo più libero rispetto a molte soluzioni commerciali.
API / integrazioni: Essendo pensato per uso self-hosted, dispone di API e interfacce che consentono a sviluppatori o utenti avanzati di estenderlo o collegarlo ad altri sistemi.
Comunità attiva / sviluppo continuo: Essendo un progetto open source, è supportato da contributori esterni che aggiungono funzionalità, correggono bug, rilasciano aggiornamenti.
⚠️ Limiti e criticità
Curva di apprendimento e complessità tecnica: Se non hai familiarità con sistemi server, database, configurazioni PHP / web server, la configurazione iniziale può risultare ostica.
Manutenzione continua: Dovrai gestire aggiornamenti, backup, sicurezza, monitoraggio — tutte cose che non hai se usi un servizio “chiavi in mano”.
Gestione di rimborsi / transazioni inverse: Alcuni utenti lamentano che non è agevole trattare rimborsi o “reverse transactions” in modo fluido, cioè che questi vengano riconciliati automaticamente col budget o con la transazione originale.
Ricerca / interfaccia di ricerca limitata: La ricerca non sempre funziona come si spererebbe (ad esempio con operatori “OR” o ricerche semplici), rendendo a volte complicato trovare transazioni specifiche.
Interfaccia utente / usabilità per utenti “non tecnici”: Anche se l’interfaccia è completa, alcuni utenti la trovano meno intuitiva rispetto a soluzioni commerciali più “rifinite” o semplici da usare.
Limitate integrazioni bancarie dirette: Rispetto a soluzioni proprietarie che supportano aggregatori bancari o collegamenti diretti, Firefly III può risultare limitato se vuoi che le transazioni vengano importate in modo completamente automatico. Alcune integrazioni esistono, ma il supporto può variare.
Sovraccarico per uso semplice: Se ti serve solo tenere traccia di spese basiche senza molte complessità, Firefly III può risultare “troppo” robusto rispetto a ciò che effettivamente usi.



0 commenti