OffshoreVps
Tutorial4 ott 20267 min di letturaDi il team di OffshoreVps

Distribuisci n8n e agenti IA con Docker Compose su un VPS

Ospita n8n con Postgres e HTTPS, crea un workflow con un agente IA, proteggi i webhook e fai il backup dei dati e della chiave di cifratura.

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.

Finestra del terminale su un VPS che mostra i comandi usati per distribuire n8n e agenti IA, a partire da “mkdir -p ~/n8n && cd ~/n8n”
Il tipo di comandi che eseguirai sul tuo server in questa guida.

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

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.

I passaggi di questa guida in ordine: 1. Perché un VPS per gli agenti?; 2. Prima di iniziare; 3. segreti; 4. avvia n8n; 5. crea il workflow di un agente; 6. Mettilo al sicuro
I passaggi di questa guida, in ordine.

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

  1. Aggiungi un trigger Webhook o Schedule.
  2. Aggiungi un nodo AI Agent e collega un modello di chat, per esempio un’API ospitata, oppure Ollama sul tuo server GPU.
  3. Dai all’agente strumenti come richieste HTTP, un database o un nodo di messaggistica.
  4. 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 -d dopo aver letto le note di rilascio.