n8n est un éditeur visuel de référence qui permet d’itérer rapidement, de créer des workflows d’automatisation et d’en voir les résultats immédiatement. Il est parfait pour les automatisations du quotidien comme pour les workflows complexes d’agents IA.
La prise en charge de l’auto-hébergement et l’éditeur low-code font de n8n le chouchou des développeurs. Si tu veux garder le contrôle, personnaliser ta configuration et réduire tes coûts sur le long terme, la version auto-hébergée est faite pour toi.
Tu veux héberger n8n toi-même ? Nous te guidons pas à pas dans son installation et sa configuration et te montrons tout ce que tu dois savoir.
n8n est léger, mais sa consommation de ressources peut augmenter avec le nombre de workflows, d’appels API et de nœuds gourmands en données. Pour héberger n8n sur ton VPS, nous recommandons la configuration matérielle suivante :
| Matériel | Minimum | Recommandé |
|---|---|---|
| CPU | 1 cœur vCPU | 2 cœurs vCPU |
| RAM | 2 Go | 4 Go |
| Stockage | 20 Go | 50 Go |
Une fois Docker installé sur ton serveur, vérifie l’installation avec :
docker --version
docker compose version
Crée un répertoire de projet pour stocker les fichiers locaux et les variables d’environnement de n8n, puis ouvre-le :
mkdir n8n-compose
cd n8n-compose
Dans le répertoire n8n-compose, crée un fichier .env avec nano .env et ajoute le code suivant contenant les variables d’environnement de n8n :
# DOMAIN_NAME et SUBDOMAIN définissent ensemble l’adresse à laquelle n8n est accessible
# Le domaine de premier niveau
DOMAIN_NAME=zap.cloud
# Le sous-domaine
SUBDOMAIN=silver-octopus-xxxxx
# L’exemple ci-dessus permet d’accéder à n8n à l’adresse : https://silver-octopus-xxxxx.zap.cloud
# Fuseau horaire facultatif, utilisé par Cron et d’autres nœuds de planification
GENERIC_TIMEZONE=Europe/Berlin
# Adresse e-mail pour la création du certificat TLS/SSL
SSL_EMAIL=hello@zap-hosting.com
Hostname.
Saisis la partie zap.cloud dans DOMAIN_NAME et la première partie dans SUBDOMAIN (par exemple, silver-octopus-xxxxx).
Exigence HTTPS N’utilise pas une simple adresse IP dans le fichier .env. n8n nécessite une connexion HTTPS, et les certificats SSL ne sont délivrés que pour les domaines, pas pour les adresses IP.
Si tu préfères héberger n8n sur ton propre domaine, crée un sous-domaine pour n8n en ajoutant un enregistrement A dans le gestionnaire DNS de ton domaine, qui pointe vers l’adresse IP de ton VPS.
| Nom | Type | Valeur | TTL | Priorité |
|---|---|---|---|---|
| n8n (sous-domaine) | A | Adresse IPv4 | 1440 | 0 |
Dans le dossier du projet, crée un autre dossier nommé local-files afin de partager des fichiers entre l’instance n8n et le système hôte :
mkdir local-files
Crée le fichier Docker Compose compose.yaml avec nano compose.yaml et ajoute le contenu suivant :
services:
traefik:
image: "traefik"
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
n8n:
image: docker.n8n.io/n8nio/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_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- N8N_RUNNERS_ENABLED=true
- NODE_ENV=production
- WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
- TZ=${GENERIC_TIMEZONE}
volumes:
- n8n_data:/home/node/.n8n
- ./local-files:/files
volumes:
n8n_data:
traefik_data:
Cela permet d’installer n8n, de configurer et de générer un certificat SSL, puis de rendre n8n accessible sur le domaine.
Démarre n8n avec :
sudo docker compose up -d
Tu peux arrêter n8n avec :
sudo docker compose stop
Une fois n8n démarré, ouvre-le dans ton navigateur à l’aide de l’URL (ou du nom d’hôte, si tu as utilisé celui-ci). Tu dois d’abord créer un compte administrateur.
Pense à retenir ton mot de passe Garde bien ton mot de passe en mémoire pour pouvoir l’utiliser plus tard !
Un petit questionnaire s’affiche ensuite : tu peux y saisir quelques informations de base.
Tu peux aussi obtenir gratuitement l’accès à certaines fonctionnalités payantes en saisissant ton adresse e-mail et en recevant une clé de licence par e-mail. Si cela t’intéresse, saisis ton adresse e-mail et demande ta clé de licence.
Tu recevras la clé de licence par e-mail immédiatement. Copie-la et colle-la dans Paramètres > Utilisation et forfaits > Saisir la clé d’activation.
Tu peux ensuite accéder directement au tableau de bord et commencer à utiliser n8n !
Commence sur une page vierge ou utilise un modèle prédéfini. Ton installation de n8n est prête !
