Come ospitare n8n con Docker?

Eseguire n8n con Docker è un modo efficiente per ospitare autonomamente questo strumento di automazione del flusso di lavoro. A differenza dell’installazione di n8n direttamente sul tuo server privato virtuale (VPS), Docker offre un ambiente containerizzato che isola n8n dal tuo sistema principale.
Questo semplifica l’aggiornamento o il downgrade delle tue versioni di n8n, la scalabilità della configurazione per supportare più flussi di lavoro e persino la migrazione della tua istanza di n8n su un altro server.
In questa guida, imparerai come eseguire n8n utilizzando Docker e Docker Compose. Questo metodo consente di definire il server n8n, le variabili d’ambiente e le dipendenze, come un database, in un unico file YAML.
Continua a leggere per istruzioni passo dopo passo su come installare, configurare, proteggere e aggiornare la tua istanza di n8n utilizzando Docker.
Indice dei contenuti
Come ospitare autonomamente n8n con Docker
Per avviare il self hosting di n8n con Docker, dovrai iniziare installando Docker e Docker Compose sul tuo VPS. Successivamente, dovrai creare un file Docker Compose per configurare il tuo servizio n8n. Infine, dovrai eseguire il container n8n utilizzando il comando docker compose up -d.
Quindi, puoi proteggere la tua configurazione n8n con SSL e un reverse proxy, modificare le variabili d’ambiente secondo necessità e aggiornare n8n ogni volta che vengono rilasciate nuove versioni.
Le sezioni seguenti spiegano ogni passaggio in modo più dettagliato.
1. Installa Docker e Docker Compose
Innanzitutto, assicurati che Docker sia installato sul tuo server. A partire da Docker v20.10.0, Docker Compose è incluso di default come plugin, quindi non è necessario installarlo separatamente.
Se usi l’hosting VPS Docker di Hostinger, sei fortunato: Docker è preinstallato, quindi puoi saltare completamente questo passaggio.
Gli utenti con piani VPS standard di Hostinger possono comunque installare Docker tramite un modello preconfigurato o manualmente tramite riga di comando.
Se scegli quest’ultima opzione, verifica l’installazione eseguendo il seguente comando Linux nel terminale:
docker -v
Verrà visualizzata la versione di Docker installata, in questo modo:

2. Prepara la directory dei dati n8n
Successivamente, crea le directory per memorizzare i dati e i file di configurazione di n8n. Esegui il comando seguente per creare la directory principale di n8n e accedi ad essa:
mkdir ~/n8n && cd ~/n8n
All’interno della directory appena creata, crea una sottodirectory chiamata n8n_data per memorizzare i dati persistenti di n8n:
mkdir n8n_data
Imposta la proprietà corretta per i dati persistenti, importante quando si esegue n8n con Docker:
sudo chown -R 1000:1000 n8n_data

3. Crea un file con Docker Compose per n8n
Dopo aver preparato le directory per n8n, crea un nuovo file di Docker Compose per configurare le impostazioni di n8n, definire le variabili di ambiente e specificare i volumi necessari.
Puoi farlo usando l’editor di testo nano:
sudo nano docker-compose.yml
Incolla il seguente contenuto, sostituendo yourUser e yourPassword con le tue credenziali preferite:
services: n8n: image: n8nio/n8n ports: - "5678:5678" environment: - N8N_BASIC_AUTH_ACTIVE=true - N8N_BASIC_AUTH_USER=yourUser - N8N_BASIC_AUTH_PASSWORD=yourPassword volumes: - ./n8n_data:/home/node/.n8n

Una volta fatto, salva le modifiche e esci da nano premendo Ctrl + X → Y → Invio.
4. Avvia il container n8n
Ora esegui il container n8n con questo comando:
docker compose up -d
Vedrai quindi il processo di avvio del container. Una volta completato, verranno visualizzate righe come Creato e Avviato, simili all’immagine seguente:

Per verificare se il tuo container n8n è stato avviato, apri il seguente indirizzo nel tuo browser, sostituendo your_vps_ip con l’indirizzo IP del tuo VPS:
http://your_vps_ip:5678
I clienti del VPS di Hostinger possono trovare l’IP del loro server nel pannello di controllo hPanel andando su VPS → Gestisci → Panoramica → Dettagli VPS.

Se visualizzi un avviso di errore relativo ai cookie protetti come nell’immagine sottostante quando visiti l’indirizzo, non preoccuparti. La tua istanza n8n è in realtà in esecuzione. L’errore si verifica perché SSL non è configurato per connessioni sicure, ma risolverai questo problema nel passaggio successivo.

5. Proteggi n8n con un SSL e un proxy inverso NGINX
Per accedere in modo sicuro alla tua istanza n8n tramite HTTPS, dovrai emettere un certificato SSL e configurare un proxy inverso.
Prima di tutto, installa il server web NGINX sul tuo VPS:
sudo apt install nginx -y
Interrompi immediatamente il servizio NGINX temporaneamente:
sudo systemctl stop nginx
Successivamente, installa Certbot per ottenere il tuo certificato SSL:
sudo apt install certbot -y
Ottieni una versione stand-alone di Certbot con certificato SSL. Sostituisci yourdomain.tld con il tuo nome di dominio effettivo se lo hai indirizzato al tuo VPS. In caso contrario, emetti un certificato SSL per il tuo nome host:
sudo certbot certonly --standalone -d yourdomain.tld
Ti verrà chiesto di inserire un indirizzo email valido, accettare i termini di servizio e, facoltativamente, registrarti per ricevere email promozionali.
Una volta fatto, riavvia NGINX:
sudo systemctl start nginx
Dopodiché, crea un file di configurazione per impostare il proxy inverso con NGINX:
sudo nano /etc/nginx/sites-available/n8n
All’interno del file, incolla i dettagli di configurazione qui sotto. Sostituisci yourdomain.tld con il tuo dominio o nome host.
server { listen 443 ssl; server_name yourdomain.tld; ssl_certificate /etc/letsencrypt/live/yourdomain.tld/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/yourdomain.tld/privkey.pem; location / { proxy_pass http://localhost:5678; 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; } } server { listen 80; server_name yourdomain.tld; return 301 https://$host$request_uri; }

Dopo aver salvato il file e aver chiuso l’editor, esegui questo comando per abilitare la configurazione:
sudo ln -sf /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/n8n
Verifica la configurazione di NGINX per eventuali errori:
sudo nginx -t
Ricarica il servizio NGINX per applicare le modifiche:
sudo systemctl reload nginx
6. Accedi alla tua istanza n8n
Ora, visita la tua istanza n8n utilizzando il dominio o il nome host configurato in precedenza. Visualizzerai la pagina di registrazione dell’account proprietario di n8n, dove potrai registrarti con le tue credenziali preferite.

Dopodiché, apri la dashboard di n8n per iniziare a creare flussi di lavoro di automazione. Puoi dare un’occhiata ad alcuni esempi di flussi di lavoro con n8n per ispirazione.
Se non vuoi partire da zero, trova dei template di n8n già pronti.
Non dimenticare di esplorare le integrazioni di n8n per vedere cosa puoi collegare, quali strumenti utilizzare e i casi d’uso per ciascuna integrazione.
7. Modifica le variabili d’ambiente n8n
Durante la gestione dell’istanza n8n, potrebbe essere necessario modificare le variabili d’ambiente per configurare le connessioni al database, abilitare l’autenticazione, integrare servizi di terze parti o migliorare la sicurezza.
Per farlo, torna al terminale e modifica il file Docker Compose:
sudo nano docker-compose.yml
Nella sezione ambiente, aggiungi o modifica le impostazioni di configurazione per il tuo container n8n. Ecco alcune delle variabili più comunemente utilizzate:
- N8N_ENCRYPTION_KEY – crittografa le credenziali nel database per una maggiore sicurezza.
- N8N_ENCRYPTION_KEY=yourStrongRandomString
- N8N_HOST, N8N_PORT, N8N_PROTOCOL – garantisce che n8n generi URL corretti, soprattutto dietro un proxy inverso o quando si utilizza un SSL.
- N8N_HOST=yourdomain.tld - N8N_PORT=5678 - N8N_PROTOCOL=https
- WEBHOOK_URL – imposta l’URL pubblico per i webhook, importante se si utilizza HTTPS o un dominio personalizzato.
- WEBHOOK_URL=https://youdomain.tld
- DB_TYPE, DB_POSTGRESDB – consente di utilizzare PostgreSQL al posto del predefinito SQLite per ottenere prestazioni e scalabilità migliori.
- DB_TYPE=postgresdb - DB_POSTGRESDB_HOST=your_postgres_host - DB_POSTGRESDB_PORT=5432 - DB_POSTGRESDB_DATABASE=your_database_name - DB_POSTGRESDB_USER=your_db_user - DB_POSTGRESDB_PASSWORD=your_db_password
- TZ – imposta il fuso orario per n8n.
- TZ=UTC
Salva il file dopo aver apportato le modifiche necessarie.
Quindi, esegui il seguente comando Docker per arrestare il container n8n:
docker compose down
Ripristina il container con le variabili di ambiente aggiornate:
docker compose up -d

💡 Suggerimento
Se vuoi semplicemente riavviare il tuo container Docker n8n senza modificare il file Compose, usa invece il comando docker compose restart.
8. Aggiorna n8n all’ultima versione
Ti consigliamo di aggiornare periodicamente n8n all’ultima versione per ridurre al minimo i rischi per la sicurezza e sfruttare le nuove funzionalità e i miglioramenti.
Per aggiornarlo, estrai prima di tutto l’ultima immagine n8n da Docker Hub:
docker pull n8nio/n8n
Quindi, riavvia il container n8n con l’immagine aggiornata:
docker compose up -d

Quali sono le migliori pratiche per gestire n8n con Docker?
Ecco alcune delle migliori pratiche per la gestione di n8n con Docker, tra cui alcune già illustrate in questo tutorial:
- Monta i volumi Docker. Monta una directory host come ./n8n_data:/home/node/.n8n per rendere persistenti flussi di lavoro, credenziali e dati di esecuzione all’esterno del container . Questo garantisce che i dati sopravvivano ad aggiornamenti, riavvii o ricreazioni del container.
- Configura le variabili d’ambiente. In docker-compose.yml, imposta le chiavi API, i segreti dei webhook, le credenziali del database e altri dati sensibili come variabili d’ambiente. In questo modo, i segreti rimangono al di fuori dei flussi di lavoro e del codice sorgente, migliorando la sicurezza e semplificando la rotazione delle chiavi.
- Accesso sicuro. Abilita sempre l’autenticazione di base (N8N_BASIC_AUTH_ACTIVE=true) e usa nomi utente e password complessi. Per una comunicazione sicura, posiziona n8n dietro un reverse proxy come NGINX con SSL, in modo che tutti i dati, comprese le credenziali, siano crittografati e non testo puro.
- Esegui backup regolari. Esegui periodicamente il backup della cartella host mappata su /home/node/.n8n, non del percorso interno del container. Per un container in esecuzione, utilizza il comando seguente:
docker cp n8n:/home/node/.n8n /path/to/backup/folder
- Imposta limiti per le risorse. Nel file docker-compose.yml, imposta i limiti per CPU e memoria per impedire a n8n di utilizzare eccessivamente le risorse del tuo VPS. Ad esempio:
deploy: resources: limits: cpus: '1' memory: 1G
- Monitora i log e le prestazioni. Esegui docker compose logs n8n per esaminare i log e risolvere i problemi. Per un monitoraggio continuo, valuta l’integrazione con un sistema come lo stack LGTM per ricevere avvisi in caso di inattività o malfunzionamento di n8n.
Perché Hostinger è il modo migliore per ospitare la tua configurazione di n8n con Docker?
Docker semplifica e rende flessibile il self hosting di n8n, offrendo un ambiente portabile e coerente su tutti i sistemi. Tuttavia, per garantirne l’affidabilità 24 ore su 24, 7 giorni su 7, non è possibile fare affidamento sul proprio computer personale: è necessario un VPS.
Un VPS funziona ininterrottamente, quindi i tuoi flussi di lavoro rimangono attivi anche quando il computer è spento o disconnesso. Inoltre, ti consente di accedere e gestire n8n in modo sicuro da qualsiasi luogo, non solo dalla tua rete locale.
Le soluzioni VPS Docker di Hostinger sono una scelta eccellente per il self hosting di app containerizzate come n8n. Docker e tutti i componenti necessari sono preinstallati, così puoi distribuire n8n rapidamente senza configurazioni aggiuntive.
Offriamo diversi data center in varie regioni, così puoi scegliere un server più vicino a te per una latenza minima. Inoltre, con la garanzia di uptime del 99,9% di Hostinger, i tuoi flussi di lavoro di automazione rimangono online in modo affidabile 24 ore su 24.
A partire da €4.99/mese, i nostri piani Docker VPS includono fino a 8 core vCPU, 32 GB di RAM e 400 GB di memoria NVMe. Puoi iniziare con un piano base e passare a un piano superiore in pochi click man mano che le tue esigenze di automazione aumentano.
La sicurezza è una priorità: backup automatici, protezione DDoS avanzata e uno scanner antimalware proteggono i tuoi dati, bloccano gli attacchi e impediscono interruzioni alla configurazione n8n.

Cosa succederà dopo il self hosting di n8n con Docker?
Il self hosting di n8n con Docker ti offre pieno controllo, flessibilità e scalabilità per l’automazione dei tuoi flussi di lavoro. Ti consente di gestire un potente strumento di automazione secondo le tue esigenze, in modo sicuro, affidabile e con spazio di crescita.
Mentre continui a sviluppare e gestire la tua configurazione n8n, ecco cosa puoi fare:
- Esplora idee di automazione. Scopri cosa puoi automatizzare con n8n per trovare ispirazione e semplificare le attività ripetitive.
- Scala la tua configurazione n8n. Distribuisci uno stack Docker per scalare n8n su più server e gestire i servizi in un cluster swarm.
- Proteggi il tuo server. Segui le migliori pratiche di sicurezza del VPS, come cambiare la porta SSH, disabilitare l’accesso root e impostare un firewall, per proteggere la tua istanza n8n.
- Usa n8n con MCP. Esponi i tuoi flussi di lavoro agli agenti AI e abilita l’automazione contestuale integrando n8n con il model context protocol (MCP).
Se hai ancora domande sull’esecuzione e la gestione di n8n con Docker, sentiti libero di lasciare un commento qui sotto.