N8N : déployer une plateforme d’automatisation avec Docker

Présentation de N8N

Avant de voir le déploiement de N8N avec Docker, je vais vous expliquer qu’est ce que N8N et à quoi sa sert !

N8N est une plateforme Open Source d’automatisation de Workflow, qui va nous permettre d’automatiser une suite de tâches ou d’opération à l’aide d’un interface Web, on va pouvoir faire des automatisations en « no code ».

D’après le site N8N, il existe 1031 intégration qui va permettre de créer des automatisations.

Si vous n’êtes pas familiarisé avec les automatisations, vous êtes entrain de vous dire et donc on peut faire quoi ??? A peu près tout et cela va dépendre de votre imagination

Voici quelques exemples concrets :

  • Il est possible de collecter les flux RSS d’un site internet et les poster automatiquement dans Matter/ Slack … ceci est pratique pour gérer la veille technologique
  • Votre entreprise dispose internet sous WordPress et vous souhaitez automatiser la publication sur les réseaux sociaux, N8N peut vous aider dans cette tâche.

On peut faire plein d’autre chose, car il est possible de créer des formulaires et ensuite de traiter leur soumission de façon automatique, comme enregistrer les résultats dans un fichiers Excel qui est sur Microsoft 365 ou traiter le formulaire pour créer une machine virtuelle dans Proxmox.

Il est aussi possible de se connecter à des bases de données (PostgreSQL MariaDB), le champ est possible est quasiment infinie …

Vous trouverez la liste des intégrations ici : https://n8n.io/integrations/

Il existe plusieurs version de N8N gratuite et payante et différents mode d’hébergement cloud ou en local.

Dans ce tutoriel, nous allons voir l’installation local de N8N Community à l’aide Docker.

Prérequis pour déployer N8N en local avec Docker

A minima, vous aurez besoin d’un serveur Linux avec Docker et docker compose d’installé.

Idéalement vous aurez également besoin d’un reverse proxy comme Nginx avec un certificat SSL qui peut être générer avec Let’s Encrypt si vous prévoyez d’utiliser des formulaires ou des Webhooks entrant sur N8N.

Déployer N8N avec Docker

Pour faciliter le déploiement de N8N, nous allons utiliser un fichier docker-compose.yml qui va contenir la configuration du conteneur et un fichier .env avec les différents paramètres.

Pour faciliter la tâche, vous trouverez les fichiers le dépôt ici : https://git.rdr-it.com/docker/n8n

A l’endroit souhaité sur votre serveur, cloner le dépôt :

sudo git clone https://git.rdr-it.com/docker/n8n.git .

Commencer par éditer le fichier .env

sudo nano .env

Modifier les variables qui contiennent n8n.domain.tld par l’url que vous allez utiliser puis modifier le mot de passe des comptes PostgreSQL et configurer le fuseau horaire.

Pour fonctionner correctement, il faut également éditer les droits du dossier n8n_storage :

sudo chmod 777 n8n_storage/ -R

Je ne suis pas fan de cette modification, mais sans cette modification de droit, le conteneur de n8n de démarre pas …

On va maintenant pouvoir télécharger les images :

sudo docker compose pull

On va maintenant démarrer les conteneurs et afficher les logs :

sudo docker compose up -d && sudo docker compose logs -f

Vérifier dans les logs qu’il n’y a pas d’erreur ou d’arrêt de conteneur.

Une fois que dans les logs s’affiche l’url de votre installation de N8N, le conteneur est démarré.

N8N est prêt.

Configuration du virtualhost pour Nginx

Maintenant, vous devez configurer votre reverse proxy pour accéder à N8N, sur le dépôt vous trouverez aussi la configuration pour Nginx.

Vous devez adapter le server dans la partie upstream pour le faire pointer vers votre serveur N8N.

Si vous n’avez pas de reverse proxy d’installer, vous pouvez très bien installer Nginx directement sur le serveur où fonctionne N8N.

Connexion à N8N

Depuis un navigateur Internet, aller à l’URL configurée, vous arrivez sur un formulaire qui va permettre de créer le premier utilisateur qui sera également administrateur de N8N.

Entrer votre adresse e-mail 1, prénom 2, nom 3 puis un mot de passe 4 et pour finir cliquer sur le bouton Next 5.

Un autre formulaire s’affiche pour collecter des informations sur votre environnement, cliquer sur Get started 1.

L’assistant vous propose de recevoir une clef de démo de la version payante, cliquer sur Skip 1.

Maintenant, nous sommes sur page d’accueil, qui affiche par défaut les Workflows configurés qui est vide pour le moment.

Dans la partie Credentials, on va retrouve les identifiants configurés pour les différents intégrations comme des clefs d’API.

Et dans la partie Executions, vous aurez les logs des différents Workflows qui ont été exécutés.

Je ne vais aborder la partie Administration, je vous laisse aller y faire un tour.

Création d’un Workflow

Je vais maintenant vous montrer comment créer un Workflow, comment exemple voici le workflow que je vais créer dans N8N.

Comme vous êtes fan de RDR-IT.com et que vous ne souhaitez pas louper la sortie d’un tutoriel, nous allons voir comment recevoir un email quand un nouveau tutoriel est publié. Pour cela nous allons récupérer le flux RSS du site et dès qu’un nouvel élément est ajouté au flux, envoyer un email avec l’aperçu du tutoriel.

Depuis les Workflows, cliquer sur Start form scratch 1 ou cliquer sur Create Workflow.

Cliquer sur Add first step 1

Dans la liste des déclencheurs (triggers) disponible, rechercher rss et cliquer sur RSS Feed Trigger 1.

Règle la fréquence de lecture du flux RSS 1 et entrer l’url du flux 2.

Cliquer ensuite sur Fetch Test Event 1 pour avoir un aperçu du retour 2 et pour finir cliquer sur Back to canvas 3.

Le déclencheur de notre Workflow est configuré, on va maintenant configurer l’envoie de l’e-mail. Cliquer sur le + 1 pour ajouter une action.

Dans la liste rechercher email 1 puis cliquer sur Send Email 2.

Cliquer ensuite sur l’action Send an Email 1.

Dans la configuration de l’action, on retrouve sur la partie de droite, l’exemple du flux RSS que l’on a récupéré, se placer dans Credential to connect et cliquer sur Create new credential 1.

Configurer les paramètres du serveur SMTP 1 et cliquer sur Save 2, si le test est bon fermer la fenêtre d’ajout de compte SMTP.

De retour à la configuration de l’action, commencer par configurer l’expéditeur 1 et le destinataire 2 du message.

On va maintenant configurer le sujet 1 et le message 2, pour cela on va faire des glisser déposés des éléments du flux RSS.

Maintenant cliquer sur Test step 1 afin de valider que tout fonctionne, vous devriez recevoir également un e-mail. Comme on peut le voir sur la partie de droite, on a l’ensemble des informations de la transaction SMTP.

Retourner au canva et cliquer sur Save 1.

Pour le moment le Workflow n’est pas actif, cliquer sur Inactive 1 pour changer le statut.

Confirmer l’activation en cliquant sur Go it 1.

Vous venez de créer votre premier Workflow dans N8N.

Depuis le tableau de bord, on retrouve le Workflow et les identifiants (Credentials) pour la configuration SMTP.


D’autres tutoriels vont suivre autour de N8N au nous verront d’autre Workflow.

Romain Drouche
Architecte Système | MCSE: Core Infrastructure
Expert en infrastructures IT avec plus de 15 ans d’expérience sur le terrain. Actuellement Chef de projet Systèmes et Réseaux et Référent SSI (Sécurité des Systèmes d’Information), je mets mon expertise au service de la fiabilité et de la sécurité des environnements technologiques.

Laisser un commentaire