N8N - Workflow Automation

Automatisation no-code - BTS SIO SISR

Objectif

Déployer la plateforme N8N pour créer des workflows d'automatisation (intégration d'APIs, traitement de données, notifications) avec une interface visuelle no-code/low-code.

Prérequis

Qu'est-ce que N8N ?

N8N (prononcé "n-eight-n") est une plateforme open-source d'automatisation de workflows. Alternative à Zapier, Integromat (Make) ou Microsoft Power Automate, elle permet de connecter des services via des "nodes" (nœuds) sans écrire de code.

Cas d'usage

Installation via Docker

Étape 1 : Installation de Docker

sudo apt update
sudo apt install docker.io docker-compose -y

# Activer Docker au boot
sudo systemctl enable docker
sudo systemctl start docker

# Vérification
docker --version

Étape 2 : Lancement de N8N en mode simple

docker run -it --rm \
 --name n8n \
 -p 5678:5678 \
 -v ~/.n8n:/home/node/.n8n \
 n8nio/n8n
Info : N8N sera accessible sur http://ip_serveur:5678

Étape 3 : Installation avec Docker Compose (production)

Créer un répertoire de travail :

mkdir ~/n8n-docker
cd ~/n8n-docker

Créer le fichier docker-compose.yml :

nano docker-compose.yml

Contenu :

version: '3.8'

services:
 n8n:
 image: n8nio/n8n:latest
 container_name: n8n
 restart: unless-stopped
 ports:
 - "5678:5678"
 environment:
 - N8N_BASIC_AUTH_ACTIVE=true
 - N8N_BASIC_AUTH_USER=admin
 - N8N_BASIC_AUTH_PASSWORD=MotDePasseSecurise123
 - N8N_HOST=192.168.1.100
 - N8N_PORT=5678
 - N8N_PROTOCOL=http
 - WEBHOOK_URL=http://192.168.1.100:5678/
 volumes:
 - ./n8n_data:/home/node/.n8n
Important : Remplacer 192.168.1.100 par l'IP réelle de votre serveur et MotDePasseSecurise123 par un mot de passe fort.

Étape 4 : Lancement

# Démarrer N8N
docker-compose up -d

# Vérifier les logs
docker-compose logs -f n8n

Accès à l'Interface Web

  1. Ouvrir un navigateur
  2. Aller sur http://192.168.1.100:5678
  3. Connexion avec :
    • Utilisateur : admin
    • Mot de passe : MotDePasseSecurise123

Exemple de Workflow Simple

Scénario : Notification Discord lors d'un nouvel utilisateur GLPI

Étape 1 : Créer un nouveau workflow

  1. Cliquer sur "New Workflow"
  2. Donner un nom : "GLPI → Discord"

Étape 2 : Ajouter un trigger Webhook

  1. Cliquer sur "+"
  2. Chercher "Webhook"
  3. Sélectionner "Webhook"
  4. Méthode HTTP : POST
  5. Path : /glpi-user
  6. Copier l'URL générée (ex: http://192.168.1.100:5678/webhook/glpi-user)

Étape 3 : Ajouter une action Discord

  1. Cliquer sur "+" après Webhook
  2. Chercher "Discord"
  3. Sélectionner "Discord"
  4. Authentification : créer un webhook Discord :
    • Discord → Paramètres salon → Intégrations → Webhooks
    • Créer un webhook, copier l'URL
  5. Webhook URL : coller l'URL Discord
  6. Message : utiliser les variables du webhook GLPI
    Nouvel utilisateur créé : {{ $json["name"] }} - Email : {{ $json["email"] }}

Étape 4 : Activer le workflow

  1. Cliquer sur "Save"
  2. Activer le toggle "Active" en haut à droite

Étape 5 : Tester

Depuis un terminal :

curl -X POST http://192.168.1.100:5678/webhook/glpi-user \
 -H "Content-Type: application/json" \
 -d '{"name":"Jean Dupont","email":"[email protected]"}'

Vérifier la réception du message sur Discord.

Sécurisation avec HTTPS

Avec Nginx Reverse Proxy

sudo apt install nginx certbot python3-certbot-nginx -y

Créer le fichier /etc/nginx/sites-available/n8n :

server {
 listen 80;
 server_name n8n.grp3.local;

 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;
 
 # WebSocket support
 proxy_http_version 1.1;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "upgrade";
 }
}
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

# Certificat SSL Let's Encrypt
sudo certbot --nginx -d n8n.grp3.local

Modifier docker-compose.yml :

 environment:
 - N8N_PROTOCOL=https
 - N8N_HOST=n8n.grp3.local
 - WEBHOOK_URL=https://n8n.grp3.local/
docker-compose down
docker-compose up -d

Commandes Utiles

Gestion du conteneur

# Voir les logs en temps réel
docker-compose logs -f n8n

# Redémarrer
docker-compose restart n8n

# Arrêter
docker-compose down

# Mise à jour de N8N
docker-compose pull
docker-compose up -d

Backup des workflows

# Les workflows sont dans SQLite
sudo cp -r ~/n8n-docker/n8n_data ~/backup_n8n_$(date +%Y%m%d)

Nodes Populaires

Points Clés pour l'Oral BTS

Limite BTS :
N8N présenté ici est configuré en HTTP avec Basic Auth. En production, imposer HTTPS + authentification OAuth2/SAML + isolation réseau.