Installer n8n avec docker
n8n est un outil d’automatisation “no/low-code” qui te permet de connecter des services (Gmail, Notion, Slack, API HTTP, etc.) et d’enchaîner des actions via une interface visuelle.
Le plus simple pour l’auto-héberger proprement (et pouvoir le mettre à jour facilement), c’est Docker — et idéalement Docker Compose. n8n recommande d’ailleurs Docker pour la majorité des besoins de self-hosting.
🧠 Note version : au moment de la rédaction (22 janvier 2026), la doc affiche une version stable et une beta (ça évolue souvent).
Prérequis
- Un PC ou un serveur (Linux recommandé si tu veux l’exposer sur Internet)
- Docker + Docker Compose installés
- (Optionnel) Un nom de domaine si tu veux un accès HTTPS public
Option A — Démarrage rapide (1 commande Docker)
Parfait pour tester en local.
docker volume create n8n_data
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-e GENERIC_TIMEZONE="Europe/Paris" \
-e TZ="Europe/Paris" \
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
-e N8N_RUNNERS_ENABLED=true \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n
- n8n écoute sur le port 5678
- le volume n8n_data persiste la config, les clés, etc. (dossier ~/.n8n dans le conteneur)
On peut ensuite ouvrir le dashboard n8n sur http://localhost:5678
Option B — Docker Compose (recommandé)
Créer le dossier projet
mkdir n8n-compose
cd n8n-compose
Créer un fichier .env
Pour des raisons de sécurité, je recommande fortement de ne pas placer les secrets directement dans le fichier docker-compose. On peut ainsi protéger et restreindre l’accès au fichier .env
# Timezone
GENERIC_TIMEZONE=Europe/Paris
# (Optionnel mais recommandé) clé de chiffrement des credentials
# Génère-la : openssl rand -hex 32
N8N_ENCRYPTION_KEY=CHANGE_ME_LONG_RANDOM_SECRET
n8n chiffre les credentials avant de les sauvegarder en base, et peut générer une clé au premier lancement (stockée dans ~/.n8n). En production, c’est une bonne pratique de fixer ta clé via N8N_ENCRYPTION_KEY (et de la sauvegarder).
Créer le fichier docker-compose.yaml
On place la description de nos services ici
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- TZ=${GENERIC_TIMEZONE}
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
- N8N_RUNNERS_ENABLED=true
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
Lancer les services
docker compose up -d
docker compose logs -f n8n
Sécurité (important)
1) Mets à jour régulièrement (important)
Début janvier 2026, une vulnérabilité critique CVE-2026-21858 (surnom “Ni8mare”) a été publiée : elle affecte certaines versions et a été corrigée en 1.121.0. Si tu auto-héberges et exposes n8n, mets à jour vers une version corrigée (et idéalement la dernière stable).
2) N’expose pas n8n “en direct” si tu peux éviter
Si tu utilises un reverse proxy, bind le port n8n en localhost (127.0.0.1:5678:5678) et laisse le proxy gérer l’exposition (comme dans l’exemple de la doc).
3) Secrets : évite de les mettre en clair
n8n supporte le suffixe _FILE pour charger certaines variables depuis un fichier (pratique avec Docker secrets / Kubernetes secrets).
Exemple (idée): DB_POSTGRESDB_PASSWORD_FILE=/run/secrets/n8n_db_password
4) Options de durcissement utiles
La doc liste des variables “Security”, par exemple pour limiter l’accès à certains fichiers / variables d’environnement dans les nodes.
Tu peux maintenant créer tes premiers workflows (webhooks, Gmail, Notion, Slack, API HTTP…) et automatiser les tâches répétitives en quelques minutes. Dans un prochain article, je montrerai une stack plus complète (n8n + Postgres + reverse proxy + HTTPS) et quelques workflows “prêts à l’emploi” pour gagner du temps au quotidien (sauvegardes, reporting, alertes, etc.).
Lucas