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