Comment installer N8N
En 2025, les agents d'intelligence artificielle restent l'une des approches les plus prometteuses pour résoudre des tâches complexes à l'aide de grands modèles linguistiques. Ces agents sont autonomes et capables de sélectionner eux-mêmes divers outils pour accomplir les tâches qui leur sont confiées. Cette approche permet d'obtenir des résultats avec moins d'implication humaine et une meilleure qualité. Elle ouvre également la voie à la découverte de méthodes plus originales et plus efficaces pour traiter les problèmes.
Au lieu de simplement formuler une tâche, vous demandez au réseau neuronal de la résoudre de manière autonome, en fonction des ressources qui lui sont allouées. Toutefois, pour que ce système fonctionne, il faut un mécanisme qui relie les interfaces des réseaux neuronaux à divers outils, qu'il s'agisse d'une recherche sur le web ou d'une base de données vectorielles pour le stockage des résultats intermédiaires.
n8n est une plateforme d'automatisation qui prend en charge l'intégration de divers réseaux neuronaux et services publics. Les utilisateurs peuvent concevoir visuellement la manière dont les données seront traitées et le résultat final à obtenir. Contrairement aux solutions classiques sans code, n8n permet d'inclure du code arbitraire à n'importe quelle étape du processus, ce qui est particulièrement utile lorsque les fonctionnalités intégrées ne sont pas suffisantes.
Le résultat est un système qui combine la simplicité de l'absence de code avec la flexibilité de la programmation traditionnelle. Cependant, pour bien le comprendre, vous devrez passer du temps à explorer et à examiner des exemples de flux de travail pour une meilleure compréhension. Dans cet article, nous allons vous expliquer comment déployer n8n sur les serveurs LeaderGPU.
Préparation du serveur
Mise à jour du système
Mettre à jour la liste des paquets et mettre à niveau tous les paquets installés :
sudo apt update && sudo apt -y upgrade
Installez automatiquement le pilote NVIDIA® recommandé (propriétaire) ou utilisez notre guide pas à pas Installer les pilotes NVIDIA® sous Linux:
sudo ubuntu-drivers autoinstall
Redémarrez le serveur :
sudo shutdown -r now
Installer Docker
Vous pouvez utiliser le script d'installation officiel :
curl -sSL https://get.docker.com/ | sh
Ajoutons la clé GPG du NVIDIA® container toolkit et le dépôt pour l'intégration de Docker :
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
Mettez à jour la liste des paquets et installez le NVIDIA® container toolkit :
sudo apt update && sudo apt -y install nvidia-container-toolkit
Redémarrez Docker pour appliquer les changements et activer le toolkit installé :
sudo systemctl restart docker
Installer n8n
Pour permettre au système de stocker des données, vous devez créer un volume avant de lancer le conteneur :
sudo docker volume create n8n_data
Lançons maintenant un conteneur qui ouvrira le port 5678 pour les connexions externes et montera le volume n8n_data créé dans le répertoire /home/node/.n8n à l'intérieur du conteneur :
sudo docker run -d --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
La première fois que vous lancerez l'application, vous serez peut-être surpris par le message d'erreur suivant :
Il ne s'agit pas vraiment d'une erreur, mais plutôt d'un avertissement sur la manière de configurer correctement le système pour l'accès. Le problème est que, par défaut, le système ne dispose pas d'un certificat TLS/HTTPS. Sans ce certificat, la connexion ne sera pas sécurisée. Vous avez donc trois options :
- Connect your own certificate. Vous pouvez le faire en spécifiant les chemins d'accès aux fichiers de certificat via des variables d'environnement, ou en configurant un serveur proxy inverse.
- Create an SSH tunnel and forward port 5678 Pour ce faire, vous pouvez utiliser le nom de l'hôte local sur l'ordinateur à partir duquel vous vous connectez. De cette manière, vous obtiendrez immédiatement une connexion personnelle sécurisée. Cependant, personne d'autre ne pourra accéder au serveur de manière externe.
- Bypass the warning. S'il s'agit d'un serveur de test qui n'est pas destiné à être utilisé en production et que vous ne vous souciez pas de la sécurité, vous pouvez désactiver l'avertissement en définissant la variable d'environnement N8N_SECURE_COOKIE à FALSE. Cette pratique est fortement déconseillée car elle rend le serveur vulnérable à des attaques potentielles. Néanmoins, cela peut être acceptable dans certains cas.
Cet article explorera chaque option en détail afin que vous puissiez choisir la bonne.
Connexion au serveur
Si vous n'avez pas encore de certificat SSL, nous vous recommandons d'en commander un sur LeaderSSL. Il peut être utilisé pour n'importe quel site web, magasin en ligne ou pour vérifier l'authenticité d'un courriel.
Utilisation des variables d'environnement
La manière la plus simple de configurer HTTPS est de télécharger votre certificat sur le serveur et de le spécifier via les variables d'environnement Docker. Commencez par créer un répertoire pour les fichiers du certificat :
mkdir ~/n8n-certs
Vous pouvez télécharger ces fichiers (généralement cert.crt et privkey.key) dans ce répertoire en utilisant n'importe quelle méthode. Pour plus d'informations, voir :
- Échange de fichiers depuis Windows
- Échange de fichiers depuis Linux
- Échange de fichiers depuis macOS
Lançons maintenant le conteneur à l'aide d'une commande complète :
sudo docker run -d \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
-v ~/n8n-certs:/certs \
-e N8N_PROTOCOL=https \
-e N8N_SSL_CERT="/certs/cert.crt" \
-e N8N_SSL_KEY="/certs/privkey.key" \
docker.n8n.io/n8nio/n8n
Voici une description détaillée de chaque argument :
- sudo docker run -d lance le conteneur Docker en mode démon (arrière-plan)
- --name n8n attribue un nom au conteneur n8n
- -p 5678:5678 transmet le port 5678 au conteneur
- -v n8n_data:/home/node/.n8n crée et monte un volume nommé n8n_data dans le répertoire caché /home/node/.n8n à l'intérieur du conteneur
- -v ~/n8n-certs:/certs monte le répertoire des certificats
- -e N8N_PROTOCOL=https force N8N à utiliser le protocole HTTPS
- -e N8N_SSL_CERT="/certs/cert.crt" définit le chemin d'accès au fichier de certificat
- -e N8N_SSL_KEY="/certs/privkey.key" définit le chemin d'accès à la clé du certificat
- docker.n8n.io/n8nio/n8n source de l'image du conteneur
Traefik
Une configuration un peu plus complexe mais flexible consiste à utiliser le serveur proxy inverse Traefik pour sécuriser la connexion à N8N. Le fichier de configuration est basé sur la méthode officielle spécifiée dans la documentation. Tout d'abord, installez l'outil docker-compose:
sudo apt -y install docker-compose
Nous allons déployer Traefik et N8N ensemble, et ils doivent être sur le même réseau. Créez un réseau appelé web.
sudo docker network create web
Maintenant, créez un fichier docker-compose.yml pour définir et exécuter les deux conteneurs :
nano docker-compose.yml
services:
traefik:
image: "traefik"
container_name: "proxy"
restart: always
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
- "--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}"
- "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- traefik_data:/letsencrypt
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- web
n8n:
image: docker.n8n.io/n8nio/n8n
container_name: "n8n"
restart: always
ports:
- "127.0.0.1:5678:5678"
labels:
- traefik.enable=true
- traefik.http.routers.n8n.rule=Host(`${SUBDOMAIN}.${DOMAIN_NAME}`)
- traefik.http.routers.n8n.tls=true
- traefik.http.routers.n8n.entrypoints=web,websecure
- traefik.http.routers.n8n.tls.certresolver=mytlschallenge
- traefik.http.middlewares.n8n.headers.SSLRedirect=true
- traefik.http.middlewares.n8n.headers.STSSeconds=315360000
- traefik.http.middlewares.n8n.headers.browserXSSFilter=true
- traefik.http.middlewares.n8n.headers.contentTypeNosniff=true
- traefik.http.middlewares.n8n.headers.forceSTSHeader=true
- traefik.http.middlewares.n8n.headers.SSLHost=${DOMAIN_NAME}
- traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true
- traefik.http.middlewares.n8n.headers.STSPreload=true
- traefik.http.routers.n8n.middlewares=n8n@docker
environment:
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
volumes:
- n8n_data:/home/node/.n8n
- ./local-files:/files
networks:
- web
volumes:
n8n_data:
traefik_data:
networks:
web:
name: web
En plus du fichier docker-compose.yml, nous allons créer un autre fichier nommé .env. Ce fichier contiendra des variables telles que le nom de domaine et l'adresse électronique utilisés pour demander un certificat SSL à Let's Encrypt. Si nous devons changer quelque chose, comme le nom de domaine, il nous suffira de le mettre à jour dans ce fichier et de recréer le conteneur.
nano .env
DOMAIN_NAME=example.com
SUBDOMAIN=n8n
GENERIC_TIMEZONE=Europe/Amsterdam
SSL_EMAIL=user@example.com
Enfin, déployez les deux conteneurs :
sudo docker-compose up -d
Maintenant, N8N est disponible ici : https://n8n.example.com.Gestionnaire de proxy Nginx
Contrairement à Traefik, qui est configuré via des fichiers, Nginx Proxy Manager offre une interface web conviviale. Cependant, il ne détecte pas les services de manière dynamique, vous devez les ajouter manuellement. Néanmoins, il fonctionne bien pour les services statiques comme N8N.
Créez un autre fichier docker-compose.yml dans un répertoire séparé avec le contenu suivant :
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
container_name: proxy
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
networks:
- web
n8n:
image: docker.n8n.io/n8nio/n8n
container_name: n8n
restart: unless-stopped
environment:
- N8N_HOST=n8n.example.com
- N8N_PORT=5678
- WEBHOOK_URL=https://n8n.example.com/
- N8N_PROTOCOL=http
volumes:
- n8n_data:/home/node/.n8n
networks:
- web
volumes:
n8n_data:
networks:
web:
external: true
Déployer avec :
sudo docker-compose up -d
Ouvrez ensuite l'interface web à l'adresse suivante http://your_hostname_or_ip:81
- Nom d'utilisateur : admin@example.com
- Mot de passe : changeme
Vous serez invité à mettre à jour vos informations d'identification. Ensuite, ouvrez Hosts → Proxy Hosts → Add Proxy Host, entrez votre nom de domaine (par exemple, n8n.example.com) :
Remplissez les champs nécessaires :
- Remplacez Destination/IP par n8n.
- Réglez Port sur 5678.
- Sous l'onglet SSL, choisissez Request a new SSL certificate with Let’s Encrypt.
- Saisissez votre adresse électronique et acceptez les conditions.
- Cliquez sur Websockets support.
- Cliquez éventuellement sur Force SSL.
Après avoir appuyé sur le bouton Save, le certificat sera demandé et installé :
Une fois cela fait, l'ouverture de votre domaine conduira à l'interface N8N.
Tunnel SSH
Si vous n'avez pas besoin de l'accessibilité externe de N8N, vous pouvez transférer le port 5678 via SSH. Cela crypte tout le trafic, et N8N sera disponible à l'adresse http://localhost:5678/.
Remarque : cette configuration ne fonctionnera pas pour les intégrations avec des services externes tels que les messageries qui nécessitent un accès HTTPS public.
La manière la plus simple de transférer le port est d'utiliser le client SSH populaire PuTTY. Une fois installé, ouvrez SSH → Tunnels et définissez Source port - 5678 et Destination - localhost:5678. Cliquez ensuite sur Add.
Retournez à Session, entrez l'IP de votre serveur et cliquez sur Open. Une fois authentifié, le tunnel est actif. Ouvrez http://localhost:5678 dans un navigateur pour accéder à N8N.
Remarque : la connexion ne fonctionne que lorsque la session SSH est active. La fermeture de PuTTY met fin au tunnel.
Contournement
Cette méthode n'est pas recommandée sur les réseaux publics. Si vous lancez le conteneur avec la variable d'environnement N8N_SECURE_COOKIE=false, l'avertissement disparaîtra et vous accéderez au tunnel via HTTP :
sudo docker run -d --name n8n -p 5678:5678 -e N8N_SECURE_COOKIE=false -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
Warning: cela expose le panneau d'administration de N8N via HTTP non chiffré, ce qui le rend vulnérable aux attaques MITM (Man-In-The-Middle) et permet potentiellement à un attaquant de prendre entièrement le contrôle de votre serveur.
Voir aussi:
Mis à jour: 12.08.2025
Publié: 23.06.2025