Come fare self-hosting di n8n (guida 2026)
Il self-hosting di n8n ti dà la piattaforma completa di automazione dei flussi di lavoro, senza limiti di esecuzione e con piena proprietà dei tuoi dati. Questa guida percorre in modo onesto la vera configurazione con Docker, Docker Compose e PostgreSQL, e poi mostra la scorciatoia dei 30 secondi se preferisci evitare del tutto l'amministrazione del server.
Cosa significa “self-hosting di n8n”?
n8n è uno strumento di automazione dei flussi di lavoro source-available. A differenza di n8n Cloud, il SaaS gestito dal team di n8n, il self-hosting significa che tu fai girare l'applicazione n8n su un'infrastruttura che controlli. Il software in sé è gratuito con una licenza fair-code, ma il calcolo, il database, lo storage e la banda per tenerlo in funzione 24/7 non lo sono. Il self-hosting è la scelta giusta quando vuoi nessun limite di esecuzione, pieno controllo su credenziali e dati, flussi illimitati e la possibilità di usare nodi della community e codice personalizzato senza che un piano SaaS te lo impedisca.
Requisiti di sistema di n8n
n8n è leggero da avviare, ma scala con quanto sono pesanti i tuoi flussi. Una base realistica:
- CPU: 1 vCPU va bene per un uso leggero; 2+ vCPU per molte esecuzioni concorrenti.
- RAM: da 1 a 2 GB per n8n. I flussi che elaborano payload grandi (file, immagini, JSON voluminosi) ne richiedono di più.
- Database: PostgreSQL è caldamente consigliato per la produzione. Il SQLite predefinito va bene per i test, ma non gestisce bene la concorrenza ed è più difficile da sottoporre a backup in sicurezza.
- Storage: Qualche GB basta per iniziare; la cronologia delle esecuzioni e i dati binari crescono nel tempo.
- Rete: Un endpoint HTTPS pubblico (porta 443) così i webhook in entrata e i callback OAuth funzionano.
Per un'analisi più approfondita, mappata sulle dimensioni dei piani, vedi la nostra Guida ai requisiti del server n8n.
Opzione 1: distribuisci n8n con Docker
Il modo più rapido per far girare n8n sulla tua macchina o su un VPS è l'immagine Docker ufficiale. È ottima per una prova in locale, ma nota che usa SQLite e non ha TLS: non è quello che vuoi in produzione:
docker volume create n8n_data
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8nApri http://localhost:5678, crea l'account proprietario e avrai un n8n funzionante. Per qualsiasi uso reale, passa a Docker Compose con PostgreSQL.
Opzione 2: Docker Compose con PostgreSQL
Una configurazione di produzione abbina n8n a un database PostgreSQL dedicato, una chiave di crittografia e gli URL corretti di host e webhook. Salva questo file come docker-compose.yml:
services:
postgres:
image: postgres:16
restart: always
environment:
POSTGRES_USER: n8n
POSTGRES_PASSWORD: change-me
POSTGRES_DB: n8n
volumes:
- pgdata:/var/lib/postgresql/data
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "5678:5678"
environment:
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: postgres
DB_POSTGRESDB_DATABASE: n8n
DB_POSTGRESDB_USER: n8n
DB_POSTGRESDB_PASSWORD: change-me
N8N_HOST: n8n.example.com
N8N_PROTOCOL: https
WEBHOOK_URL: https://n8n.example.com/
N8N_ENCRYPTION_KEY: a-long-random-string
depends_on:
- postgres
volumes:
- n8ndata:/home/node/.n8n
volumes:
pgdata:
n8ndata:Poi esegui docker compose up -d. Alcune cose sono importanti: imposta una N8N_ENCRYPTION_KEY robusta (cifra le credenziali salvate, quindi perderla significa reinserire ogni credenziale), punta WEBHOOK_URL al tuo dominio HTTPS pubblico reale, e non esporre mai la porta 5678 direttamente su internet senza un reverse proxy davanti.
Le parti che le guide al self-hosting saltano
Far partire n8n è il 20% facile. Mantenerlo in funzione in modo sicuro è l'altro 80%, ed è il punto in cui un VPS grezzo ti morde:
- Certificati TLS: Servono HTTPS per webhook e OAuth. Significa Caddy, Traefik o Nginx più Let’s Encrypt, e un rinnovo dei certificati che non deve mai fallire.
- Webhook e reverse proxy: I webhook in entrata richiedono un URL pubblico stabile e header proxy corretti, altrimenti i trigger si rompono in silenzio.
- Backup: I tuoi flussi, le credenziali e la cronologia delle esecuzioni vivono in PostgreSQL. Ti servono backup automatici e testati del database: un backup non testato non è un backup.
- Aggiornamenti: n8n rilascia spesso nuove versioni. Sei tu a dover scaricare le nuove immagini, leggere le note sulle modifiche incompatibili e migrare il database.
- Uptime: Un singolo VPS è un singolo punto di guasto. Se l'host si riavvia alle 2 di notte, le tue pianificazioni e i webhook si fermano finché non te ne accorgi.
Oppure salta tutto: distribuisci n8n su Flux in 30 secondi
Se vuoi i vantaggi del self-hosting (nessun limite di esecuzione, la tua istanza, piena proprietà dei dati) senza diventare un sistemista part-time, distribuisci n8n sul cloud decentralizzato Flux. Ottieni un'istanza dedicata con un cluster PostgreSQL ad alta disponibilità a 3 nodi, failover automatico, HTTPS, webhook funzionanti e protezione DDoS, tutto predisposto per te.
Domande frequenti
Is self-hosting n8n free?
The n8n software is free to self-host, but the server, database, storage, and bandwidth to run it 24/7 are not. On Flux you rent that server from $6.99/month with n8n preinstalled and an HA PostgreSQL cluster already set up.
Do I need PostgreSQL to self-host n8n?
For testing, n8n’s default SQLite works. For production you should use PostgreSQL — it handles concurrent executions safely and is far easier to back up and restore reliably.
How do I make n8n webhooks work when self-hosting?
Webhooks need a stable public HTTPS URL. Set WEBHOOK_URL and N8N_HOST to your real domain and put a reverse proxy with a valid TLS certificate in front of n8n. On Flux this HTTPS endpoint is provisioned automatically.
Can I migrate my existing workflows?
Yes. n8n workflows are portable JSON — export them from any existing instance and import them into your new one. Credentials are re-entered for security.