
L’exécution de n8n avec Docker est un moyen efficace d’auto-héberger cet outil d’automatisation des flux de travail. Contrairement à l’installation directe de n8n sur votre serveur privé virtuel (VPS), Docker offre un environnement conteneurisé qui isole n8n de votre système principal.
Cela facilite la mise à niveau ou la rétrogradation de vos versions n8n, l’adaptation de votre configuration pour accueillir davantage de flux de travail, et même la migration de votre instance n8n vers un autre serveur.
Dans cet article, vous apprendrez comment exécuter n8n à l’aide de Docker et Docker Compose. Cette méthode vous permet de définir le service n8n, les variables d’environnement et les dépendances (telles qu’une base de données) dans un seul fichier YAML.
Poursuivez votre lecture pour découvrir les instructions étape par étape pour installer, configurer, sécuriser et mettre à jour votre instance n8n à l’aide de Docker.
Pour auto-héberger n8n avec Docker, vous devez commencer par installer Docker et Docker Compose sur votre VPS. Ensuite, vous devez créer un fichier Docker Compose pour configurer votre service n8n. Enfin, vous devez exécuter le conteneur n8n à l’aide de la commande docker compose up -d.
Vous pouvez ensuite sécuriser votre configuration n8n avec SSL et un proxy inverse, modifier les variables d’environnement si nécessaire et mettre à jour n8n chaque fois qu’une nouveauté est disponible.
Les sections suivantes expliquent chaque étape plus en détail.
📚 Lecture recommandée
Si vous préférez installer n8n directement sur votre VPS, ne vous inquiétez pas. Nous avons un tutoriel dédié pour vous guider tout au long du processus.
1. Installer Docker et Docker Compose
Tout d’abord, assurez-vous que Docker est configuré sur votre serveur. À partir de la version 20.10.0 de Docker, Docker Compose est inclus par défaut en tant qu’extension, vous n’avez donc pas besoin de l’installer séparément.
Si vous utilisez l’hébergement VPS Docker de Hostinger, vous avez de la chance : Docker est préinstallé, vous pouvez donc ignorer cette étape.
Les utilisateurs disposant d’un plan VPS Hostinger standard peuvent toujours installer Docker via un template préconfiguré ou manuellement via la ligne de commande.
Si vous choisissez cette dernière option, vérifiez l’installation en exécutant la commande Linux suivante dans votre terminal :
docker -v
Cela affichera la version installée de Docker, comme ceci :

2. Préparer le répertoire de données n8n
Ensuite, créez des répertoires pour stocker les données et les fichiers de configuration de n8n. Exécutez la commande ci-dessous pour créer le répertoire principal de n8n et accédez-y :
mkdir ~/n8n && cd ~/n8n
Dans le répertoire nouvellement créé, créez un sous-répertoire appelé n8n_data pour stocker les données persistantes de n8n :
mkdir n8n_data
Définissez les droits d’accès corrects pour les données persistantes, ce qui est important lorsque vous exécutez n8n avec Docker :
sudo chown -R 1000:1000 n8n_data

3. Créer un fichier Docker Compose pour n8n
Après avoir préparé les répertoires pour n8n, créez un nouveau fichier Docker Compose pour configurer les paramètres de n8n, définir les variables d’environnement et spécifier les volumes nécessaires.
Vous pouvez le faire à l’aide de l’éditeur de texte nano :
sudo nano docker-compose.yml
Collez le contenu suivant, en remplaçant votreUtilisateur et votreMotDePasse par vos identifiants préférés :
services: n8n: image: n8nio/n8n ports: - "5678:5678" environment: - N8N_BASIC_AUTH_ACTIVE=true - N8N_BASIC_AUTH_USER=votreUtilisateur - N8N_BASIC_AUTH_PASSWORD=votreMotDePasse volumes: - ./n8n_data:/home/node/.n8n

Une fois terminé, enregistrez vos modifications et quittez nano en appuyant sur Ctrl + X → Y → Entrée.
4. Démarrer le conteneur n8n
Maintenant, exécutez le conteneur n8n avec cette commande :
docker compose up -d
Vous verrez le processus de démarrage du conteneur. Une fois terminé, il affichera des lignes telles que Created et Started, comme dans l’image ci-dessous :

Pour vérifier si votre conteneur n8n a démarré, ouvrez l’adresse suivante dans votre navigateur, en remplaçant votre_ip_vps par l’adresse IP de votre propre VPS :
http://votre_ip_vps:5678
Les clients VPS Hostinger peuvent trouver l’adresse IP de leur serveur dans hPanel en allant dans VPS → Gérer → Aperçu général → Informations du VPS.

Si vous voyez un avertissement d’erreur de cookie sécurisé comme dans l’image ci-dessous lorsque vous visitez l’adresse, ne vous inquiétez pas. Votre instance n8n est en fait en cours d’exécution. L’erreur se produit parce que SSL n’est pas configuré pour les connexions sécurisées, mais vous y remédierez à l’étape suivante.

5. Sécuriser n8n avec SSL et un proxy inverse NGINX
Pour accéder en toute sécurité à votre instance n8n via HTTPS, vous devez émettre un certificat SSL et configurer un proxy inverse.
Commencez par installer le serveur web NGINX sur votre VPS :
sudo apt install nginx -y
Arrêtez immédiatement le service NGINX de manière temporaire :
sudo systemctl stop nginx
Ensuite, installez Certbot pour obtenir votre certificat SSL :
sudo apt install certbot -y
Obtenez une version autonome du certificat SSL de Certbot. Remplacez votredomaine.tld par votre nom de domaine réel si vous l’avez redirigé vers votre VPS. Sinon, émettez un certificat SSL pour votre nom d’hôte :
sudo certbot certonly --standalone -d votredomaine.tld
Vous serez invité à saisir une adresse e-mail valide, à accepter les conditions d’utilisation et, si vous le souhaitez, à vous inscrire pour recevoir des e-mails promotionnels.
Une fois cela fait, redémarrez NGINX :
sudo systemctl start nginx
Ensuite, créez un fichier de configuration pour configurer le proxy inverse avec NGINX :
sudo nano /etc/nginx/sites-available/n8n
Dans le fichier, collez les détails de configuration ci-dessous. Remplacez votredomaine.tld par votre propre nom de domaine ou nom d’hôte.
server { listen 443 ssl; server_name votredomaine.tld; ssl_certificate /etc/letsencrypt/live/votredomaine.tld/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/votredomaine.tld/privkey.pem; location / { proxy_pass http://localhost:5678; 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; } } server { listen 80; server_name votredomaine.tld; return 301 https://$host$request_uri; }

Après avoir enregistré le fichier et quitté l’éditeur, exécutez cette commande pour activer la configuration :
sudo ln -sf /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/n8n
Testez la configuration NGINX pour vérifier qu’il n’y a pas d’erreurs :
sudo nginx -t
Rechargez le service NGINX pour appliquer les modifications :
sudo systemctl reload nginx
6. Accéder à votre instance n8n
Maintenant, accédez à votre instance n8n à l’aide du nom de domaine ou du nom d’hôte que vous avez précédemment configuré. Vous verrez la page d’inscription au compte propriétaire n8n, où vous pouvez vous inscrire avec vos identifiants préférés.

Ensuite, ouvrez le tableau de bord n8n pour commencer à créer des flux de travail automatisés. Vous pouvez consulter quelques exemples de workflows n8n pour trouver l’inspiration.
Si vous ne souhaitez pas partir de zéro, trouvez des templates n8n pour des solutions prêtes à l’emploi.
N’oubliez pas d’explorer les intégrations n8n pour voir ce que vous pouvez connecter, les outils à utiliser et les cas d’utilisation pour chaque intégration.
7. Modifier les variables d’environnement n8n
Lorsque vous gérez votre instance n8n, vous devrez peut-être modifier les variables d’environnement pour configurer les connexions à la base de données, activer l’authentification, intégrer des services tiers ou renforcer la sécurité.
Pour ce faire, retournez dans votre terminal et modifiez votre fichier Docker Compose :
sudo nano docker-compose.yml
Dans la section environment, ajoutez ou modifiez les paramètres de configuration de votre conteneur n8n. Voici quelques-unes des variables les plus couramment utilisées :
- N8N_ENCRYPTION_KEY – chiffre les identifiants dans la base de données pour plus de sécurité.
- N8N_ENCRYPTION_KEY=votreChaîneAléatoireSécurisée
- N8N_HOST, N8N_PORT, N8N_PROTOCOL – garantit que n8n génère des URL correctes, en particulier derrière un proxy inverse ou lors de l’utilisation de SSL.
- N8N_HOST=votredomaine.tld - N8N_PORT=5678 - N8N_PROTOCOL=https
- WEBHOOK_URL – définit l’URL publique pour les webhooks, ce qui est important si vous utilisez HTTPS ou un nom de domaine personnalisé.
- WEBHOOK_URL=https://votredomaine.tld
- DB_TYPE, DB_POSTGRESDB – vous permet d’utiliser PostgreSQL à la place du SQLite par défaut pour de meilleures performances et une meilleure évolutivité.
- DB_TYPE=postgresdb - DB_POSTGRESDB_HOST=votre_hôte_postgres - DB_POSTGRESDB_PORT=5432 - DB_POSTGRESDB_DATABASE=votre_nom_de_base_de_données - DB_POSTGRESDB_USER=votre_utilisateur_db - DB_POSTGRESDB_PASSWORD=votre_mot_de_passe_db
- TZ – définit le fuseau horaire pour n8n.
- TZ=UTC
Enregistrez le fichier une fois que vous avez apporté les modifications nécessaires.
Ensuite, exécutez la commande Docker suivante pour arrêter le conteneur n8n :
docker compose down
Relancez le conteneur avec les variables d’environnement mises à jour :
docker compose up -d

💡 Conseil de pro
Si vous souhaitez simplement redémarrer votre conteneur Docker n8n sans modifier le fichier Compose, utilisez plutôt la commande docker compose restart.
8. Mettre à jour n8n vers la dernière version
Vous devez mettre à jour régulièrement n8n vers la dernière version afin de minimiser les risques de sécurité et de profiter des nouveautés et améliorations.
Pour mettre à jour, commencez par récupérer la dernière image n8n depuis Docker Hub :
docker pull n8nio/n8n
Ensuite, redémarrez le conteneur n8n avec l’image mise à jour :
docker compose up -d

Quelles sont les meilleures pratiques pour gérer n8n avec Docker ?
Voici quelques bonnes pratiques pour gérer n8n avec Docker, dont certaines ont déjà été illustrées dans ce tutoriel :
- Montez les volumes Docker. Montez un répertoire hôte tel que ./n8n_data:/home/node/.n8n pour conserver les workflows, les identifiants et les données d’exécution en dehors du conteneur. Cela garantit que vos données survivent aux mises à jour, aux redémarrages ou à la recréation du conteneur.
- Configurez les variables d’environnement. Dans docker-compose.yml, définissez les clés API, les secrets webhook, les identifiants de base de données et autres données sensibles en tant que variables d’environnement. Cela permet de garder les secrets hors des workflows et du code source, ce qui améliore la sécurité et simplifie la rotation des clés.
- Sécurisez l’accès. Activez toujours l’authentification de base (N8N_BASIC_AUTH_ACTIVE=true) et utilisez des noms d’utilisateur et des mots de passe forts. Pour sécuriser les communications, placez n8n derrière un proxy inverse tel que NGINX avec SSL afin que toutes les données, y compris les identifiants, soient cryptées et ne soient pas envoyées en texte clair.
- Effectuez des sauvegardes régulières. Sauvegardez périodiquement le dossier hôte mappé à /home/node/.n8n, et non le chemin interne du conteneur. Pour un conteneur en cours d’exécution, utilisez la commande ci-dessous :
docker cp n8n:/home/node/.n8n /chemin/vers/dossier/de/sauvegarde
- Définissez des limites de ressources. Dans votre fichier docker-compose.yml, définissez des limites de CPU et de mémoire pour empêcher n8n de surutiliser les ressources de votre VPS. Par exemple :
deploy: resources: limits: cpus: '1' memory: 1G
- Surveillez les journaux et les performances. Exécutez docker compose logs n8n pour consulter les journaux et résoudre les problèmes. Pour une surveillance continue, envisagez d’intégrer un système tel que la pile LGTM afin de recevoir des alertes en cas de panne ou de dysfonctionnement de n8n.
Pourquoi Hostinger est-il le meilleur moyen d’héberger votre configuration Docker n8n ?
Docker rend l’auto-hébergement de n8n facile et flexible en fournissant un environnement portable et cohérent sur tous les systèmes. Mais pour qu’il fonctionne de manière fiable 24 heures sur 24, 7 jours sur 7, vous ne pouvez pas compter sur votre machine personnelle : vous avez besoin d’un VPS.
Un VPS fonctionne en continu, ce qui permet à vos flux de travail de rester actifs même lorsque votre ordinateur est éteint ou déconnecté. Il vous permet également d’accéder à n8n et de le gérer en toute sécurité depuis n’importe où, et pas seulement depuis votre réseau local.
Le VPS Docker de Hostinger est un excellent choix pour l’auto-hébergement d’applications conteneurisées telles que n8n. Docker et tous les composants requis sont préinstallés, vous pouvez donc déployer n8n rapidement sans configuration supplémentaire.
Nous proposons plusieurs data centers dans différentes régions, vous pouvez donc choisir un serveur plus proche de vous pour une latence minimale. De plus, grâce à la garantie de disponibilité de 99,9 % de Hostinger, vos flux de travail automatisés restent en ligne de manière fiable 24 heures sur 24.
À partir de €4.99/mois, nos offres VPS Docker comprennent jusqu’à 8 cœurs vCPU, 32 Go de RAM et 400 Go de stockage NVMe. Vous pouvez commencer modestement et passer à une offre supérieure en quelques clics seulement à mesure que vos besoins en automatisation augmentent.
La sécurité est une priorité, avec des sauvegardes automatiques, une protection DDoS avancée et un scanner de logiciels malveillants pour protéger vos données, bloquer les attaques et éviter toute perturbation de votre configuration n8n.

Quelle est la prochaine étape après l’auto-hébergement de n8n avec Docker ?
L’auto-hébergement de n8n avec Docker vous offre un contrôle total, une flexibilité et une évolutivité pour l’automatisation de votre flux de travail. Il vous permet d’utiliser un outil d’automatisation puissant selon vos propres conditions, de manière sécurisée, fiable et avec une marge de progression.
Au fur et à mesure que vous continuez à développer et à gérer votre configuration n8n, voici ce que vous pouvez faire ensuite :
- Explorez des idées d’automatisation. Vous pouvez explorer des idées d’automatisation avec n8n pour vous inspirer et simplifier les tâches répétitives.
- Faites évoluer votre configuration n8n. Déployez une pile Docker pour faire évoluer n8n sur plusieurs serveurs et gérer les services dans un cluster swarm.
- Sécurisez votre serveur. Suivez les meilleures pratiques de sécurité VPS, telles que la modification du port SSH, la désactivation de la connexion root et la configuration d’un pare-feu, afin de protéger votre instance n8n.
- Utilisez n8n avec MCP. Exposez vos workflows à des agents IA et activez l’automatisation contextuelle en intégrant n8n au protocole de contexte de modèle (MCP).
Si vous avez encore des questions sur l’exécution et la gestion de n8n avec Docker, n’hésitez pas à laisser un commentaire ci-dessous.