
Automatizzare i processi è ormai una necessità per chiunque voglia risparmiare tempo e ridurre gli errori nelle attività quotidiane.
n8n è una delle soluzioni più potenti e flessibili per creare automazioni personalizzate, senza dover scrivere codice complesso.
In questo articolo vedremo passo dopo passo come installare e configurare n8n su Ubuntu Server 24.04, dalla preparazione dell’ambiente fino all’accesso alla dashboard web.
Che tu stia cercando di connettere servizi come Gmail, Notion o Slack, oppure voglia integrare API personalizzate, questa guida ti aiuterà a mettere in funzione n8n in modo sicuro e stabile sul tuo server Linux.
Preparati a scoprire quanto può essere semplice costruire automazioni potenti e scalabili con un solo strumento open source.
PREREQUISITI
- Un Server Ubuntu 24.04 per il self-hosting di n8n
- È richiesto l’accesso root SSH o un utente con privilegi sudo
AGGIUNTA DELL’UTENTE DI SISTEMA AL SERVER
n8n sarà in esecuzione sotto un utente di sistema.
Aggiungere un nuovo utente di sistema con il comando:
|
0 |
adduser master
|
Verrà richiesto di creare una password per questo utente. Utilizzare una password complessa.
Una volta aggiunto il nuovo utente concedere al nuovo utente i privilegi di sudo.
|
0 |
usermod -aG sudo master
|
Ora passare all’utente master e completare il resto dell’installazione.
|
0 |
su - master
|
Ti verrà chiesta la password dell’utente. Digitare la password quindi premere INVIO.
INSTALLAZIONE DI NODEJS E NPM
Possiamo installare NodeJS dal repository predefinito di Ubuntu 24.04 ma otterremo una versione precedente di NodeJS se utilizziamo questo metodo.
In alternativa installare Node.js e npm tramite il repository Node.js per ottenere la versione più recente con il comando:
|
0 |
curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
|
Una volta completato aggiornare l’elenco dei pacchetti disponibili e le relative versioni dai repository software configurati con il comando:
|
0 |
sudo apt update
|
Per completare l’installazione di Node.js e NPM eseguire il comando:
|
0 |
sudo apt install nodejs
|
nodeJS e NPM sono installati. E’ possibile controllare la versione installata eseguendo questo comando:
|
0 |
node -v; npm -v
|
Dovremmo visualizzare un output come questo:
|
0
1
|
v22.20.0
10.9.3
|
Questo metodo di installazione è adatto a te se desideri ottenere la versione LTS o una versione specifica che desideri.
Ad esempio, se si desidera utilizzare la versione 18, è possibile eseguire questo comando.
|
0 |
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
|
Sostituire il 18 con la versione che si desidera installare.
INSTALLAZIONE DI N8N
Per l’installazione del self-hosting n8n utilizzare Docker o NPM.
In questo articolo ti guiderò attraverso il processo di installazione di n8n su Ubuntu 24.04 utilizzando NPM.
Con npm installato è possibile installare n8n a livello globale con il comando:
|
0 |
sudo npm install -g n8n
|
Il completamento dell’installazione richiederà un po’ di tempo. È possibile eseguire questo comando al termine.
|
0 |
n8n |
L’applicazione verrà eseguita sulla porta 5678. Il comando precedente visualizzerà un output come questo:
|
0
1
2
3
|
Editor is now accessible via:
http://localhost:5678
Press "o" to open in Browser.
|
A questo punto richiamare il link da un qualsiasi browser
Dovremmo visualizzare una schermata come quella mostrata nell’immagine sovrastante
Fermare l’applicazione premendo CTRL+C e iniziare a configurarla.
Creare il file .env con il comando:
|
0 |
nano ~/.n8n/.env
|
Inserire all’interno del file le seguenti righe seguenti:
|
0
1
2
3
|
WEBHOOK_URL=https://n8n.test.lab
WEBHOOK_TUNNEL_URL=https://n8n.test.lab
N8N_HOST=0.0.0.0
N8N_PORT=5678
|
Assicurarsi di sostituire n8n.test.lab con il sottodominio del dominio che desideri utilizzare per accedere al tuo sito web n8n.
INSTALLAZIONE DI POSTGRESQL
Per impostazione predefinita n8n utilizza SQLite come backend del database.
Tuttavia, per la produzione, possiamo utilizzare PostgreSQL come server di database.
Installare PostgreSQL con il seguente comando:
|
0 |
sudo apt install postgresql postgresql-contrib
|
Una volta installato PostgreSQL creare un nuovo database per il nostro progetto n8n con il comando:
|
0 |
sudo su postgres
|
Accedere alla shell di PostgreSQL con il comando:
|
0 |
psql |
Eseguire questi comandi all’interno della shell PSQL:
|
0
1
2
3
|
CREATE DATABASE n8ndb;
CREATE USER n8nuser WITH SUPERUSER PASSWORD 'PASSWORD';
GRANT ALL PRIVILEGES ON DATABASE n8ndb TO n8nuser;
\q
|
NOTA BENE: sostituire “PASSWORD” con una password più sicura.
Uscire dall’utente postgres con il comando:
|
0 |
exit |
Modificare il file .env e utilizzare le credenziali sopra riportate per connettere il tuo progetto n8n con il database PostgreSQL.
|
0 |
nano ~/.n8n/.env
|
Aggiungere le righe seguenti al file.
|
0
1
2
3
4
5
6
|
DB_TYPE=postgresdb
DB_POSTGRESDB_HOST=localhost
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_DATABASE=n8ndb
DB_POSTGRESDB_USER=n8nuser
DB_POSTGRESDB_PASSWORD=PASSWORD
DB_POSTGRESDB_SCHEMA=n8ndb
|
Salvare e chiudere il file di configurazione
CREAZIONE DI UN FILE SYSTEMD
In alternativa a PM2 per gestire il tuo progetto n8n, possiamo anche utilizzare un file systemd.
Creare un file systemd con il comando:
|
0 |
sudo nano /etc/systemd/system/n8n.service
|
Inserire quanto segue nel file:
|
0
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[Unit]
Description=n8n
After=network.target
[Service]
User=master
WorkingDirectory=/home/master/.n8n
EnvironmentFile=/home/master/.n8n/.env
ExecStart=/usr/bin/n8n
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
|
Salvare e chiudere il file.
Ricaricare il servizio systemd e quindi eseguire n8n con i comandi:
|
0
1
|
sudo systemctl daemon-reload
sudo systemctl enable --now n8n
|
L’applicazione N8N è ora in esecuzione ed è abilitata per l’avvio al riavvio del server.
INSTALLAZIONE E CONFIGURAZIONE DI NGINX
Per accedere al sito web n8n su http://n8n.test.lab invece che su http://n8n.test.lab:5678 installare un server web e configurarlo come proxy inverso.
In questa fase installeremo nginx e lo configureremo come reverse proxy per n8n.
Installare Nginx con il seguente comando:
|
0 |
sudo apt install nginx
|
Sul server Ubuntu nginx dovrebbe essere attivo e funzionante al momento dell’installazione.
Creare un file di configurazione per Nginx con il comando:
|
0 |
sudo nano /etc/nginx/conf.d/n8n.conf
|
Inserire quanto segue nel file di configurazione:
|
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
upstream n8n {
server 127.0.0.1:5678;
}
server {
listen 80;
server_name n8n.test.lab;
access_log /var/log/nginx/n8n.access.log;
error_log /var/log/nginx/n8n.error.log;
location / {
proxy_pass http://n8n;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
|
NOTA BENE: Sostituire n8n.test.lab con il nome di dominio effettivo o il nome del sottodominio che punta all’indirizzo IP del server.
Salvare e chiudere il file di configurazione.
Per applicare le modifiche riavviare Nginx con il comando:
|
0 |
sudo systemctl restart nginx
|
INSTALLAZIONE DEL CERTIFICATO SSL
In questo passaggio installeremo Certbot.
Certbot è uno strumento ACME per generare certificati SSL fornito da Let’s Encrypt.
Installare Certbot con il comando:
|
0 |
sudo apt install python3-certbot-nginx
|
Una volta installato eseguire questo comando per generare un certificato SSL.
ATTENZIONE: Assicurarsi che il tuo sottodominio o nome di dominio punti già al tuo server. In caso contrario, Certbot non riuscirà a generare il certificato SSL.
|
0 |
sudo certbot --nginx -d n8n.test.lab
|
Sostituire n8n.test.lab con il dominio o il sottodominio effettivo che utilizzi, assicurandoti che corrisponda a quello che utilizzi in Nginx.
Certbot aggiornerà automaticamente la configurazione nginx per utilizzare HTTPS.
A questo punto dovremmo poter accedere a https://n8n.test.lab
ACCESSO DA INTERFACCIA WEB
Richiamare il link https://n8n.test.lab
Inserire le info richieste quindi cliccare su Next
Rispondere al questionario quindi cliccare su Get Started
n8n ti sta offrendo alcune funzioni avanzate “a pagamento” in modo gratuito e permanente (“Get paid features for free — forever”).
In pratica, ti propongono di ricevere una chiave di attivazione gratuita (“activation key”) che sblocca alcune funzionalità Pro, senza limiti di tempo.
Ecco cosa include:
️ Workflow history → puoi vedere e ripristinare versioni precedenti dei tuoi workflow (entro le ultime 24 ore).
Advanced debugging → puoi analizzare facilmente un’esecuzione che ha dato errore, correggerla e rilanciarla.
Execution search and tagging → puoi cercare tra le esecuzioni passate e aggiungere tag per organizzarle meglio.
Folders → puoi creare cartelle e sottocartelle per ordinare i tuoi workflow.
In sostanza:
➡️ n8n sta offrendo funzioni premium gratis per sempre, basta richiedere (o inserire) la chiave di attivazione gratuita.
➡️ Non è un abbonamento, ma un “bonus” che ti sblocca strumenti utili per organizzare e gestire meglio i workflow.
Se è andato tutto a buon fine dovremmo visualizzare la Home di n8n
Ora è possibile iniziare a lavorare sul backend di n8n.
FUNZIONALITA’ DI N8N
1. Creazione di Workflow Automatizzati
Editor visuale (drag & drop): Permette di costruire flussi di lavoro collegando “nodi” con un’interfaccia grafica intuitiva. Ogni nodo rappresenta un’azione (es. inviare un’email, fare una richiesta API, scrivere su un file, ecc.).
Esecuzione condizionale e logica: Usa nodi come IF, Switch, Merge, SplitInBatches, per creare logiche complesse senza scrivere codice.
Riuso dei workflow: Puoi creare sub-workflow o workflow templates per riutilizzare componenti comuni tra più automazioni.
2. Integrazioni con Servizi e App
Oltre 500 integrazioni pronte all’uso (API, SaaS, DB, Cloud, ecc.): Gmail, Slack, Notion, Airtable, Google Sheets, Trello, Discord, OpenAI, GitHub, PostgreSQL, MySQL, AWS S3, e tanti altri. Ogni integrazione espone azioni (es. “Crea riga”, “Invia messaggio”, “Aggiorna record”).
Connessione tramite API REST o GraphQL: Puoi collegare qualsiasi servizio esterno anche se non è nella lista dei nodi ufficiali, usando nodi come HTTP Request o GraphQL.
Autenticazione integrata: Supporto nativo per OAuth2, API Key, Basic Auth e altre modalità di autenticazione.
3. Trigger ed Eventi
Manual Trigger: Avvia il flusso manualmente per test o debugging.
Schedule Trigger (cron): Esegui i workflow a intervalli regolari (ogni ora, ogni giorno, ogni settimana, ecc.).
Webhook Trigger: Ricevi dati in tempo reale da altre app via HTTP POST/GET.
App-specific triggers
Esempi:
- Nuovo messaggio su Slack
- Nuovo record su Airtable
- Nuovo file in Google Drive
- Nuovo issue su GitHub
4. Funzionalità Avanzate
Code node (JavaScript/TypeScript): Scrivi logica personalizzata direttamente in un nodo, per manipolare dati o creare funzioni su misura.
Expressions: Usa variabili e formule dinamiche in qualsiasi campo del workflow (es. {{$json[“email”]}}).
Error Handling & Retry: Gestione automatica degli errori con nodi di Error Trigger, possibilità di re-eseguire flussi falliti o saltare nodi difettosi.
Parallelismo e branching: Puoi eseguire parti del workflow in parallelo per ottimizzare i tempi.
5. Sicurezza e Accesso
Autenticazione utente: Accesso protetto tramite login, con gestione di utenti multipli nelle versioni Team/Enterprise.
Controlli di accesso (RBAC): Definisci ruoli e permessi per utenti o gruppi.
Crittografia e Secure Credentials: Le credenziali vengono salvate in modo sicuro nel database cifrato.
N8N_SECURE_COOKIE e HTTPS support: Protezione delle sessioni e compatibilità con proxy e TLS.
6. Organizzazione e Gestione
Folders (cartelle): Organizza i workflow in una struttura gerarchica.
Tags & Search: Assegna tag ai workflow o alle esecuzioni per filtrarli facilmente.
Workflow History: Visualizza le versioni precedenti e ripristinale in un clic.
Execution Logs & Search: Cerca e analizza le esecuzioni passate, con stato (successo, errore, in corso).
7. Debugging e Test
Advanced Debugging: Analizza un’esecuzione fallita, visualizza il flusso dei dati e rilancia solo la parte che ti interessa.
Step-by-step Execution: Puoi far partire il workflow da un punto preciso per testare solo una sezione.
Data inspection: Ogni nodo mostra i dati in ingresso e uscita in formato JSON.
8. Deploy e Hosting
Self-hosted (open source): Puoi installarlo su qualsiasi server: Ubuntu, Docker, Kubernetes, ecc.
n8n Cloud: Versione gestita ufficiale, con backup, scalabilità e supporto.
CLI e API: Controlla i workflow da riga di comando o tramite API REST.
Multi-Environment: Gestisci ambienti separati (sviluppo, test, produzione).
9. Scalabilità e Performance
Queue Mode (con Redis o RabbitMQ): Permette di distribuire l’esecuzione dei workflow su più worker (scalabilità orizzontale).
Concurrency Control: Limita o bilancia il numero di esecuzioni simultanee.
Caching e Re-use dei dati: Memorizza risultati intermedi per ridurre le chiamate API.
10. Estensibilità
Custom Nodes: Puoi creare i tuoi nodi personalizzati con JavaScript/TypeScript e integrarli nel pannello.
Community Nodes: Migliaia di estensioni create da altri utenti, installabili con un clic.
Custom Webhook Endpoints: Crea endpoint HTTP personalizzati per ricevere o inviare dati.
11. Monitoraggio e Analisi
Metrics & Health Check: Endpoint per Prometheus o Grafana per monitorare esecuzioni, tempi e stato del sistema.
Audit Logs (Enterprise): Traccia tutte le modifiche ai workflow o alle impostazioni.
12. Interfaccia e Usabilità
Dark/Light Theme: Interfaccia moderna e personalizzabile.
Drag connectors e minimappa del flusso: Visualizza in modo chiaro anche workflow molto complessi.
AI Assistant (in sviluppo): Suggerisce nodi, genera logiche o integra prompt per automazioni con LLM (es. OpenAI, Claude, ecc.).
In sintesi
Con n8n è possibile:
✅ Automatizzare processi tra app, database e API
✅ Creare flussi di lavoro personalizzati e complessi
✅ Eseguire automazioni in modo sicuro, scalabile e trasparente
✅ Sfruttare centinaia di integrazioni senza scrivere codice ma con la possibilità di farlo quando serve

0 commenti