- Prérequis techniques pour installer n8n sur VPS
- Installation n8n avec Docker Compose étape par étape
- Configurer un domaine et un certificat SSL pour n8n
- Sécuriser votre instance n8n : authentification et firewall
- Sauvegarde et restauration de vos workflows n8n
Installer n8n sur un VPS vous permet de contrôler entièrement votre plateforme d’automatisation sans dépendre d’un abonnement cloud. Cette solution auto-hébergée offre une flexibilité maximale pour créer des workflow n8n guide complet personnalisés tout en maîtrisant vos coûts d’infrastructure.
Ce tutoriel couvre l’installation complète de n8n sur Ubuntu avec Docker, incluant la configuration SSL, le domaine personnalisé et un système de sauvegarde automatique. Vous disposerez d’une instance production-ready en moins de 30 minutes.
Prérequis techniques pour installer n8n sur VPS
Avant de commencer l’installation, vérifiez que votre environnement répond aux exigences minimales. Un VPS sous Ubuntu 20.04 LTS ou 22.04 LTS constitue la base recommandée par la documentation officielle n8n.
Ressources serveur minimales :
- 1 CPU core
- 2 Go de RAM (4 Go recommandés pour les workflows complexes)
- 20 Go d’espace disque
- Connexion réseau stable
Accès et logiciels requis :
- Accès SSH root ou sudo au serveur
- Docker version 20.10 ou supérieure
- Docker Compose version 2.0 ou supérieure
- Un nom de domaine pointant vers l’IP de votre VPS
Ports réseau à ouvrir :
- Port 80 (HTTP, pour la validation Let’s Encrypt)
- Port 443 (HTTPS, pour l’accès sécurisé)
- Port 22 (SSH, pour l’administration)
Assurez-vous que votre fournisseur VPS n’impose pas de restrictions sur ces ports. La plupart des hébergeurs cloud (DigitalOcean, Vultr, Hetzner, OVH) autorisent ces configurations par défaut.
Installation n8n avec Docker Compose étape par étape
Connectez-vous à votre serveur via SSH et commencez par mettre à jour le système :
sudo apt update && sudo apt upgrade -y
sudo apt install -y docker.io docker-compose git
sudo systemctl enable docker
sudo systemctl start dockerCréez un répertoire dédié pour n8n et son fichier de configuration :
mkdir -p ~/n8n-docker
cd ~/n8n-docker
nano docker-compose.ymlCopiez cette configuration Docker Compose complète dans le fichier :
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=VotreMotDePasseSecurise
- N8N_HOST=votre-domaine.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://votre-domaine.com/
- GENERIC_TIMEZONE=Europe/Paris
volumes:
- n8n_data:/home/node/.n8n
- /etc/localtime:/etc/localtime:ro
volumes:
n8n_data:
driver: localVariables d’environnement critiques :
N8N_BASIC_AUTH_USERetN8N_BASIC_AUTH_PASSWORD: identifiants de connexion initiaux (à modifier immédiatement)N8N_HOST: votre nom de domaine complet sans https://WEBHOOK_URL: URL complète pour les webhooks entrantsGENERIC_TIMEZONE: fuseau horaire pour l’exécution des workflows planifiés
Remplacez votre-domaine.com par votre domaine réel et définissez un mot de passe fort. Lancez ensuite le conteneur :
sudo docker-compose up -dVérifiez que n8n fonctionne :
sudo docker ps
sudo docker logs n8nLe conteneur doit afficher « Editor is now accessible via http://localhost:5678 ». À ce stade, n8n écoute sur le port 5678 mais n’est pas encore accessible publiquement avec SSL.

Configurer un domaine et un certificat SSL pour n8n
Pour exposer n8n en HTTPS avec un certificat valide, installez Nginx comme reverse proxy et Certbot pour Let’s Encrypt :
sudo apt install -y nginx certbot python3-certbot-nginxCréez un fichier de configuration Nginx pour votre domaine :
sudo nano /etc/nginx/sites-available/n8nAjoutez cette configuration initiale (sans SSL) :
server {
listen 80;
server_name votre-domaine.com;
location / {
proxy_pass http://localhost:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
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;
proxy_cache_bypass $http_upgrade;
}
}Activez la configuration et testez-la :
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginxObtenez maintenant un certificat SSL avec Certbot :
sudo certbot --nginx -d votre-domaine.comCertbot modifie automatiquement la configuration Nginx pour activer HTTPS et redirige le trafic HTTP vers HTTPS. Le certificat se renouvelle automatiquement via un cron job installé par Certbot.
Vérifiez le renouvellement automatique :
sudo certbot renew --dry-runVotre instance n8n est maintenant accessible via https://votre-domaine.com avec un certificat valide. Vous pouvez commencer à créer des exemples workflows n8n entreprise directement depuis l’interface web.

Sécuriser votre instance n8n : authentification et firewall
La configuration de base inclut l’authentification HTTP Basic, mais plusieurs couches de sécurité supplémentaires sont recommandées pour une instance production.
Désactiver l’authentification basique et activer les utilisateurs n8n :
Une fois connecté à l’interface, créez un compte utilisateur permanent dans les paramètres. Modifiez ensuite le docker-compose.yml pour désactiver Basic Auth :
- N8N_BASIC_AUTH_ACTIVE=false
- N8N_USER_MANAGEMENT_DISABLED=falseRedémarrez le conteneur :
sudo docker-compose down && sudo docker-compose up -dConfigurer le firewall UFW :
Installez et configurez UFW pour limiter l’accès aux ports essentiels :
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw statusSécuriser l’accès SSH :
Désactivez l’authentification par mot de passe et utilisez uniquement les clés SSH. Éditez /etc/ssh/sshd_config :
PasswordAuthentication no
PermitRootLogin prohibit-passwordRedémarrez SSH :
sudo systemctl restart sshdLimiter les tentatives de connexion :
Installez Fail2Ban pour bloquer les tentatives de connexion répétées :
sudo apt install -y fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2banCes mesures réduisent drastiquement la surface d’attaque de votre instance n8n. Pour des configurations avancées incluant l’authentification OAuth2 ou SAML, consultez le guide securiser workflows n8n.
Sauvegarde et restauration de vos workflows n8n
Les workflows n8n sont stockés dans le volume Docker n8n_data. Une stratégie de sauvegarde automatique garantit la continuité en cas de défaillance serveur.
Script de sauvegarde automatique :
Créez un script qui exporte les workflows et copie le volume Docker :
sudo nano /usr/local/bin/backup-n8n.shAjoutez ce contenu :
#!/bin/bash
BACKUP_DIR="/var/backups/n8n"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
# Export des workflows via l'API n8n
curl -u admin:VotreMotDePasse \
https://votre-domaine.com/api/v1/workflows \
-o $BACKUP_DIR/workflows_$DATE.json
# Sauvegarde du volume Docker
docker run --rm \
-v n8n_data:/data \
-v $BACKUP_DIR:/backup \
alpine tar czf /backup/n8n_volume_$DATE.tar.gz -C /data .
# Suppression des sauvegardes de plus de 30 jours
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete
find $BACKUP_DIR -name "*.json" -mtime +30 -deleteRendez le script exécutable :
sudo chmod +x /usr/local/bin/backup-n8n.shAutomatisation avec cron :
Planifiez l’exécution quotidienne à 2h du matin :
sudo crontab -eAjoutez cette ligne :
0 2 * * * /usr/local/bin/backup-n8n.shRestauration depuis une sauvegarde :
Pour restaurer un volume complet :
sudo docker-compose down
sudo docker run --rm \
-v n8n_data:/data \
-v /var/backups/n8n:/backup \
alpine sh -c "cd /data && tar xzf /backup/n8n_volume_YYYYMMDD_HHMMSS.tar.gz"
sudo docker-compose up -dPour restaurer uniquement les workflows via l’interface, importez le fichier JSON depuis les paramètres de n8n. Cette approche hybride (volume + export API) offre une redondance maximale.
Testez votre procédure de restauration au moins une fois par trimestre pour valider son efficacité. Une sauvegarde non testée est une sauvegarde inutile.
Vous disposez maintenant d’une instance n8n complètement opérationnelle, sécurisée et sauvegardée automatiquement. Cette base solide vous permet de développer des automatisations complexes en toute confiance, que ce soit pour connecter api n8n ou pour comparer les performances avec d’autres solutions via n8n vs zapier make. L’investissement initial dans une infrastructure robuste se rentabilise dès les premiers workflows déployés en production.
Prêt à automatiser votre activité ?
WivoAgency conçoit des solutions sur mesure d’automatisation, de chatbots WhatsApp Business et de transformation digitale pour les PME francophones. Discutons de votre projet en 15 minutes, sans engagement.