n8n est devenu l’outil d’automatisation open source de référence. Self-hosted, il vous garantit la souveraineté de vos données et une maîtrise totale des coûts. Ce guide vous accompagne pas à pas pour installer n8n sur un VPS en 2026, avec Debian 12, Traefik SSL, PostgreSQL et des sauvegardes automatiques.
Prérequis
- Un VPS avec minimum 2 vCPU et 4 GB RAM (recommandé : 4 vCPU / 8 GB RAM)
- Debian 12 (Bookworm) fraîchement installé
- Un nom de domaine pointant vers l’IP du VPS (ex. : automator.votre-domaine.be)
- Accès SSH root au serveur
- Connaissances de base en administration Linux
Phase 1 : Préparation du serveur
Commencez par sécuriser et mettre à jour votre serveur :
apt update && apt upgrade -y
apt install -y curl wget gnupg2 software-properties-common ufw fail2ban
Configurez le pare-feu :
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
Configurez fail2ban pour protéger SSH contre le brute force. Créez le fichier /etc/fail2ban/jail.local avec les paramètres adaptés à votre usage.
Phase 2 : Installation de Node.js
n8n requiert Node.js 18 ou supérieur. Installez via NodeSource :
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install -y nodejs
node --version # Doit afficher v20.x
Phase 3 : Configuration de PostgreSQL
Par défaut, n8n utilise SQLite, mais PostgreSQL est recommandé pour la production :
apt install -y postgresql postgresql-contrib
sudo -u postgres createuser n8n
sudo -u postgres createdb n8n_db -O n8n
sudo -u postgres psql -c "ALTER USER n8n WITH PASSWORD 'votre_mot_de_passe_securise';"
Phase 4 : Installation et configuration de n8n
Installez n8n globalement via npm :
npm install -g n8n
Créez le fichier de configuration d’environnement /etc/n8n.env :
N8N_HOST=automator.votre-domaine.be
N8N_PORT=5678
N8N_PROTOCOL=https
WEBHOOK_URL=https://automator.votre-domaine.be/
N8N_ENCRYPTION_KEY=votre_cle_encryption_unique
DB_TYPE=postgresdb
DB_POSTGRESDB_HOST=localhost
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_DATABASE=n8n_db
DB_POSTGRESDB_USER=n8n
DB_POSTGRESDB_PASSWORD=votre_mot_de_passe_securise
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=votre_password_admin
EXECUTIONS_DATA_PRUNE=true
EXECUTIONS_DATA_MAX_AGE=168
Phase 5 : Configuration de Traefik SSL
Traefik v3 sert de reverse proxy avec certificats SSL Let’s Encrypt automatiques :
wget https://github.com/traefik/traefik/releases/download/v3.0.0/traefik_v3.0.0_linux_amd64.tar.gz
tar xzf traefik_v3.0.0_linux_amd64.tar.gz
mv traefik /usr/local/bin/
Créez la configuration Traefik dans /etc/traefik/traefik.yml avec les entrypoints HTTP (80) et HTTPS (443), le resolver Let’s Encrypt avec votre email, et le routage vers n8n sur le port 5678.
Créez la configuration dynamique dans /etc/traefik/dynamic.yml avec le router pour votre domaine et le service pointant vers http://localhost:5678.
Phase 6 : Services systemd
Créez le service systemd pour n8n dans /etc/systemd/system/n8n.service :
[Unit]
Description=n8n Workflow Automation
After=network.target postgresql.service
[Service]
Type=simple
User=n8n
EnvironmentFile=/etc/n8n.env
ExecStart=/usr/bin/n8n start
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Créez également un service systemd pour Traefik. Puis activez et démarrez les deux services :
systemctl daemon-reload
systemctl enable n8n traefik
systemctl start traefik
systemctl start n8n
Phase 7 : Vérification
Testez votre installation :
- Vérifiez que n8n tourne :
systemctl status n8n - Vérifiez que Traefik tourne :
systemctl status traefik - Accédez à
https://automator.votre-domaine.bedans votre navigateur - Vérifiez le certificat SSL (cadenas vert)
- Connectez-vous avec vos identifiants
- Créez un workflow de test simple (Cron > HTTP Request)
Phase 8 : Sécurisation avancée
- Désactivez l’accès root SSH : créez un utilisateur dédié et utilisez
sudo - Clés SSH uniquement : désactivez l’authentification par mot de passe
- Rate limiting : configurez les limites dans Traefik pour protéger les webhooks
- Mises à jour automatiques : activez
unattended-upgradespour les patchs de sécurité - Monitoring : installez Uptime Kuma pour surveiller la disponibilité
Phase 9 : Sauvegarde automatique
Créez un script de sauvegarde dans /opt/backup-n8n.sh :
#!/bin/bash
BACKUP_DIR="/opt/backups/n8n"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
# Sauvegarde PostgreSQL
pg_dump -U n8n n8n_db | gzip > "$BACKUP_DIR/n8n_db_$DATE.sql.gz"
# Rotation : garder les 30 dernières sauvegardes
ls -t $BACKUP_DIR/n8n_db_*.sql.gz | tail -n +31 | xargs rm -f
echo "Backup completed: $DATE"
Planifiez l’exécution quotidienne via cron :
chmod +x /opt/backup-n8n.sh
crontab -e
# Ajouter : 0 2 * * * /opt/backup-n8n.sh >> /var/log/n8n-backup.log 2>&1
Résultat final
Vous disposez maintenant d’une instance n8n de production avec :
- SSL automatique via Let’s Encrypt
- Base de données PostgreSQL robuste
- Services systemd avec redémarrage automatique
- Sécurisation SSH et pare-feu
- Sauvegardes quotidiennes automatiques
C’est exactement le setup que nous utilisons chez Agile Minds sur automator.agile-minds.be pour orchestrer nos workflows d’automatisation et nos agents IA.
Besoin d’aide pour votre installation n8n ? Contactez-nous.
Patrick Impens · CEO Agile Minds SRL · agile-minds.be