Aller au contenu Skip to main content

Installation et Guide n8n

n8n (prononcé “n-eight-n”) est un outil d’automatisation de workflow extensible qui permet de connecter des applications, des bases de données et des services via une interface visuelle intuitive. Contrairement à d’autres plateformes iPaas, n8n est “fair-code” et peut être hébergé sur vos propres serveurs.

Méthodes d’Installation

1. Installation sur un serveur Debian

Cette méthode nécessite un serveur avec Debian (11 ou 12 recommandés).

Prérequis

Installation de Node.js (version 18.x ou 20.x recommandée).

Fenêtre de terminal
# Mettre à jour les paquets
sudo apt update && sudo apt upgrade -y
# Installer curl si nécessaire
sudo apt install curl -y
# Ajouter le repo NodeSource pour Node.js 20
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
# Installer Node.js et les outils de compilation
sudo apt install -y nodejs build-essential

Installer n8n

Une fois Node.js installé, vous pouvez installer n8n globalement via npm :

Fenêtre de terminal
sudo npm install n8n -g

Démarrer n8n

Pour tester l’installation :

Fenêtre de terminal
n8n start

Pour une utilisation en production, il est recommandé d’utiliser un gestionnaire de processus comme PM2 :

Fenêtre de terminal
# Installer PM2
sudo npm install pm2 -g
# Démarrer n8n avec PM2
pm2 start n8n
# Configurer le lancement au démarrage
pm2 startup
pm2 save

2. Installation via Docker

C’est souvent la méthode la plus simple et la plus propre pour tester ou déployer n8n.

Commande rapide

Pour lancer n8n directement (les données seront perdues à l’arrêt du conteneur si pas de volume) :

Fenêtre de terminal
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
docker.n8n.io/n8nio/n8n

Avec Docker Compose (Recommandé)

Créez un fichier docker-compose.yml :

version: '3.8'
volumes:
n8n_storage:
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- '5678:5678'
environment:
- N8N_HOST=mon-domaine.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://mon-domaine.com/
- GENERIC_TIMEZONE=Europe/Paris
volumes:
- n8n_storage:/home/node/.n8n

Lancer le conteneur :

Fenêtre de terminal
docker-compose up -d

3. Installation sur Kubernetes

Pour Kubernetes, la méthode recommandée est d’utiliser le chart Helm officiel.

Ajouter le repo Helm

Fenêtre de terminal
helm repo add n8n https://carlos-wieland.github.io/n8n-charts
# Ou utiliser le repo communautaire si besoin, vérifiez toujours la source officielle

Note : À date, n8n ne maintient pas de chart Helm “officiel” strict mais recommande des configurations standards. Voici un exemple de déploiement basique via un fichier YAML.

Créez un fichier n8n-deployment.yaml :

apiVersion: apps/v1
kind: Deployment
metadata:
name: n8n
labels:
app: n8n
spec:
replicas: 1
selector:
matchLabels:
app: n8n
template:
metadata:
labels:
app: n8n
spec:
containers:
- name: n8n
image: docker.n8n.io/n8nio/n8n
ports:
- containerPort: 5678
env:
- name: N8N_HOST
value: 'n8n.cluster.local'
- name: WEBHOOK_URL
value: 'https://n8n.example.com/'
volumeMounts:
- name: storage
mountPath: /home/node/.n8n
volumes:
- name: storage
persistentVolumeClaim:
claimName: n8n-pvc
---
apiVersion: v1
kind: Service
metadata:
name: n8n
spec:
selector:
app: n8n
ports:
- protocol: TCP
port: 80
targetPort: 5678

Appliquer la configuration :

Fenêtre de terminal
kubectl apply -f n8n-deployment.yaml
# (Assurez-vous d'avoir créé le PVC et l'Ingress correspondant)

Configuration

La configuration de n8n se fait principalement via des variables d’environnement. Voici les plus importantes :

VariableDescription
N8N_ basic_AUTH_ACTIVEActiver l’authentification basique (true/false).
N8N_BASIC_AUTH_USERNom d’utilisateur pour l’auth basique.
N8N_BASIC_AUTH_PASSWORDMot de passe pour l’auth basique.
WEBHOOK_URLL’URL publique de votre instance. Crucial pour les webhooks.
DB_TYPEType de base de données (sqlite par défaut, postgresdb, mariadb, mysqldb).
EXECUTIONS_PROCESSMode d’exécution (main ou own). own est recommandé pour la stabilité.

Si vous utilisez PostgreSQL (recommandé pour la production) :

Fenêtre de terminal
export DB_TYPE=postgresdb
export DB_POSTGRESDB_DATABASE=n8n
export DB_POSTGRESDB_HOST=localhost
export DB_POSTGRESDB_PORT=5432
export DB_POSTGRESDB_USER=n8n
export DB_POSTGRESDB_PASSWORD=motdepasse

Prise en main rapide

Une fois n8n installé et démarré, ouvrez votre navigateur sur http://localhost:5678 (ou votre domaine).

1. Créer un compte propriétaire

Lors du premier lancement, vous devrez configurer le compte administrateur (email et mot de passe).

2. Votre premier Workflow : “Hello World” Cron

Objectif : Écrire “Bonjour” dans la console toutes les minutes.

  1. Cliquez sur “Add workflow” en haut à droite.
  2. Cliquez sur le bouton + (Add Node).
  3. Recherchez Schedule (ou Cron). Sélectionnez le trigger “Schedule”.
    • Laissez la configuration par défaut (Interval: 1 minute).
  4. Cliquez sur le petit + à droite du nœud Schedule pour ajouter un nœud suivant.
  5. Recherchez Code (anciennement Function).
    • Dans le code JavaScript, mettez :
      console.log('Bonjour le monde !');
      return items;
  6. Cliquez sur Execute Workflow en bas pour tester.
  7. Activez le workflow en haut à droite (Active).

3. Utiliser un Webhook

C’est la force de n8n : réagir à des événements externes.

  1. Ajoutez un nœud Webhook.
  2. Définissez la méthode HTTP (GET ou POST).
  3. Copiez l’URL de test (Test URL).
  4. Ouvrez un nouvel onglet et collez l’URL.
  5. Revenez sur n8n, vous verrez les données de l’appel apparaître instantanément dans l’éditeur.

Prochaines étapes

  • Explorez les Templates (menu de gauche) pour voir des exemples complexes.
  • Connectez vos services (Google Sheets, Slack, Discord, Email).
  • Sécurisez votre instance avec HTTPS (via Reverse Proxy Nginx ou Traefik).