n8n è uno strumento di workflow che collega app, API e modelli IA con un editor visuale. Ospitarlo in autonomia significa che workflow, credenziali e dati restano su un server che controlli tu e le esecuzioni non sono a consumo. Questa guida distribuisce n8n con Docker Compose, un database Postgres e HTTPS, pronto a eseguire agenti IA giorno e notte.
Perché un VPS per gli agenti?
Gli agenti spesso girano a orari stabiliti o reagiscono ai webhook, quindi servono a un server sempre acceso e raggiungibile. Un VPS ti dà un indirizzo fisso per i webhook e abbastanza RAM per mantenere reattivi i workflow. Un piano con 2 vCPU e 4 GB va bene per una configurazione piccola. Vedi l’hosting per agenti IA per le dimensioni e aggiungi un server GPU se vuoi modelli locali.
Prima di iniziare
- Un VPS con Docker. Leggi installare Docker.
- Un dominio che punta al server. Leggi i record DNS.
Passo 1: file Compose
mkdir -p ~/n8n && cd ~/n8n
cat > compose.yaml <<'YAML'
services:
db:
image: postgres:16
restart: unless-stopped
environment:
POSTGRES_USER: n8n
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: n8n
volumes:
- db:/var/lib/postgresql/data
n8n:
image: n8nio/n8n:latest
restart: unless-stopped
depends_on: [db]
environment:
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: db
DB_POSTGRESDB_USER: n8n
DB_POSTGRESDB_PASSWORD: ${DB_PASSWORD}
N8N_HOST: n8n.example.com
N8N_PROTOCOL: https
WEBHOOK_URL: https://n8n.example.com/
N8N_ENCRYPTION_KEY: ${ENCRYPTION_KEY}
GENERIC_TIMEZONE: UTC
ports:
- "127.0.0.1:5678:5678"
volumes:
- n8n:/home/node/.n8n
volumes:
db:
n8n:
YAML
Passo 2: segreti
cat > .env <<ENV
DB_PASSWORD=$(openssl rand -hex 24)
ENCRYPTION_KEY=$(openssl rand -hex 32)
ENV
chmod 600 .env
Fai il backup di ENCRYPTION_KEY. Senza di essa, n8n non può decifrare le credenziali che ha salvato.
Passo 3: avvia n8n
docker compose up -d
docker compose logs -f n8n
Passo 4: HTTPS
n8n.example.com {
reverse_proxy 127.0.0.1:5678
}
Ricarica Caddy, apri il sito e crea l’account proprietario.
Passo 5: crea il workflow di un agente
- Aggiungi un trigger Webhook o Schedule.
- Aggiungi un nodo AI Agent e collega un modello di chat, per esempio un’API ospitata, oppure Ollama sul tuo server GPU.
- Dai all’agente strumenti come richieste HTTP, un database o un nodo di messaggistica.
- Prova con un’esecuzione manuale, poi attiva il workflow.
Mettilo al sicuro
- Associa n8n a 127.0.0.1 ed esponi solo il proxy HTTPS.
- Proteggi i webhook con un header segreto o un percorso segreto, dove possibile.
- Fai il backup del volume Postgres e del volume n8n. Leggi i backup con restic o borg.
- Aggiorna con
docker compose pull && docker compose up -ddopo aver letto le note di rilascio.