n8n : guide complet pour l'auto-hébergement en 2026
n8n est une plateforme d'automatisation de workflows open source qui permet de connecter des API, des services et des applications sans écrire de code — ou presque. Contrairement à Zapier ou Make, n8n peut être auto-hébergé, offrant un contrôle total sur les données et une flexibilité sans limite.
Ce guide détaille l'installation via Docker, la configuration avancée, la sécurisation de l'instance et la création de premiers workflows.
Pourquoi auto-héberger n8n
L'auto-hébergement de n8n présente plusieurs avantages décisifs :
- Contrôle des données : aucune information ne transite par un serveur tiers
- Coût réduit : pas d'abonnement mensuel, seul le serveur est à payer
- Flexibilité illimitée : nombre d'exécutions non plafonné, nodes personnalisés
- Personnalisation : accès complet à la configuration et aux nodes custom
- Évolutivité : scale horizontal possible avec n8n clustering
Prérequis techniques
Avant de commencer l'installation, vérifier les prérequis suivants :
| Composant | Minimum | Recommandé |
|---|---|---|
| RAM | 1 Go | 4 Go |
| CPU | 1 vCPU | 2 vCPU |
| Disque | 10 Go SSD | 50 Go SSD |
| Docker | 20.10+ | Dernière version |
| Docker Compose | v2+ | Dernière version |
Un serveur VPS (OVH, Hetzner, DigitalOcean) ou une machine locale sous Linux (Ubuntu 22.04/24.04 recommandé) convient parfaitement.
Installation avec Docker
Méthode 1 : Docker Compose (recommandée)
Créer un fichier docker-compose.yml :
version: "3.8"
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=VotreMotDePasseSecurise
- N8N_HOST=n8n.votredomaine.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.votredomaine.com/
- GENERIC_TIMEZONE=Europe/Paris
- TZ=Europe/Paris
- N8N_PAYLOAD_SIZE_MAX=64
- NODE_FUNCTION_ALLOW_EXTERNAL=axios,moment
volumes:
- n8n_data:/home/node/.n8n
networks:
- n8n-net
volumes:
n8n_data:
driver: local
networks:
n8n-net:
driver: bridge
Lancer l'instance :
docker compose up -d
Méthode 2 : Docker CLI
docker run -d \
--name n8n \
--restart unless-stopped \
-p 5678:5678 \
-e N8N_BASIC_AUTH_ACTIVE=true \
-e N8N_BASIC_AUTH_USER=admin \
-e N8N_BASIC_AUTH_PASSWORD=VotreMotDePasseSecurise \
-e N8N_HOST=n8n.votredomaine.com \
-e N8N_PROTOCOL=https \
-e GENERIC_TIMEZONE=Europe/Paris \
-v n8n_data:/home/node/.n8n \
n8nio/n8n:latest
Méthode 3 : avec une base de données PostgreSQL
Pour une utilisation en production, PostgreSQL est fortement recommandé :
version: "3.8"
services:
postgres:
image: postgres:16-alpine
container_name: n8n-postgres
restart: unless-stopped
environment:
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=VotrePasswordDB
- POSTGRES_DB=n8n
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- n8n-net
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
depends_on:
- postgres
ports:
- "5678:5678"
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=VotrePasswordDB
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=VotreMotDePasseSecurise
- N8N_HOST=n8n.votredomaine.com
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.votredomaine.com/
- GENERIC_TIMEZONE=Europe/Paris
- EXECUTIONS_DATA_PRUNE=true
- EXECUTIONS_DATA_MAX_AGE=168
volumes:
- n8n_data:/home/node/.n8n
networks:
- n8n-net
volumes:
n8n_data:
postgres_data:
networks:
n8n-net:
driver: bridge
Configuration et sécurisation
Reverse proxy avec Nginx + SSL
Installer Certbot et Nginx :
sudo apt update && sudo apt install -y nginx certbot python3-certbot-nginx
Configuration Nginx (/etc/nginx/sites-available/n8n) :
server {
listen 80;
server_name n8n.votredomaine.com;
location / {
proxy_pass http://127.0.0.1:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
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;
proxy_buffering off;
proxy_cache off;
chunked_transfer_encoding off;
}
}
Activer le SSL :
sudo certbot --nginx -d n8n.votredomaine.com
Variables d'environnement essentielles
| Variable | Description | Valeur recommandée |
|---|---|---|
N8N_ENCRYPTION_KEY |
Clé de chiffrement des credentials | Chaîne aléatoire 32+ chars |
EXECUTIONS_DATA_PRUNE |
Purge auto des exécutions | true |
EXECUTIONS_DATA_MAX_AGE |
Âge max des exécutions (heures) | 168 (7 jours) |
N8N_PAYLOAD_SIZE_MAX |
Taille max des payloads (Mo) | 64 |
N8N_METRICS |
Activer les métriques Prometheus | true |
N8N_DIAGNOSTICS_ENABLED |
Télémétrie | false (privé) |
Génération d'une clé de chiffrement
openssl rand -hex 32
Ajouter cette valeur dans le docker-compose.yml :
- N8N_ENCRYPTION_KEY=la_cle_generee_ici
Important : ne jamais changer cette clé après le premier démarrage. Les credentials existants deviendraient illisibles.
Créer son premier workflow
Workflow 1 : notification Slack à chaque nouvelle ligne Google Sheets
- Se connecter à l'interface n8n sur
https://n8n.votredomaine.com - Cliquer sur "New Workflow"
- Ajouter un node Google Sheets Trigger et configurer le spreadsheet et la feuille à surveiller
- Ajouter un node Slack et sélectionner l'action "Send Message"
- Mapper les colonnes du Sheets dans le message Slack
- Cliquer sur "Test Workflow" puis "Active"
Workflow 2 : synchronisation automatique entre deux API
Ce workflow illustre la puissance d'n8n pour connecter des systèmes :
[Webhook] → [HTTP Request - API Source] → [Set Node - Transformation] → [HTTP Request - API Cible] → [Response]
- Webhook : point d'entrée pour déclencher le workflow
- HTTP Request (source) : récupérer les données depuis l'API source (GET)
- Set : transformer et filtrer les données
- HTTP Request (cible) : envoyer les données transformées vers l'API cible (POST/PUT)
- Respond to Webhook : renvoyer un accusé de réception
Workflow 3 : scraping et stockage automatisé
[Cron Trigger - Quotidien] → [HTTP Request - Page Web] → [HTML Extract] → [Code Node - Parsing] → [PostgreSQL - Insert] → [Slack - Notification]
Ce workflow tourne automatiquement chaque jour, extrait des données d'une page web, les structure et les stocke en base de données.
Nodes essentiels à connaître
n8n propose plus de 400 nodes intégrés. Voici les plus utiles :
- Webhook : déclencher un workflow via HTTP
- HTTP Request : appeler n'importe quelle API REST
- Code Node : exécuter du JavaScript personnalisé
- IF/Switch : logique conditionnelle
- Set : transformer les données
- Merge : combiner plusieurs flux de données
- Loop : itérer sur des listes
- Wait : mettre en pause l'exécution
- Error Trigger : capturer les erreurs globales
- Sub-Workflow : appeler un workflow depuis un autre
Sauvegarde et maintenance
Sauvegarde automatique
Ajouter un cron job sur le serveur hôte :
# Sauvegarder tous les jours à 3h du matin
0 3 * * * docker exec n8n-postgres pg_dump -U n8n n8n | gzip > /backups/n8n_$(date +\%Y\%m\%d).sql.gz
# Supprimer les backups de plus de 30 jours
0 4 * * * find /backups -name "n8n_*.sql.gz" -mtime +30 -delete
Restauration
gunzip < /backups/n8n_20260414.sql.gz | docker exec -i n8n-postgres psql -U n8n n8n
Mise à jour
docker compose pull
docker compose up -d
Vérifier les notes de version de n8n avant chaque mise à jour majeure.
Surveillance
Activer les métriques Prometheus et configurer Grafana :
- N8N_METRICS=true
Endpoint : https://n8n.votredomaine.com/metrics
FAQ
n8n auto-hébergement est-il vraiment gratuit ?
Oui, n8n est sous licence "Fair-code" (sustainable use). L'auto-hébergement est gratuit pour un usage interne. Seule l'utilisation d'n8n comme service commercial (SaaS) nécessite une licence payante. Tous les nodes intégrés sont disponibles sans limitation d'exécutions.
Quelles sont les différences entre n8n et Zapier ?
n8n offre un contrôle total sur les données (auto-hébergement), un nombre d'exécutions illimité, la possibilité de créer des nodes personnalisés en JavaScript, et un coût réduit au seul serveur. Zapier propose une interface plus aboutie mais limite les exécutions selon le plan et les données transitent par leurs serveurs.
Comment ajouter des nodes personnalisés ?
Créer un fichier JavaScript dans le dossier ~/.n8n/custom/ ou utiliser la variable NODE_FUNCTION_ALLOW_EXTERNAL. Pour des nodes complets, n8n propose un template de node personnalisé. Le node doit exporter une classe avec les méthodes execute et description.
Est-il possible de scalabilité horizontalement n8n ?
Oui, depuis la version 1.0, n8n supporte le mode "queue mode" avec Redis pour le scaling horizontal. Plusieurs instances n8n peuvent traiter les workflows en parallèle, idéal pour les charges élevées. La configuration requiert un broker de messages (Redis ou RabbitMQ).
Docker est-il obligatoire pour auto-héberger n8n ?
Non, n8n peut être installé directement avec Node.js (npm install -g n8n), mais Docker simplifie considérablement la gestion des dépendances, les mises à jour et l'isolation. Docker est la méthode recommandée par les mainteneurs et la communauté.
Publié le 14 avril 2026 par My Integration.