đ Dans cet article :
đ N8N Open Source : Pourquoi j’ai choisi le self-host
N8N est un outil d’automatisation 100% open source. Ăa veut dire : code accessible, self-host gratuit, aucune limite d’exĂ©cutions. Le rĂȘve, non ?
Pourtant, beaucoup commencent par le cloud hébergé officiel n8n.cloud. Pratique pour tester, mais :
- Plan Starter : 20âŹ/mois pour 2,500 exĂ©cutions/mois (vite atteint)
- Plan Pro : 50âŹ/mois pour 10,000 exĂ©cutions
- Gros volumes ? Ăa explose le budget…
Avec mes automations clients (synchronisations CRM, webhooks, traitements quotidiens), je dépassais facilement les 10,000 exécutions. Facture mensuelle qui monte, alors que le code est open source et self-hostable !
Ma décision : VPS Debian + Docker + N8N self-hosted.
Résultat aprÚs 6 mois :
- â ExĂ©cutions illimitĂ©es
- â CoĂ»t fixe : 6âŹ/mois (VPS OVH)
- â ContrĂŽle total (donnĂ©es, config, nodes custom)
- â Performance : serveur dĂ©diĂ©, zĂ©ro throttling
- â Ăconomie : ~600âŹ/an vs cloud
Dans ce guide, je vous montre exactement comment reproduire mon setup. Temps d’installation : 30 minutes chrono.
Mais au-delà du coût, self-host N8N apporte des avantages stratégiques :
- â ContrĂŽle total : Vos donnĂ©es restent chez vous (RGPD friendly)
- â Performance : Serveur dĂ©diĂ©, pas de throttling
- â Personnalisation : Nodes custom, variables env illimitĂ©es
- â ĂvolutivitĂ© : Ajoutez d’autres services (PostgreSQL, Redis…)
- â Apprentissage : Vous maĂźtrisez votre stack DevOps
Dans ce guide, je vous montre exactement comment j’ai dĂ©ployĂ© N8N sur mon VPS Debian avec Docker et Nginx Reverse Proxy. Temps d’installation : 30 minutes chrono.
đł Docker et Docker Compose : Pourquoi on les utilise ?
Avant de plonger dans l’installation, clarifions deux outils essentiels.
Docker, c’est quoi ?
Docker = Conteneurs d’applications. Imagine une boĂźte qui contient N8N + toutes ses dĂ©pendances (Node.js, libs…). Cette boĂźte fonctionne partout : Ubuntu, Debian, Windows, Mac.
Avantages pour nous :
- â
Installation simple :
docker runau lieu de 50 commandes - â Isolation : N8N ne pollue pas le systĂšme
- â Reproductible : mĂȘme config sur tous les serveurs
- â
Updates faciles :
docker pullpour mettre Ă jour
Docker Compose, c’est quoi ?
Docker Compose = Chef d’orchestre. Au lieu de lancer N8N, Nginx, PostgreSQL avec 3 commandes sĂ©parĂ©es, on Ă©crit un fichier docker-compose.yml qui dit : « Lance ces 3 services ensemble avec ces configs ».
Exemple concret :
# Sans Docker Compose (galĂšre)
docker run -d --name n8n -p 5678:5678 -e N8N_HOST=... n8nio/n8n
docker run -d --name nginx -p 80:80 -p 443:443 nginx
docker run -d --name postgres -p 5432:5432 postgres
# Avec Docker Compose (propre)
docker-compose up -d
â Tout dĂ©marre automatiquement âš
Pas besoin d’ĂȘtre expert Docker pour suivre ce guide. On utilise des configs prĂȘtes Ă l’emploi que vous copierez-collez. Simple et efficace ! đȘ
đ PrĂ©requis techniques
Avant de commencer, assurez-vous d’avoir :
Serveur :
- VPS Debian 11 ou 12 (Ubuntu fonctionne aussi)
- 2 GB RAM minimum (4 GB recommandé)
- 20 GB stockage (pour Docker images + workflows)
- AccĂšs SSH root
Domaine :
- Un nom de domaine (ex: mondher.ch)
- Sous-domaine configuré (ex: automation.mondher.ch)
- DNS pointant vers IP du VPS (A record)
Connaissances :
- Commandes Linux de base (cd, ls, nano)
- Notions Docker (pas besoin d’ĂȘtre expert)
- SSH et accĂšs terminal
â ïž Important : Ce guide suppose que vous partez d’un VPS vierge. Si vous avez dĂ©jĂ des services installĂ©s, adaptez les ports et configurations.
đ ïž PrĂ©paration du serveur Debian
PremiÚre étape : préparer notre serveur. Connectez-vous en SSH :
ssh root@VOTRE_IP_VPS
1. Mettre Ă jour le systĂšme
apt update && apt upgrade -y
2. Installer Docker
Docker va nous permettre de containeriser N8N et tous les services associés :
# Installer les dépendances
apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
# Ajouter la clé GPG officielle Docker
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Ajouter le repository Docker
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
# Installer Docker
apt update
apt install -y docker-ce docker-ce-cli containerd.io
# Vérifier installation
docker --version
3. Installer Docker Compose
# Télécharger Docker Compose
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# Rendre exécutable
chmod +x /usr/local/bin/docker-compose
# Vérifier
docker-compose --version
4. Configurer le firewall
# Installer ufw
apt install -y ufw
# Autoriser SSH (IMPORTANT !)
ufw allow 22/tcp
# Autoriser HTTP et HTTPS
ufw allow 80/tcp
ufw allow 443/tcp
# Activer le firewall
ufw enable
# Vérifier les rÚgles
ufw status
â Checkpoint : Docker installĂ©, firewall configurĂ©. Serveur prĂȘt pour le dĂ©ploiement !
đ Nginx Reverse Proxy : Le composant essentiel
Ici, on arrive au secret d’une installation pro : le reverse proxy.
Pourquoi un reverse proxy ?
PlutĂŽt que d’exposer N8N directement sur Internet (port 5678), on passe par Nginx Reverse Proxy. Avantages Ă©normes :
- đ SSL automatique : Let’s Encrypt gĂ©rĂ© par Nginx (HTTPS gratuit)
- ⥠Performance : Cache, compression, load balancing
- đĄïž SĂ©curitĂ© : N8N n’est pas exposĂ© directement
- đ Multi-apps : HĂ©bergez plusieurs services sur le mĂȘme VPS (N8N, WordPress, API…)
- đŻ Domaines propres : automation.mondher.ch au lieu de mondher.ch:5678
J’utilise Nginx Proxy Manager, une interface web qui rend la config ultra-simple (pas besoin de toucher aux fichiers Nginx).
Installation Nginx Proxy Manager
Créez un dossier pour vos services Docker :
mkdir -p /opt/docker
cd /opt/docker
Créez le fichier docker-compose.yml pour Nginx Proxy Manager :
nano docker-compose-npm.yml
Collez cette configuration :
version: '3.8'
services:
nginx-proxy-manager:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81' # Interface admin
environment:
DB_SQLITE_FILE: "/data/database.sqlite"
volumes:
- ./npm-data:/data
- ./npm-letsencrypt:/etc/letsencrypt
networks:
- proxy
networks:
proxy:
driver: bridge
Lancez Nginx Proxy Manager :
docker-compose -f docker-compose-npm.yml up -d
AccĂ©dez Ă l’interface web : http://VOTRE_IP_VPS:81
Login par défaut :
- Email :
admin@example.com - Mot de passe :
changeme
â ïž Changez immĂ©diatement l’email et le mot de passe !
đł DĂ©ploiement N8N avec Docker Compose
Maintenant qu’on a notre reverse proxy, dĂ©ployons N8N.
Dans /opt/docker, créez un nouveau fichier :
nano docker-compose-n8n.yml
Configuration N8N optimisée :
version: '3.8'
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
ports:
- '5678:5678'
environment:
- N8N_HOST=automation.mondher.ch
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://automation.mondher.ch/
- GENERIC_TIMEZONE=Europe/Paris
- N8N_ENCRYPTION_KEY=VOTRE_CLE_SECRETE_32_CARACTERES
volumes:
- ./n8n-data:/home/node/.n8n
networks:
- proxy
networks:
proxy:
external: true
â ïž GĂ©nĂ©rez une clĂ© d’encryption unique :
openssl rand -base64 32
Remplacez VOTRE_CLE_SECRETE_32_CARACTERES par le résultat.
Lancez N8N :
docker-compose -f docker-compose-n8n.yml up -d
Vérifiez que le container tourne :
docker ps
Vous devriez voir n8n et nginx-proxy-manager actifs.
đ Configuration SSL automatique
Retournez sur Nginx Proxy Manager (http://VOTRE_IP:81).
Ătapes :
- Hosts â Proxy Hosts â Add Proxy Host
- Remplissez :
- Domain Names :
automation.mondher.ch - Scheme :
http - Forward Hostname/IP :
n8n(nom du container) - Forward Port :
5678 - âïž Block Common Exploits
- âïž Websockets Support (IMPORTANT pour N8N !)
- Domain Names :
- Onglet SSL :
- SSL Certificate : Request a new SSL Certificate
- âïž Force SSL
- âïž HTTP/2 Support
- Email : votre email
- âïž I Agree to Let’s Encrypt TOS
- Save
Nginx Proxy Manager va automatiquement :
- â GĂ©nĂ©rer le certificat Let’s Encrypt
- â Configurer le reverse proxy
- â Rediriger HTTP â HTTPS
- â Renouveler le certificat auto (tous les 90 jours)
â
Checkpoint : AccĂ©dez Ă https://automation.mondher.ch â N8N avec HTTPS fonctionne !
đĄïž SĂ©curitĂ© et maintenance
1. Activer l’authentification N8N
Ajoutez ces variables dans docker-compose-n8n.yml :
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=votre_user
- N8N_BASIC_AUTH_PASSWORD=votre_password_securise
Redémarrez :
docker-compose -f docker-compose-n8n.yml down
docker-compose -f docker-compose-n8n.yml up -d
2. Backups automatiques
Vos workflows sont dans /opt/docker/n8n-data. Script backup quotidien :
#!/bin/bash
# /root/backup-n8n.sh
tar -czf /root/backups/n8n-$(date +%Y%m%d).tar.gz /opt/docker/n8n-data
find /root/backups -name "n8n-*.tar.gz" -mtime +7 -delete
Cron quotidien (2h du matin) :
crontab -e
0 2 * * * /root/backup-n8n.sh
3. Updates réguliers
# Update N8N
cd /opt/docker
docker-compose -f docker-compose-n8n.yml pull
docker-compose -f docker-compose-n8n.yml up -d
# Update Nginx Proxy Manager
docker-compose -f docker-compose-npm.yml pull
docker-compose -f docker-compose-npm.yml up -d
đ§ ProblĂšmes courants et solutions
â « 502 Bad Gateway »
Cause : N8N container pas démarré ou Websockets désactivés
Solution :
docker logs n8n
# Vérifiez que Websockets Support est coché dans Nginx Proxy Manager
â SSL ne se gĂ©nĂšre pas
Cause : DNS pas encore propagé ou port 80/443 bloqués
Solution :
# Vérifiez DNS
nslookup automation.mondher.ch
# Vérifiez firewall
ufw status
â Webhooks ne fonctionnent pas
Cause : WEBHOOK_URL mal configurée
Solution : Vérifiez WEBHOOK_URL=https://automation.mondher.ch/ (avec trailing slash !)
đ Logs utiles
# Logs N8N
docker logs -f n8n
# Logs Nginx Proxy Manager
docker logs -f nginx-proxy-manager
# Vérifier containers
docker ps -a
đŻ Conclusion : N8N self-hosted, le game-changer
En 30 minutes, vous venez de déployer une infrastructure automation professionnelle :
- â N8N avec exĂ©cutions illimitĂ©es
- â HTTPS automatique via Let’s Encrypt
- â Reverse proxy Ă©volutif (ajoutez d’autres apps facilement)
- â CoĂ»t : 6âŹ/mois au lieu de 20âŹ
Prochaines étapes pour aller plus loin :
- Ajouter PostgreSQL pour meilleures performances
- Configurer Redis pour le cache
- Créer des workflows de monitoring (uptime, alertes)
- Connecter N8N Ă vos outils (Make, Airtable, Notion…)
Depuis que j’ai migrĂ© sur mon VPS, j’ai Ă©conomisĂ© +600⏠en 1 an tout en gagnant en flexibilitĂ©. Mes clients apprĂ©cient aussi le fait que leurs donnĂ©es restent sous contrĂŽle.
đ Besoin d’aide pour votre automatisation ?
Je partage avec vous mes workflows N8N, astuces Docker et stratégies automatisation dans ma newsletter.
Vous avez dĂ©ployĂ© N8N en suivant ce guide ? Partagez votre expĂ©rience en commentaire ou contactez-moi ! đȘ
