Installer n8n avec Docker Compose (HTTPS + persistance + files d’attente)
Objectif : déployer n8n proprement en production avec HTTPS, données persistantes, et une base prêvous pour évoluer (option queues/workers).
Prérequis
- Un serveur Linux (Debian/Ubuntu), 2 vCPU / 2–4 Go RAM minimum
- Un nom de domaine (ex:
example.com) et un sous-domaine (ex:n8n.example.com) - Docker + Docker Compose installés
1) DNS : pointer le sous-domaine vers le serveur
Crée un enregistrement DNS A :
- Nom :
n8n(ou ce que vous voulez) - Type : A
- Valeur : IP publique de votre serveur
Attends la propagation DNS (souvent 1–30 min).
2) Créer le dossier projet
Sur le serveur :
mkdir -p ~/n8n-compose && cd ~/n8n-compose
mkdir -p local-files
local-files sert à échanger des fichiers entre n8n et le serveur (nœud Read/Write Files).
3) Créer le fichier .env
Crée un fichier .env :
# Domaine où n8n sera accessible
DOMAIN_NAME=example.com
SUBDOMAIN=n8n
# Timezone
GENERIC_TIMEZONE=Europe/Paris
# Email utilisé par Let’s Encrypt
[email protected]
4) Docker Compose (HTTPS via Traefik + persistance)
Crée compose.yaml :
services:
traefik:
image: traefik
restart: always
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
- "--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}"
- "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- traefik_data:/letsencrypt
- /var/run/docker.sock:/var/run/docker.sock:ro
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "127.0.0.1:5678:5678"
labels:
- traefik.enable=true
- traefik.http.routers.n8n.rule=Host(`${SUBDOMAIN}.${DOMAIN_NAME}`)
- traefik.http.routers.n8n.tls=true
- traefik.http.routers.n8n.entrypoints=web,websecure
- traefik.http.routers.n8n.tls.certresolver=mytlschallenge
- traefik.http.middlewares.n8n.headers.SSLRedirect=true
- traefik.http.middlewares.n8n.headers.STSSeconds=315360000
- traefik.http.middlewares.n8n.headers.browserXSSFilter=true
- traefik.http.middlewares.n8n.headers.contentTypeNosniff=true
- traefik.http.middlewares.n8n.headers.forceSTSHeader=true
- traefik.http.middlewares.n8n.headers.SSLHost=${DOMAIN_NAME}
- traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true
- traefik.http.middlewares.n8n.headers.STSPreload=true
- traefik.http.routers.n8n.middlewares=n8n@docker
environment:
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- N8N_RUNNERS_ENABLED=true
- NODE_ENV=production
- WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
- TZ=${GENERIC_TIMEZONE}
volumes:
- n8n_data:/home/node/.n8n
- ./local-files:/files
volumes:
n8n_data:
traefik_data:
Points importants :
127.0.0.1:5678:5678: n8n n’est pas exposé directement, c’est Traefik qui publie en HTTPSn8n_data: conserve la base SQLite + clé de chiffrement par défautN8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true: évite des erreurs de permissions sur la config
5) Démarrer les conteneurs
docker compose up -d
Vérifier :
docker compose ps
docker compose logs -f
Accède ensuite à :
https://n8n.example.com
vous verras l’écran de création du premier compte admin.
6) Persistance & sauvegardes : ce qu’il faut retenir
Par défaut (compose ci-dessus), n8n stocke ses données dans le volume :
n8n_data→/home/node/.n8n(workflows, creds, exécutions, clé de chiffrement)
Recommandation :
- sauvegarder régulièrement ce volume (snapshot + export)
- si vous passes en PostgreSQL (recommandé si beaucoup de workflows), sauvegarder la DB aussi
7) Option production : PostgreSQL + Redis (queues/workers)
Si vous voulez tenir la charge (beaucoup d’exécutions, parallélisme, fiabilité), la structure la plus courante :
- n8n + PostgreSQL (DB)
- Redis + mode queue (un ou plusieurs workers)
Exemple (approche simple)
- 1 service
postgres(volume persistant) - 1 service
redis - 1 service
n8n(editor + webhook) - 1+ service(s)
n8n-worker
Ensuite, vous actives les variables n8n correspondantes (selon votre version) pour :
- DB Postgres (
DB_TYPE=postgresdb+ host/user/pass) - Redis / queue
Si vous voulez, je vous fournis un compose.yaml complet “editor + workers + redis + postgres” calé sur votre version exacte de n8n.
8) Checklist sécurité minimale
- HTTPS obligatoire (ok via Traefik)
- Firewall : n’ouvrir que 80/443
- Mettre à jour Docker + images régulièrement
- Sauvegardes (volumes + DB si Postgres)
- Restreindre l’accès à l’UI (IP allowlist / SSO / VPN) si usage interne
9) Dépannage rapide
- Certificat Let’s Encrypt ne sort pas : DNS pas propagé / port 80 bloqué
- Webhooks KO : vérifier
WEBHOOK_URL - Problèmes de fichiers : vérifier
/fileset permissions
Vidéo (FR)
- https://youtu.be/p36-dGwrrb4
Images (CDN)
- Schéma “n8n + reverse proxy + volumes” : https://cdn.adgents.cloud/media/blog/installer-n8n-docker-compose/diagrams/compose-architecture.svg
- Illustration “dashboard/hosting” : https://cdn.adgents.cloud/media/blog/installer-n8n-docker-compose/diagrams/compose-architecture.svg
CTA — Héberger n8n sans prise de têvous
Envie d’éviter les nuits à débugger SSL/volumes/backups ?
- Voir l’app : /applications/n8n
- Essayer gratuitement
Avec adgents.cloud :
- Déploiement en 1 clic
- Facturation à l’heure
- Stop/Start (compute non facturé à l’arrêt ; stockage conservé)
- Backups automatiques (toutes les 24h par défaut, jusqu’à 1/h)
- Rétention longue (jusqu’à 10 ans)
- Scaling CPU/RAM à la demande
Sources (structure/intent alignés) :
- https://docs.n8n.io/hosting/installation/server-setups/docker-compose/
- https://www.it-connect.fr/tuto-installer-n8n-avec-docker-sur-linux/
- https://dynops.fr/installer-n8n-avec-docker-compose-en-2-minutes/
Lancez-vous avec n8n.
Envie de vous lancer avec n8n ? Créez votre site web en quelques clics.
n8n
Automation sans limites
Aller plus loin
Essayer sur Adgents.cloud
Envie d’un déploiement propre sans passer des heures sur l’infra ? Sur Adgents.cloud, vous pouvez :
- déployer en 1 clic
- être facturé à l’heure
- utiliser stop/start (compute non facturé �� l’arrêt)
- activer des backups automatiques (24h par défaut, jusqu’à 1/h)
- garder une rétention longue (jusqu’à 10 ans)
- ajuster le scaling CPU/RAM à la demande

