n8n Self-Hosted: Guida Completa all'Installazione

n8n self-hosted costa 0 euro al mese e non ha limiti di esecuzione. Ecco come installarlo in 30 minuti, con Docker o piattaforme cloud come Railway.

Se usi Make, Zapier o n8n Cloud, probabilmente conosci bene quella sensazione: il contatore delle esecuzioni che sale, il piano che non basta più, i costi che lievitano. La soluzione esiste, ed è più accessibile di quanto pensi: self-hostare n8n.

n8n è uno strumento di automazione workflow open source che ti permette di connettere app, API e servizi in flussi automatizzati. La versione self-hosted ti dà controllo totale, zero limiti di esecuzione e costi drasticamente ridotti. In questa guida ti mostro come installarlo passo-passo.

0
Costo software
400+
Integrazioni native
30 min
Tempo setup

Perché self-hostare n8n

La domanda è legittima: perché complicarsi la vita quando esistono soluzioni gestite? Ecco i motivi concreti:

  • Nessun limite di esecuzione: con n8n Cloud paghi per task, con Make paghi per operazioni. Self-hosted? Esegui quanti workflow vuoi.
  • Costi prevedibili: un VPS da 4-5 euro al mese sostituisce piani da 20-100 euro mensili.
  • Controllo sui dati: i tuoi dati restano sul tuo server. Nessun passaggio su infrastrutture terze.
  • Personalizzazione: puoi installare moduli npm custom, modificare configurazioni, integrare con sistemi interni.
  • Nessun vendor lock-in: se n8n cambia pricing o policy, la tua istanza resta tua.
Ho migrato da Make a n8n self-hosted quando le mie automazioni superavano le 10.000 operazioni mensili. Ora pago 5 euro al mese invece di 59, e non devo più preoccuparmi di ottimizzare per risparmiare task.

Requisiti: cosa ti serve

Prima di iniziare, verifica di avere:

Per Docker su VPS

  • VPS Linux: Ubuntu 22.04+ consigliato, minimo 1GB RAM e 1 vCPU (2GB RAM consigliati per workflow complessi)
  • Docker e Docker Compose: li installeremo insieme
  • Dominio: per HTTPS e accesso sicuro (opzionale ma fortemente consigliato)
  • Conoscenze base terminale: saper usare ssh, nano/vim, comandi base Linux

Per Railway/Render

  • Account GitHub: per autenticazione
  • Carta di credito: richiesta per verifica, ma esistono tier gratuiti
  • Nessuna competenza tecnica: tutto via interfaccia web

Provider VPS consigliati: Hetzner (ottimo rapporto qualità/prezzo, da 3.79 euro/mese, prezzi soggetti a variazione), Contabo, DigitalOcean, Vultr. Per Railway e Render, il tier gratuito è sufficiente per iniziare.

Opzione 1: Docker (consigliata)

Docker è il metodo più flessibile e robusto. Ti da controllo completo e facilita backup e aggiornamenti.

Step 1: Prepara il server

Connettiti al tuo VPS via SSH e aggiorna il sistema:

# Aggiorna pacchetti
sudo apt update && sudo apt upgrade -y

# Installa dipendenze
sudo apt install -y ca-certificates curl gnupg lsb-release

Step 2: Installa Docker

# Aggiungi repository Docker
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Installa Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

# Permetti uso senza sudo
sudo usermod -aG docker $USER
newgrp docker

Step 3: Crea la struttura

# Crea directory per n8n
mkdir -p ~/n8n-docker
cd ~/n8n-docker

# Crea file docker-compose.yml
nano docker-compose.yml

Step 4: Configura docker-compose.yml

Incolla questa configurazione:

version: '3.8'

services:
  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=n8n.tuodominio.it
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - NODE_ENV=production
      - WEBHOOK_URL=https://n8n.tuodominio.it/
      - GENERIC_TIMEZONE=Europe/Rome
      - N8N_ENCRYPTION_KEY=chiave-segreta-32-caratteri-min
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  n8n_data:

Importante: genera una N8N_ENCRYPTION_KEY sicura con openssl rand -hex 32. Questa chiave cripta le credenziali salvate. Se la perdi, perdi accesso alle credenziali.

Step 5: Avvia n8n

# Avvia in background
docker compose up -d

# Verifica che funzioni
docker compose logs -f n8n

Ora n8n è raggiungibile su http://IP-SERVER:5678. Ma non è ancora sicuro: manca HTTPS.

Opzione 2: Railway/Render (facile)

Se Docker ti sembra troppo, Railway e Render offrono deploy con un click. Perfetto per iniziare o per chi non vuole gestire server.

Deploy su Railway

  1. Vai su railway.com/deploy/n8n
  2. Clicca "Deploy Now"
  3. Autentica con GitHub
  4. Railway crea automaticamente il progetto con PostgreSQL
  5. Attendi il deploy (2-3 minuti)
  6. Clicca sul link generato per accedere a n8n

Railway offre 5 dollari di credito gratuito mensile (verifica crediti attuali su railway.app), sufficienti per un'istanza base. Per workflow intensivi, il piano Pro parte da 20 dollari.

Deploy su Render

  1. Vai su render.com/docs/deploy-n8n
  2. Segui la guida per creare un Web Service
  3. Usa l'immagine Docker n8nio/n8n
  4. Configura un database PostgreSQL (consigliato) o usa SQLite con persistent disk
  5. Attendi il deploy

Render (nota: il tier gratuito non è più disponibile dal 2024, i piani partono da $7/mese). Per produzione, consiglio almeno il piano Starter a 7 dollari/mese.

Railway vs Render: Railway è più semplice per n8n grazie ai template pronti. Render offre più controllo ma richiede configurazione manuale. Railway è più economico con crediti gratuiti.

Configurazione iniziale

Al primo accesso, n8n ti chiede di creare un account owner:

  1. Inserisci email e password sicura
  2. Scegli nome e cognome
  3. Opzionalmente, iscriviti alla newsletter

Dopo il login, configura le impostazioni essenziali:

Timezone

Vai in Settings > General e verifica che il timezone sia Europe/Rome. Fondamentale per trigger temporali corretti.

Execution Data

In Settings > Workflow Settings, configura:

  • Save Data Error Execution: all (salva esecuzioni fallite)
  • Save Data Success Execution: all o none (salva tutto o solo errori)
  • Execution Timeout: 3600 secondi per workflow lunghi

Prima credenziale

Testa che tutto funzioni creando una credenziale semplice. Vai in Credentials > Add Credential > HTTP Header Auth e crea un test. Se riesci a salvare, la crittografia funziona.

Sicurezza: SSL, autenticazione

Un'istanza n8n esposta senza protezione è un rischio serio. Ecco come proteggerla.

HTTPS con Caddy (reverse proxy)

Caddy gestisce automaticamente i certificati SSL. Aggiungi al tuo docker-compose.yml:

version: '3.8'

services:
  caddy:
    image: caddy:2-alpine
    container_name: caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
      - caddy_config:/config
    depends_on:
      - n8n

  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    restart: unless-stopped
    expose:
      - "5678"
    environment:
      - N8N_HOST=n8n.tuodominio.it
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - NODE_ENV=production
      - WEBHOOK_URL=https://n8n.tuodominio.it/
      - GENERIC_TIMEZONE=Europe/Rome
      - N8N_ENCRYPTION_KEY=la-tua-chiave-segreta
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  n8n_data:
  caddy_data:
  caddy_config:

Crea il file Caddyfile:

n8n.tuodominio.it {
    reverse_proxy n8n:5678
}

Punta il DNS del tuo dominio all'IP del server, poi:

docker compose down
docker compose up -d

Caddy ottiene automaticamente il certificato Let's Encrypt.

Autenticazione base

n8n supporta autenticazione integrata. Aggiungi queste variabili d'ambiente:

environment:
  - N8N_BASIC_AUTH_ACTIVE=true
  - N8N_BASIC_AUTH_USER=admin
  - N8N_BASIC_AUTH_PASSWORD=password-sicura

Sicurezza extra: considera un firewall (ufw), fail2ban per bloccare brute force, e VPN se l'istanza è solo per uso interno.

Backup e manutenzione

Backup automatico

Crea uno script per backup giornalieri:

#!/bin/bash
# backup-n8n.sh

BACKUP_DIR=/home/user/backups/n8n
DATE=$(date +%Y-%m-%d)

mkdir -p $BACKUP_DIR

# Backup volume Docker
docker run --rm -v n8n-docker_n8n_data:/data -v $BACKUP_DIR:/backup alpine tar czf /backup/n8n-$DATE.tar.gz -C /data .

# Mantieni solo ultimi 7 giorni
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete

Aggiungi a crontab per esecuzione giornaliera:

crontab -e
# Aggiungi:
0 3 * * * /home/user/backup-n8n.sh

Aggiornamenti

# Scarica ultima versione
docker compose pull

# Riavvia con nuova immagine
docker compose up -d

# Verifica versione
docker exec n8n n8n --version

Prima di aggiornare: leggi sempre le release notes su GitHub. Alcune versioni hanno breaking changes. Fai un backup prima di ogni aggiornamento.

n8n Cloud vs Self-hosted: quando scegliere cosa

Non esiste una risposta universale. Ecco una guida decisionale:

Scegli n8n Cloud se:

  • Non hai competenze tecniche e non vuoi acquisirle
  • Hai budget ma non tempo
  • Hai bisogno di supporto ufficiale
  • I tuoi workflow sono pochi e leggeri
  • La compliance richiede un provider certificato

Scegli Self-hosted se:

  • Hai molti workflow o esecuzioni frequenti
  • Vuoi controllo totale su dati e infrastruttura
  • Il budget è limitato ma hai tempo
  • Hai bisogno di personalizzazioni avanzate
  • Integri n8n con sistemi interni non esposti a internet

Confronto costi reali

20+
n8n Cloud (euro/mese)
4-10
Self-hosted VPS (euro/mese)
0-7
Railway/Render (euro/mese)

Domande Frequenti

Quanto costa self-hostare n8n?

Il software n8n è gratuito e open source. I costi sono solo per l'hosting: con Docker su un VPS si parte da 4-5 euro al mese, con Railway o Render esistono tier gratuiti con limitazioni. In ogni caso, è drasticamente meno costoso rispetto ai 20-50 euro mensili di n8n Cloud o Make.

Ho bisogno di competenze tecniche per installare n8n?

Per Railway o Render servono competenze minime: basta un account e qualche click. Per Docker su VPS servono basi di terminale Linux. Questa guida copre entrambi gli scenari con istruzioni passo-passo adatte anche a chi parte da zero.

n8n self-hosted ha limiti di esecuzione?

No, nessun limite. A differenza di n8n Cloud, Make o Zapier che contano le esecuzioni, con n8n self-hosted puoi eseguire quanti workflow vuoi. L'unico limite è la potenza del server che scegli.

Posso migrare da n8n Cloud a self-hosted?

Sì, n8n permette di esportare e importare workflow in formato JSON. Puoi esportare tutti i tuoi workflow da n8n Cloud e importarli nella tua istanza self-hosted senza perdere nulla.

Come gestisco gli aggiornamenti di n8n?

Con Docker basta fare docker pull n8nio/n8n:latest e riavviare il container. Con Railway o Render gli aggiornamenti sono spesso automatici. Consiglio di fare sempre un backup prima di aggiornare e di leggere le release notes per eventuali breaking changes.

Vuoi implementare queste strategie?

Raccontami il tuo progetto. Rispondo entro 24 ore, senza impegno.

Parliamone

Emilio M.

Fondatore PresenzaInRete

Aiuto PMI e freelancer a costruire presenza online che genera risultati. Siti web, SEO, chatbot AI e automazioni.