Hostinger

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.

Interface de n8n

Inscrivez-vous !

S'inscrire dans n8n

Ensuite, on vous posera quelques questions. Vous n'êtes pas obligés d'y répondre.

Questions posées par n8n

Enfin, on va vous proposer une licence gratuite.

Licence proposée par n8n

Après toute ces étapes, l'interface qui vous permettra de créer un workflow dans n8n apparaîtra.

Créer un workflow dans n8n

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.

Connexion à n8n

Et ensuite, pour créer un nouveau workflow, cliquez sur le bouton Create workflow.

Creer un nouveau workflow dans n8n

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.

Créer un 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.

Paramétrer le noeud Schedule Trigger de n8n

La fréquence sera de 10 secondes ! 👍

Pour retourner à notre workflow, vous pouvez cliquez sur Back to canvas en haut à gauche.

Back to canva dans n8n

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.

Http Request dans n8n

Paramétrer HTTP Request

Nous allons également utiliser des paramètres pour bien configurer ce noeud.

Parametrer le noeud Http Request dans n8n

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.

Les options dans le HTTP Request de n8n
Activer les headers et les status de la réponse dans n8n

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.

Les settings dans n8n

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.

Workflow dans n8n : Schedule Trigger → HTTP Request

Sauvegarder

N'oubliez pas de sauvegarder grâce au bouton Save en haut à droite.

Sauvegarder le workflow avec n8n

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.

Page par défaut de Nginx avec http://localhost:3000

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.

Ajouter un If dans n8n