Comment installer et utiliser n8n avec Docker ?
Qu'est-ce que n8n ?
n8n est une plateforme d’automatisation open-source qui permet de créer des workflows visuels pour connecter des applications et automatiser des tâches répétitives.
Dans n8n, un workflow est un ensemble d’actions automatisées, reliées entre elles, qui s’exécutent dans un ordre défini pour accomplir une tâche précise.
Grâce à son interface graphique et à ses nombreux « nodes » intégrés, n8n facilite l’intégration entre des services web, des bases de données, des APIs et des outils internes.
Lorsqu’il est associé à Docker, n8n devient particulièrement simple à installer, à maintenir et à mettre à jour.
Installer n8n !
Vérifier que Docker est bien installé
Pour commencer à utiliser Docker pour installer n8n, il faut vérifier d’abord que Docker est bien installé sur votre ordinateur.
docker -v
Si Docker est installé, un numéro de version devrait apparaître :
Docker version 28.5.1, build e180ab8
Utiliser un compose.yml
Maintenant que nous sommes certains que Docker est bien installé, nous pouvons créer le fichier compose.yml.
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
ports:
- "5678:5678"
environment:
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
- N8N_SECURE_COOKIE=false
volumes:
- ./data:/home/node/.n8n
restart: unless-stopped
Nous utilisons une variable d'environnement qu'il nous faut définir dans un fichier .env que nous allons créer.
GENERIC_TIMEZONE=Europe/Paris
Comprendre le contenu du fichier compose.yml
Nous allons principalement expliquer le contenu de la partie environment.
GENERIC_TIMEZONE
C'est le fuseau horaire utilisé par n8n.
N8N_SECURE_COOKIE
Cette option désactive la sécurité du cookie. C'est utile quand on utilise n8n sans HTTPS. Ce qui est le cas ! 😉
Ouvrir n8n
On peut maintenant utiliser la commande docker-compose.
Dans le dossier du projet, tapez la commande suivante :
docker-compose up
On nous indique, que nous pouvons utiliser l'URL http://localhost:5678 !
n8n | [license SDK] Skipping renewal on init: license cert is not initialized
n8n | Version: 1.118.2
n8n |
n8n | Editor is now accessible via:
n8n | http://localhost:5678
Tapez donc cette URL dans un navigateur.
Inscrivez-vous !
Ensuite, on vous posera quelques questions. Vous n'êtes pas obligés d'y répondre.
Enfin, on va vous proposer une licence gratuite.
Après toute ces étapes, l'interface qui vous permettra de créer un workflow dans n8n apparaîtra.
Utiliser n8n !
Se connecter à notre compte
Si vous avez été déconnecté, reconnectez-vous en entrant votre adresse e-mail et votre mot de passe.
Et ensuite, pour créer un nouveau workflow, cliquez sur le bouton Create workflow.
Qu'allons nous faire ?
Nous allons créer un workflow avec n8n qui permettra à cet outil de vérifier si un site est toujours en marche ou s'il est en panne.
1 - Schedule Trigger
Nous allons commencer par créer un Trigger.
Un Trigger est un noeud déclencheur qui démarre automatiquement un workflow lorsqu'un événement se produit.
Ajouter Schedule Trigger
Nous allons utiliser Schedule Trigger pour définir la fréquence à laquelle le workflow devra se lancer automatiquement.
Pour cela, cliquez sur Add first step ... au centre et choisissez Schedule Trigger.
Paramétrer Schedule Trigger
En cliquant sur Schedule Trigger, vous accéderez à plusieurs paramètres liés à ce noeud. Ici, il faut juste définir la fréquence.
La fréquence sera de 10 secondes ! 👍
Pour retourner à notre workflow, vous pouvez cliquez sur Back to canvas en haut à gauche.
Notre premier noeud a été créé.
2 - HTTP Request
Ajouter HTTP Request
Maintenant, nous allons utiliser HTTP Request qui est un noeud de type Action, utilisé, entre autres, pour effectuer un appel HTTP à un site internet ou à une API.
Paramétrer HTTP Request
Nous allons également utiliser des paramètres pour bien configurer ce noeud.
Nous avons définit la méthode GET et insérer une URL :
http://nginx
Pourquoi cette URL ? Vous le comprendrez plus tard !
Nous devons également cliquez sur Add option pour activer une option qui ne sera utile.
Nous demandons à n8n d'inclure dans la réponse les Headers et les Status car nous en aurons besoin.
Maintenant, cliquez sur Settings en haut et activez l’option qui permet au flux de continuer en cas d’erreur, car nous devons gérer ces erreurs.
Lorsque toutes ces options ont été activés, retournez à votre workflow (grâce à Back to canva).
⚠️ Veuillez vous assurer que toutes les options sont activées, sinon notre workflow ne fonctionnera pas correctement.
Sauvegarder
N'oubliez pas de sauvegarder grâce au bouton Save en haut à droite.
Simuler le site internet http://nginx avec Docker
Dans les paramètres de HTTP Request, nous avons indiqué l'URL http://nginx pour simuler un site internet. Nous aurions très bien pu mettre le nom de domaine d'un vrai site internet. Mais puisque l'objectif de ce workflow est de vérifier si un site est toujours en marche ou s'il est en panne, il nous faut pouvoir le « mettre en panne ».
Nous allons donc ajouter un conteneur nginx dans notre compose.yml.
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
ports:
- "5678:5678"
environment:
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
- N8N_SECURE_COOKIE=false
volumes:
- ./data:/home/node/.n8n
nginx:
image: nginx:alpine
container_name: nginx-site
ports:
- "3000:80"
On arrête et on redémarré grâce à la commande suivant :
docker compose down && docker compose up
Maintenant, si nous utilisons http://localhost:3000 la page par défaut du serveur web Nginx devrait apparaître.
Donc, nous avons un site pour nos tests. 👍
3 - If
Ajouter If
Ajoutons un autre noeud appelé If. Il permet de vérifier une condition et d’orienter le flux en fonction du résultat.
