Al contenuto principale
HostOn
Hosting

n8n self-hosted: guida per Ubuntu 24.04 con Docker e HTTPS

Installare n8n self-hosted su un server VPS: Docker, Docker Compose e Caddy con HTTPS, variabili d’ambiente, aggiornamenti, backup e sicurezza.

Team HostOn9 min di lettura
Ingranaggi di un meccanismo a orologeria

Per installare n8n sul suo server le servono un VPS con Ubuntu 24.04, un sottodominio come n8n.sua-azienda.ch, Docker con Docker Compose e un reverse proxy che ottenga il certificato HTTPS. Questa guida segue la documentazione ufficiale di n8n (stato: ottobre 2026, n8n 2.x) e usa Caddy come reverse proxy. Con un po’ di esperienza Linux, n8n è online in circa un’ora; dopo, aggiornamenti, backup e sicurezza sono compito suo.

Che cos’è n8n?

n8n è uno strumento per l’automazione dei workflow. In un editor grafico collega servizi come e-mail, Google Sheets, CRM, contabilità, webhook o modelli di IA in processi automatici: un nuovo modulo di contatto arriva da solo nel CRM, una fattura viene archiviata in PDF, un report parte via e-mail ogni lunedì. Dove non esiste un nodo pronto, aiutano le richieste HTTP e il suo codice JavaScript o Python.

Perché ospitare n8n in proprio?

  • Controllo dei dati: workflow, credenziali e dati delle esecuzioni restano sul suo server. Così è più semplice rispettare i requisiti della legge sulla protezione dei dati (LPD) e dei contratti con i clienti.
  • Costi: la Community Edition è gratuita. Paga il server, non il numero di esecuzioni.
  • Libertà: nodi della community propri, qualsiasi variabile d’ambiente e accesso diretto ai sistemi interni nella stessa rete.
  • Però: è lei responsabile di esercizio, aggiornamenti, backup e sicurezza. n8n stessa raccomanda espressamente il self-hosting a chi ha esperienza con i server.
Criterion8n CloudSelf-hosted (VPS)
Esercizio e aggiornamentin8nLei
Dove sono i datiInfrastruttura di n8nIl suo server
Modello di costoAbbonamento per piano, con limiti di esecuzioniCosto del server, nessuna licenza per la Community Edition
LimitiLimiti del piano per esecuzioni e RAMCapacità del suo server
Competenze necessarienessuna per l’esercizioLinux, Docker, DNS, backup

Requisiti

  • Un server VPS con Ubuntu 24.04 LTS e accesso root o sudo via SSH.
  • Memoria: 2 GB di RAM e da 1 a 2 vCPU bastano per iniziare. Per n8n Assistant con sandbox la documentazione indica almeno 4 GB di RAM e 2 vCPU.
  • Spazio: 25 GB bastano per partire. Per impostazione predefinita n8n elimina i dati delle esecuzioni dopo 336 ore (14 giorni); si può modificare con la variabile EXECUTIONS_DATA_MAX_AGE.
  • Un dominio di cui può gestire i record DNS, ad esempio per n8n.sua-azienda.ch.
  • Un indirizzo e-mail per il certificato Let’s Encrypt.

Passo 1: preparare il server e il firewall

Acceda via SSH, aggiorni il sistema e crei un utente proprio, per non lavorare sempre come root:

  1. sudo apt update && sudo apt upgrade -y
  2. sudo adduser nomeutente
  3. sudo usermod -aG sudo nomeutente
  4. Aggiungere una chiave SSH per il nuovo utente e poi accedere di nuovo come nomeutente.
  5. sudo ufw allow OpenSSH
  6. sudo ufw allow 80
  7. sudo ufw allow 443
  8. sudo ufw enable

Passo 2: installare Docker e Docker Compose

Installi Docker dal repository ufficiale di Docker, non dal vecchio pacchetto Ubuntu docker.io. I comandi corrispondono alla guida di docs.docker.com per Ubuntu 24.04 (Noble):

  1. sudo apt install ca-certificates curl git
  2. sudo install -m 0755 -d /etc/apt/keyrings
  3. sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
  4. sudo chmod a+r /etc/apt/keyrings/docker.asc
  5. Creare il file /etc/apt/sources.list.d/docker.sources (sudo nano /etc/apt/sources.list.d/docker.sources) con queste cinque righe: Types: deb / URIs: https://download.docker.com/linux/ubuntu / Suites: noble / Components: stable / Signed-By: /etc/apt/keyrings/docker.asc
  6. sudo apt update
  7. sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  8. Verifica: docker --version e docker compose version, poi sudo docker run hello-world

Passo 3: impostare il record DNS

Presso il suo fornitore DNS crei un record A per il sottodominio, ad esempio n8n.sua-azienda.ch, che punti all’indirizzo IPv4 del VPS. Attenda che il record venga risolto (test con ping n8n.sua-azienda.ch). Solo allora Caddy può ottenere il certificato.

Passo 4: installare n8n con Caddy

n8n mette a disposizione un repository di configurazione pronto con Docker Compose e Caddy. Caddy ottiene e rinnova automaticamente il certificato Let’s Encrypt.

  1. cd ~ && git clone https://github.com/n8n-io/n8n-docker-caddy.git
  2. cd n8n-docker-caddy
  3. sudo docker volume create caddy_data
  4. sudo docker volume create n8n_data
  5. nano .env e adattare i valori (vedi sotto).
  6. nano caddy_config/Caddyfile e sostituire il segnaposto nella prima riga con n8n.sua-azienda.ch.
  7. nano docker-compose.yml e, nel servizio n8n, cambiare la riga della porta 5678:5678 in 127.0.0.1:5678:5678.
  8. sudo docker compose up -d
  9. Aprire https://n8n.sua-azienda.ch nel browser e creare l’account proprietario.

Consiglio: La modifica in 127.0.0.1:5678 è importante: Docker pubblica le porte aggirando il firewall UFW. Senza questa modifica, n8n sarebbe raggiungibile anche senza cifratura su http://indirizzo-IP:5678. Caddy raggiunge n8n internamente tramite la rete Docker e non ha bisogno della porta.

Le variabili d’ambiente più importanti

  • DATA_FOLDER=/home/nomeutente/n8n-docker-caddy – percorso della cartella clonata.
  • DOMAIN_NAME=sua-azienda.ch e SUBDOMAIN=n8n – insieme formano l’indirizzo https://n8n.sua-azienda.ch.
  • GENERIC_TIMEZONE=Europe/Zurich – fuso orario per le pianificazioni (Schedule Trigger).
  • SSL_EMAIL=it@sua-azienda.ch – indirizzo di contatto per il certificato.
  • In docker-compose.yml il repository imposta già N8N_HOST, N8N_PROTOCOL=https e WEBHOOK_URL, così gli indirizzi dei webhook iniziano correttamente con https.
  • Facoltativo, sotto environment: TZ=Europe/Zurich, N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true (come nel modello Compose ufficiale) e N8N_DIAGNOSTICS_ENABLED=false se non vuole inviare telemetria a n8n.

Aggiornamenti: n8n e server sempre aggiornati

n8n pubblica una nuova versione minore quasi ogni settimana. L’immagine senza indicazione di versione (latest) è la versione stabile per la produzione; il tag next è una versione preliminare instabile. Per aggiornare:

  1. Prima creare un backup (vedi sezione successiva).
  2. cd ~/n8n-docker-caddy
  3. sudo docker compose pull
  4. sudo docker compose down
  5. sudo docker compose up -d
  6. Testare brevemente i workflow. Prima di salti di versione importanti, leggere le note di rilascio e i breaking change.

Anche Ubuntu ha bisogno di aggiornamenti. Installi automaticamente gli aggiornamenti di sicurezza con sudo apt install unattended-upgrades e verifichi regolarmente se serve un riavvio.

Backup dei dati di n8n

Tutto ciò che conta si trova nel volume Docker n8n_data: il database SQLite con workflow ed esecuzioni e la chiave di cifratura con cui n8n protegge le sue credenziali. Senza questa chiave, le credenziali salvate sono inutilizzabili. Faccia quindi un doppio backup:

  1. Esportazione in file: sudo docker compose exec -u node n8n n8n export:workflow --backup --output=/files/backup/workflows/
  2. sudo docker compose exec -u node n8n n8n export:credentials --backup --output=/files/backup/credentials/
  3. Le esportazioni finiscono sul server nella cartella local_files/backup. Le credenziali restano cifrate.
  4. Volume completo: sudo docker compose stop, poi sudo docker run --rm -v n8n_data:/data -v $(pwd):/backup alpine tar czf /backup/n8n_data-$(date +%F).tar.gz -C /data . e infine sudo docker compose start.
  5. Copiare i backup su un altro sistema con rsync o scp, senza lasciarli solo sul VPS.

Consiglio: Annoti la chiave di cifratura anche nel suo gestore di password. Si trova nel file config del volume n8n_data (visualizzabile con sudo docker compose exec n8n cat /home/node/.n8n/config).

Sicurezza: cosa deve proteggere lei

  • Firewall: aprire solo le porte 22, 80 e 443; collegare la porta 5678 solo a 127.0.0.1.
  • SSH: accesso solo con chiave; in /etc/ssh/sshd_config impostare PasswordAuthentication no.
  • La basic auth non serve: da n8n 1.0 la gestione utenti integrata protegge l’interfaccia. Attivi l’autenticazione a due fattori nelle impostazioni personali.
  • Aggiornamenti: aggiornare regolarmente l’immagine n8n, l’immagine Caddy e Ubuntu. Le falle di sicurezza di n8n vengono chiuse con le nuove versioni.
  • Webhook: proteggere i webhook di produzione con un controllo di header o token, perché sono raggiungibili senza accesso.
  • Nodi della community: installarli solo da fonti affidabili, perché girano con i permessi di n8n.

Quale server VPS scegliere per n8n?

Per qualche decina di workflow basta un server piccolo. Da HostOn sceglie Ubuntu 24.04 direttamente al momento dell’ordine. VPS CORE 1 (1 vCPU, 2 GB di RAM, 25 GB SSD) a CHF 11.90 al mese basta per iniziare; con VPS CORE 2 (2 vCPU, 4 GB di RAM, 50 GB SSD) a CHF 19.90 al mese ha margine per molti workflow o per n8n Assistant. Entrambi sono unmanaged e disdicibili ogni mese: installazione, aggiornamenti e backup di n8n restano a suo carico, come descritto sopra.

Scegli un VPS per n8n

n8nDockerServer VPSAutomazioneUbuntu

Domande frequenti sul tema

Sì. La Community Edition self-hosted di n8n funziona senza chiave di licenza, gratuitamente e con quasi tutte le funzioni. Paga solo il server; alcune funzioni per team più grandi fanno parte delle edizioni a pagamento Business ed Enterprise.

n8n di per sé è leggero: i piani più piccoli di n8n Cloud funzionano con 320 MiB di RAM. Con sistema operativo, Docker e reverse proxy, 2 GB di RAM sono un buon punto di partenza; per molti workflow in parallelo o per n8n Assistant (la documentazione richiede almeno 4 GB di RAM e 2 vCPU) preveda di più.

No. Da n8n 1.0 la gestione utenti è integrata e la basic auth è stata rimossa. Al primo accesso crea un account proprietario (owner); in più è consigliabile attivare l’autenticazione a due fattori.

Nella cartella del progetto esegua in sequenza docker compose pull, docker compose down e docker compose up -d. Prima faccia un backup e, in caso di salti di versione importanti, legga le note di rilascio.

Le credenziali salvate non si possono più decifrare e vanno reinserite. Per questo conviene salvare il volume Docker n8n_data, o la chiave stessa, in un luogo sicuro.

Per iniziare basta il database SQLite integrato. Con molte esecuzioni, più utenti o se in futuro vuole usare la modalità queue con più worker, PostgreSQL è la scelta migliore.

Condividi l'articolo

Domande? Ci scriva nella sua lingua.

Rispondiamo nella lingua in cui ci scrive – tedesco, francese, italiano, inglese e altre due lingue.

DEENFRITESRO

Di norma risposta nello stesso giorno lavorativo

Postazioni di lavoro con cuffie e laptop in un ufficio luminoso
  • Ticketconsigliato

    Per tutto ciò che riguarda il suo account: hosting, domini, fatture. Con cronologia e allegati.

    Apri un ticket
  • E-mail

    Per domande prima dell'ordine e per offerte.

    support@hoston.ch

    Scrivi un'e-mail
  • WhatsApp

    Per domande brevi. Non invii password né dati di clienti.

    Scrivi un messaggio

Prima verifichi: c'è un guasto in corso?

status.hoston.ch

Contatti · Servizio di migrazione · Strumenti