Cerca "installare n8n" e trovi soprattutto tutorial scritti da provider di hosting. Sono fatti bene, ma hanno un obiettivo: venderti il VPS. Finiscono tutti nello stesso punto, quello in cui l'interfaccia si apre nel browser e parte il "buon lavoro".
Il problema è che l'installazione è la parte facile. Quello che ti costa tempo arriva dopo: la licenza che non hai letto, il database sbagliato scelto il primo giorno, la chiave di cifratura persa, l'aggiornamento che rompe un workflow di produzione. Questa guida copre entrambe le parti.
Prima di tutto: n8n è davvero gratis?
Sì per l'uso che farai quasi sicuramente, no in senso open source. n8n usa la Sustainable Use License: puoi installarlo, usarlo e modificarlo per scopi interni, tuoi o di un cliente, senza pagare nulla. Quello che la licenza limita è rivenderlo come piattaforma a terzi, cioè costruirci sopra un servizio in abbonamento.
Tradotto: automatizzare i processi della tua azienda o consegnare automazioni a un cliente rientra nell'uso consentito. Lanciare "la mia piattaforma di automazione" basata su n8n no, e in quel caso serve parlare con loro.
Cosa serve davvero come server
Per un'istanza singola con qualche decina di workflow, 2 GB di RAM e 2 vCPU bastano e avanzano. Sotto i 10 euro al mese trovi VPS adeguati da diversi provider europei. Con 1 GB parte, ma appena un workflow lavora su file o payload grossi vai in affanno.
Serve anche un dominio o sottodominio: i webhook devono essere raggiungibili dall'esterno in HTTPS, altrimenti metà delle integrazioni non funziona.
L'installazione, in modo che regga
Docker Compose, non l'installazione con npm
L'installazione globale via npm funziona per provare sul portatile. Su un server vuoi container: aggiornare significa cambiare un tag e ricreare, tornare indietro significa rimettere il tag precedente. Senza toccare le dipendenze di sistema.
PostgreSQL dal primo giorno
Di default n8n usa SQLite. È comodo e sbagliato per qualsiasi installazione destinata a restare in piedi: diventa il collo di bottiglia quando le esecuzioni si accumulano e rende backup e migrazioni più fragili.
Aggiungere un container PostgreSQL e puntarci n8n costa cinque righe di configurazione all'inizio. Farlo dopo significa migrare dati di produzione. Non c'è partita.
Le variabili che contano
N8N_ENCRYPTION_KEY— impostala tu, esplicitamente, e salvala in un password manager fuori dal server. È la chiave con cui n8n cifra tutte le credenziali salvate. Se la perdi, perdi ogni OAuth e ogni API key: vanno reinserite una per una.N8N_HOSTeWEBHOOK_URL— devono corrispondere al dominio pubblico. Se sbagli questi, i webhook che generi puntano a localhost e i servizi esterni non arrivano mai.- Fuso orario — impostalo su
Europe/Romeo i trigger schedulati partiranno in UTC, con un'ora o due di scarto che scoprirai nel momento peggiore. - Autenticazione — n8n esposto senza login è un pannello che esegue comandi arbitrari, aperto a internet. Non lasciarlo mai raggiungibile senza protezione, nemmeno "cinque minuti per provare".
HTTPS con un reverse proxy
Traefik o Caddy davanti a n8n gestiscono certificato Let's Encrypt e rinnovo automatico senza che tu ci pensi più. Io uso Traefik perché lo tengo già davanti agli altri container sullo stesso host; Caddy è più semplice se n8n è l'unica cosa che gira lì.
La parte che nessuno racconta: i tre mesi dopo
Backup: due cose, non una
Salvare solo il volume di n8n non basta. Servono il database PostgreSQL (workflow, credenziali cifrate, storico esecuzioni) e la chiave di cifratura, che sta altrove. Un backup del database senza la chiave è un archivio da cui non recuperi nessuna credenziale.
Verifica il ripristino almeno una volta, su un'istanza di prova. Un backup mai testato è una speranza, non un backup.
Aggiornamenti: non automatici
n8n rilascia spesso. Aggiornare significa cambiare il tag dell'immagine, ricreare il container, e controllare che i workflow critici funzionino ancora. Ogni tanto un nodo cambia comportamento e qualcosa si rompe in silenzio: il workflow gira, ma il risultato è vuoto.
Blocca una versione precisa nel compose invece di usare latest, e aggiorna quando decidi tu.
Lo storico che riempie il disco
Ogni esecuzione viene registrata. Con workflow frequenti il database cresce fino a saturare il VPS, e il primo sintomo è n8n che smette di rispondere. Imposta una politica di conservazione dei dati di esecuzione e tieni d'occhio lo spazio.
Il monitoraggio minimo
Un workflow che fallisce di notte non te lo dice nessuno. La configurazione minima sensata è un workflow di errore che notifica su Telegram o via email quando un'esecuzione va male, più un controllo esterno che verifichi che l'istanza risponda.
Quando il self-host non conviene
Sono onesto, anche se il self-host è quello che faccio: l'abbonamento cloud costa meno del tuo tempo se non hai già un server, non ti sei mai occupato di Docker e i workflow sono pochi.
La manutenzione seria richiede un'oretta al mese tra aggiornamenti, controllo backup e spazio disco. Se quell'ora la puoi fatturare altrove, il conto cambia in fretta. Il self-host vince quando i dati non devono uscire dalla tua infrastruttura, quando il server ce l'hai già, o quando i workflow sono tanti abbastanza da rendere l'abbonamento più caro del VPS.
Sicurezza: tre cose non negoziabili
- Nessun accesso senza autenticazione, mai, nemmeno temporaneamente.
- Aggiorna quando escono correzioni di sicurezza. Chi non aggiorna resta esposto per mesi: il caso qui sotto lo dimostra.
- Credenziali con permessi minimi. Se un workflow deve solo leggere da un'API, non dargli un token con permessi di scrittura.
Il caso CVE-2025-68613: perché gli aggiornamenti non sono opzionali
A dicembre 2025 è stata pubblicata una vulnerabilità critica su n8n, la CVE-2025-68613, con punteggio CVSS 9,9 su 10. Il problema stava nel modo in cui n8n valutava le espressioni JavaScript tra doppie graffe nei workflow: venivano eseguite lato server senza un isolamento adeguato, e un utente autenticato poteva risalire all'oggetto process di Node.js, leggere le variabili d'ambiente (quindi credenziali del database e chiavi API), caricare moduli come child_process ed eseguire comandi sul server. In pratica: chi aveva un account con permessi di modifica dei workflow controllava la macchina.
Le versioni colpite andavano dalla 0.211.0 fino alle 1.120.4, 1.121.1 e 1.122.0 escluse. Al momento della divulgazione risultavano esposte su Internet oltre 100.000 istanze potenzialmente vulnerabili. La patch è uscita lo stesso giorno della divulgazione, il 19 dicembre 2025; tre giorni dopo circolavano già proof-of-concept pubblici.
Cosa insegna, per chi gestisce la propria istanza:
- Versione minima: 1.122.0 o superiore. Se sei ancora sotto, aggiorna oggi. Con Docker Compose basta cambiare il tag dell'immagine e rilanciare
docker compose up -d. - Permessi di modifica solo a chi serve. La vulnerabilità richiedeva un account autenticato: meno persone possono creare o modificare workflow, più piccola è la superficie d'attacco. Disattiva la registrazione pubblica di nuovi utenti.
- Audit dei workflow esistenti. Cerca espressioni che contengono
this.process,mainModule.require,child_processofs: in un workflow legittimo non hanno motivo di esserci. - n8n con privilegi minimi. Utente dedicato, rete limitata, nessun volume montato che non serva. Se qualcuno esce dal contesto di esecuzione, deve trovare poco.
Se la macchina la crei da zero, nella guida alla VM su Google Cloud trovi il setup di base su cui appoggiare Docker.
La sequenza, in ordine
- VPS da 2 GB e sottodominio puntato sull'IP.
- Docker Compose con n8n, PostgreSQL e reverse proxy per l'HTTPS.
- Chiave di cifratura generata e salvata fuori dal server, prima del primo accesso.
- Autenticazione attiva, poi il primo workflow.
- Backup del database schedulato e ripristino testato una volta.
- Workflow di notifica errori e politica di conservazione dello storico.
I punti 5 e 6 sono quelli che tutti rimandano e nessuno fa. Sono anche gli unici due che ti salvano quando qualcosa va storto.
Se ti serve n8n in piedi su infrastruttura tua, con backup e monitoraggio già impostati, è un lavoro che faccio spesso per aziende della zona: scrivimi e vediamo cosa ti serve davvero.



