n8n est un outil de workflows qui relie des applications, des API et des modèles d’IA avec un éditeur visuel. L’auto-héberger signifie que vos workflows, identifiants et données restent sur un serveur que vous contrôlez, et que les exécutions ne sont pas facturées à l’unité. Ce guide déploie n8n avec Docker Compose, une base de données Postgres et HTTPS, prêt à faire tourner des agents IA en continu.
Pourquoi un VPS pour des agents ?
Les agents s’exécutent souvent selon un calendrier ou réagissent à des webhooks, ils ont donc besoin d’un serveur toujours allumé et joignable. Un VPS vous donne une adresse fixe pour les webhooks et assez de RAM pour garder des workflows réactifs. Une offre 2 vCPU, 4 Go convient à une petite installation. Voir l’hébergement d’agents IA pour les tailles, et ajoutez un serveur GPU si vous voulez des modèles locaux.
Avant de commencer
- Un VPS avec Docker. Voir installer Docker.
- Un domaine pointant vers le serveur. Voir enregistrements DNS.
Étape 1 : fichier 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
Étape 2 : secrets
cat > .env <<ENV
DB_PASSWORD=$(openssl rand -hex 24)
ENCRYPTION_KEY=$(openssl rand -hex 32)
ENV
chmod 600 .env
Sauvegardez ENCRYPTION_KEY. Sans elle, n8n ne peut pas déchiffrer les identifiants qu’il a stockés.
Étape 3 : démarrer n8n
docker compose up -d
docker compose logs -f n8n
Étape 4 : HTTPS
n8n.example.com {
reverse_proxy 127.0.0.1:5678
}
Rechargez Caddy, ouvrez le site et créez le compte propriétaire.
Étape 5 : créer un workflow d’agent
- Ajoutez un déclencheur Webhook ou Schedule.
- Ajoutez un nœud AI Agent et connectez un modèle de chat, par exemple une API hébergée, ou Ollama sur votre propre serveur GPU.
- Donnez à l’agent des outils tels que des requêtes HTTP, une base de données ou un nœud de messagerie.
- Testez avec une exécution manuelle, puis activez le workflow.
Le garder en sécurité
- Liez n8n à 127.0.0.1 et n’exposez que le proxy HTTPS.
- Protégez les webhooks avec un en-tête ou un chemin secret lorsque c’est possible.
- Sauvegardez le volume Postgres et le volume n8n. Voir sauvegardes avec restic ou borg.
- Mettez à jour avec
docker compose pull && docker compose up -daprès avoir lu les notes de version.