Installazione e Configurazione Base di Invoice Ninja su Ubuntu Server 24.04

da | Nov 3, 2025

La gestione di fatture, preventivi e pagamenti è una delle attività più delicate per ogni azienda, studio professionale o freelance.

Disporre di uno strumento affidabile, flessibile e open source consente non solo di risparmiare sui costi di licenza, ma anche di mantenere il pieno controllo dei propri dati.

InvoiceNinja è una delle soluzioni più apprezzate in questo ambito: una piattaforma moderna per la fatturazione elettronica, la gestione clienti e la contabilità leggera, sviluppata in PHP e basata su framework Laravel.

In questo articolo vedremo come installare e configurare la versione self-hosted di InvoiceNinja su Ubuntu Server 24.04 LTS, utilizzando i pacchetti ufficiali e le best practice più aggiornate.

L’obiettivo è ottenere un sistema funzionante in pochi passaggi, sicuro e pronto per essere utilizzato in ambiente produttivo o di test.

Al termine della guida avrai a disposizione un’installazione completa e autonoma di InvoiceNinja, pronta per emettere fatture, generare preventivi, tracciare pagamenti e gestire clienti direttamente dal tuo server Ubuntu il tutto con la massima libertà e trasparenza garantita dall’open source.

PREREQUISITI

Sistema operativo: Ubuntu Server 24.04 LTS (64 bit)

Accesso amministrativo: Un utente con privilegi sudo per installare e configurare i pacchetti.

Requisiti hardware minimi:

  • CPU: almeno 2 core
  • RAM: almeno 2 GB (consigliati 4 GB o più)
  • Spazio disco: 20 GB liberi (meglio SSD)
  • Connessione Internet stabile
  • Server web: Nginx (consigliato) oppure Apache2
  • PHP: Versione 8.1 o superiore (Ubuntu 24.04 fornisce PHP 8.3).

AGGIORNAMENTO SERVER

Aggiornare il repository dei pacchetti con il comando:

Consentire tutto il traffico HTTP e HTTPS attraverso il firewall con il comando:

INSTALLAZIONE DELLE DIPENDENZE NECESSARIE

Installare Nginx, MySQL e PHP con il comando:

Verificare la versione PHP installata e confermare che sia PHP 8.3 o superiore con il comando:

Installare PHP-FPM e tutte le estensioni PHP necessarie per Invoice Ninja.

Abilitare Nginx all’avvio con il comando:

Avviare il servizio di sistema Nginx con il comando:

Controllare lo stato del servizio Nginx e verificare che sia in esecuzione con il comando:

Se è tutto ok dovremmo visualizzare il seguente output:

 

CREAZIONE DEL DATABASE MYSQL

Invoice Ninja richiede un database MySQL per funzionare correttamente.

Utilizzare i seguenti passaggi per creare un nuovo database MySQL per Invoice Ninja.

Accedere a MySQL con il seguente comando:

Creare un nuovo database.invoiceninjadb con il comando:

Creare un nuovo utente con una password complessa. Sostituire con la tua password effettiva il campo PASSWORD

Concedere all’utente i privilegi completi per il database con il comando:

Svuotare la tabella dei privilegi MySQL per applicare le modifiche alle autorizzazioni utente con il comando:

Uscire dalla console del database MySQL con il comando:

SCARICARE INVOICE NINJA

Seguire i seguenti passaggi per scaricare l’ultimo file di rilascio di Invoice Ninja e installarlo sul server.

Creare una nuova directory in /var/www/ con il comando:

Passare alla directory.invoiceninja

Visitare la pagina delle versioni di Invoice Ninja e verificare l’ultima versione da scaricare al seguente link:

GituHub Invoice Ninja

Durante la stesura di questo articolo l’ultima versione stabile disponibile è la v5.12.28

Scaricare InvoiceNinja con il comando:

Estrarre tutti i file dall’archivio scaricato con il comando:

Rimuovere l’archivio per risparmiare spazio su disco con il comando:

Copiare il file env.example per creare un nuovo file .env con il comando:

Concedere all’utente e al gruppo Nginx le autorizzazioni complete per la directory www-data invoiceninja con il comando:

Aprire il crontab di sistema come utente www-data con il comando:

Aggiungere il seguente comando di pianificazione Laravel per eseguire attività di manutenzione regolari per Invoice Ninja

Salvare e chiudere il file di configurazione di Crontab.

Testare il Crontab del sistema per verificare che l’attività Invoice Ninja sia attiva con il comando:

Dovremmo visualizzare il seguente output:

 

CONFIGURAZIONE DI INVOICE NINJA

Invoice Ninja richiede una configurazione host virtuale per eseguire tutti i file nella directory.

Seguire i seguenti passaggi per creare una nuova configurazione dell’host virtuale Nginx che punti a /var/www/invoiceninja

Creare una nuova configurazione dell’host virtuale nella directory /etc/nginx/sites-available con il comando:

Aggiungere al file le seguenti configurazioni di blocco del server Nginx.

NOTA BENE: Sostituire il nome del server invoiceninja.lab.test con quello corretto

Salvare e chiudere il file di configurazione

La configurazione dell’host virtuale Nginx precedente serve i file Invoice Ninja dalla directory utilizzando il dominio.

Tutte le richieste PHP vengono inoltrate al servizio PHP 8.3 FPM installato per elaborare e servire la dashboard di Invoice Ninja

Rimuovere la configurazione predefinita dell’host virtuale Nginx con il comando:

Per abilitare l’host virtuale collegare il file alla directory /etc/nginx/sites-enabled con il comando:

Testare la configurazione di Nginx per verificare la presenza di errori di sintassi con il comando:

Se è tutto OK dovremmo visualizzare il seguente output:

Riavviare il server Nginx per applicare la configurazione con il comando:

 

CONFIGURARE INVOICE NINJA CON CERTIFICATO SSL

Utilizzare i seguenti passaggi per generare certificati SSL Let’s Encrypt affidabili per proteggere tutte le connessioni a Invoice Ninja.

Installa il plug-in Certbot Let’s Encrypt per Nginx con il comando:

Richiedere un nuovo certificato TLS utilizzando il tuo dominio host virtuale.

Sostituire invoiceninja.lab.com con il dominio corretto e [email protected] con l’indirizzo mail corretto.

Riavviare Nginx per applicare la configurazione con il comando:

 

CONFIGURAZIONE DI INVOICE NINJA DA WEBGUI

A questo punto da un qualsiasi browser richiamare il seguente link:

https://FQDN-SERVER-O-IP-ADDRESS/setup

Inserire le info relative al server quindi quelle relative al database creato in precedenza.

Cliccare quindi su Test Connection

Se è andato tutto a buon fine dovremmo visualizzare Success come mostrat nell’immagine sovrastante

Inserire quindi Nome, Cognome, Indirizzo Mail, Accettare l’EULA e cliccare su Submit

Se è andato tutto a buon fine dovremmo essere rediretti sulla schermata di Login come mostrato nell’immagine sovrastante

Inserire la mail e la password definiti nel passaggio precedente quindi cliccare Login

Inserire i dati richiesti quindi cliccare Save

Dovremmo visualizzare la Home di Invoice Ninja come mostrato nell’immagine sovrastante

FUNZIONALITA’ DI INVOICE NINJA

1. Gestione Fatture (Invoicing)

InvoiceNinja nasce come sistema di fatturazione open source completo.

Permette di creare, gestire e inviare fatture in modo flessibile, con numerazione automatica, imposte personalizzate e layout professionali.

Funzionalità principali:

  • Creazione di fatture personalizzate con logo, colori e dati aziendali.
  • Numerazione automatica e configurabile (prefissi, anno, progressivo).
  • Possibilità di impostare tasse e IVA multiple, anche per riga.
  • Supporto a valute multiple e tassi di cambio automatici.
  • Aggiunta di sconti percentuali o fissi per singola voce o per l’intero documento.
  • Anteprima PDF immediata e generazione automatica di file scaricabili.
  • Invio diretto via email o link pubblico condivisibile.
  • Stato dinamico della fattura (bozza, inviata, pagata, scaduta, cancellata).
  • Promemoria automatici per fatture non pagate.
  • Note personalizzate (pubbliche o private).
In pratica, puoi emettere e gestire tutte le tue fatture digitali da un’unica interfaccia, senza necessità di software esterni.

2. Gestione Pagamenti

  • InvoiceNinja integra la gestione completa dei pagamenti associati a fatture e clienti.
  • Registrazione manuale dei pagamenti ricevuti (contanti, bonifico, assegno, ecc.).
  • Integrazione con gateway di pagamento online come:
    Stripe, PayPal, Mollie, Authorize.net, Square, GoCardless e molti altri.
  • Possibilità di pagamenti ricorrenti automatici per abbonamenti o servizi continuativi.
  • Conversione automatica di valute per pagamenti esteri.
  • Ricevute e notifiche automatiche al cliente quando un pagamento viene elaborato.
  • Puoi così gestire sia incassi manuali che pagamenti online con la massima semplicità.

3. Gestione Clienti (Client Management)

  • Anagrafica completa dei clienti: nome, azienda, indirizzo, contatti, codice fiscale/P.IVA, termini di pagamento.
  • Storico di tutte le fatture, preventivi e pagamenti relativi a ciascun cliente.
  • Possibilità di allegare note, documenti o file a ciascun cliente.
  • Portale clienti (Client Portal) con accesso riservato: i clienti possono visualizzare e scaricare fatture, preventivi e pagare online.
  • Possibilità di assegnare crediti clienti per pagamenti anticipati o sconti futuri.
  • Campi personalizzati (custom fields) per dati aggiuntivi.

 

4. Preventivi e Proposte (Quotes & Proposals)

  • Oltre alle fatture, InvoiceNinja permette di creare preventivi dettagliati da trasformare in fatture con un clic.
  • Creazione di preventivi personalizzati con stesso layout delle fatture.
  • Possibilità per il cliente di approvare o rifiutare il preventivo online.
  • Conversione diretta di un preventivo in fattura.
  • Stato del preventivo: bozza, inviato, approvato, scaduto.
  • Note, sconti e allegati personalizzabili.
  • Perfetto per chi offre servizi o lavora su commessa.

 

5. Fatture Ricorrenti e Abbonamenti (Recurring Invoices)

  • Creazione automatica di fatture periodiche (giornaliere, settimanali, mensili, annuali).
  • Possibilità di associare un pagamento ricorrente via gateway (es. Stripe o PayPal).
  • Impostazione di una data di inizio e di fine ciclo.
  • Notifiche automatiche per rinnovi o scadenze.
  • Ideale per chi gestisce servizi in abbonamento o manutenzioni programmate.

 

6. Gestione Prodotti e Servizi

  • Catalogo prodotti/servizi con descrizione, prezzo e imposte.
  • Ricerca rapida e inserimento automatico nelle fatture.
  • Possibilità di creare categorie di prodotti.
  • Gestione di quantità, sconti e prezzi personalizzati.
  • Puoi così mantenere un archivio centralizzato di tutti i prodotti e servizi fatturabili.

 

7. Reportistica e Analisi

  • InvoiceNinja include un sistema di report dettagliati per monitorare lo stato finanziario e operativo.
  • Report su fatture emesse, pagate, scadute o cancellate.
  • Analisi dei pagamenti per periodo, cliente o metodo.
  • Statistiche su preventivi convertiti in fatture.
  • Esportazione in formato CSV, XLSX o PDF.
  • Grafici di riepilogo mensili e annuali.
  • Dashboard interattiva con indicatori chiave (totale entrate, fatture non pagate, media tempi di pagamento, ecc.).

 

8. Multi-utente e permessi

  • Creazione di più utenti con ruoli e permessi personalizzati (es. amministratore, contabile, venditore).
  • Controllo dettagliato su cosa ciascun utente può vedere o modificare.
  • Tracciamento delle attività (audit log).
  • Perfetto per team o studi con più collaboratori.

 

9. Email, notifiche e template personalizzati

  • Invio automatico di email per fatture, preventivi e promemoria.
  • Template email personalizzabili (HTML e testo).
  • Integrazione con servizi SMTP esterni (Gmail, Outlook, Mailgun, ecc.).
  • Invio di notifiche automatiche per scadenze e pagamenti ricevuti.
  • Possibilità di aggiungere allegati personalizzati alle comunicazioni.

 

10. Automazioni e API

  • Automazioni tramite Laravel Scheduler (cron job) per invii e generazioni automatiche.
  • API RESTful completa e documentata per integrazione con CRM, ERP o altri sistemi.
  • Webhook configurabili per reagire a eventi (fattura pagata, preventivo approvato, nuovo cliente).
  • Supporto all’integrazione con Zapier, Integromat/Make e piattaforme simili.

11. Gestione spese (Expenses)

  • Registrazione delle spese aziendali e assegnazione a clienti o progetti.
  • Allegato delle ricevute o fatture dei fornitori.
  • Categorie di spesa personalizzate.
  • Conversione automatica di valute.
  • Possibilità di fatturare al cliente le spese sostenute.

️ 12. Gestione progetti e attività (Projects & Tasks)

  • Creazione di progetti e task collegati ai clienti.
  • Cronometro integrato per tenere traccia del tempo lavorato.
  • Fatturazione automatica delle ore registrate.
  • Visualizzazione dello stato di avanzamento di ciascun progetto.

 

13. Sicurezza e controllo accessi

  • Autenticazione a due fattori (2FA).
  • Gestione utenti e ruoli.
  • Connessione HTTPS e cifratura dei dati sensibili.
  • File .env con configurazioni protette.
  • Supporto per backup automatici del database e dei file.

 

14. Localizzazione e multilingua

  • Tradotto in oltre 30 lingue, incluso l’italiano.
  • Supporto per fusi orari e formati data/numerici locali.
  • Possibilità di inviare fatture e preventivi nella lingua del cliente.

 

15. Estendibilità e personalizzazione

  • Personalizzazione completa del layout PDF (HTML/CSS/Blade Template).
  • Temi grafici diversi per documenti e portale clienti.
  • Possibilità di aggiungere campi personalizzati (custom fields) per clienti, prodotti, fatture, preventivi.
  • Integrazione con servizi esterni di archiviazione (Amazon S3, Google Drive, Dropbox, ecc.).

 

⚙️ 16. Backup, aggiornamenti e manutenzione

  • Backup manuali o automatici del database e della cartella /storage.
  • Aggiornamenti regolari tramite Composer o Docker.
  • Versioni LTS stabili per ambienti di produzione.
  • Log dettagliati di sistema e degli errori.

 

✅ In sintesi

Con InvoiceNinja è possibile:

  • Creare e inviare fatture, preventivi e ricevute.
  • Gestire clienti, prodotti, spese e pagamenti.
  • Automatizzare fatture ricorrenti e reminder.
  • Collegarti a gateway di pagamento online.
  • Tenere sotto controllo tutto con report chiari e dashboard intuitiva.
  • Farlo in autonomia, sul tuo server, in piena sicurezza e senza licenze costose.

Articoli Recenti

Veeam Backup

Monitoring

Friends

  • My English Lab  English School
  • ChrSystem   Servizi ICT
  • Since 01  Kreative Graphics

Database

Networking

Autori

  • Raffaele Chiatto  Amministratore
  • Marco Valle  Autore
  • Angelo Lauria  Autore
  • Edoardo Prot  Autore
  • Davide D’Urso  Autore
Raffaele Chiatto

Raffaele Chiatto

Sono Raffaele Chiatto, un appassionato di informatica a 360 gradi. Tutto è iniziato nel 1996, quando ho scoperto il mondo dell'informatica grazie a Windows 95, e da quel momento non ho più smesso di esplorare e imparare. Ogni giorno mi dedico con curiosità e passione a scoprire le nuove frontiere di questo settore in continua evoluzione.

Related Post

0 commenti

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Virtualizzazione

Linux

Microsoft

Apple

Backup

Database

Security

Automazione