Procédure complète et détaillée pour installer n8n sur un serveur local avec Docker, configurer un nom de domaine OVH, et sécuriser votre instance avec HTTPS via Nginx et Certbot.
🔧 Prérequis
- Un serveur Ubuntu (22.04 recommandé), en local ou sur le cloud.
- Un nom de domaine (ex. :
n8n.mondomaine.fr
) que vous gérez chez OVH. - L’accès root au serveur (ou possibilité d’utiliser
sudo
). - Le port 80 (HTTP), 443 (HTTPS) et 5678 doivent être ouverts dans votre pare-feu si vous voulez accéder à n8n depuis internet.
1️⃣ Ajouter le nom de domaine chez OVH
- Connectez-vous à votre compte OVH.
- Allez dans Domaines > Zone DNS.
- Cliquez sur « Ajouter une entrée » :
- Type :
A
- Sous-domaine :
n8n
(ou laissez vide si vous utilisez le domaine principal) - Cible : L’adresse IP publique de votre serveur Ubuntu.
- Type :
⏳ Attendez 10 à 30 minutes pour que la configuration DNS se propage.
2️⃣ Mise à jour du système
sudo apt update
sudo apt upgrade -y # Facultatif
🔍 apt update
actualise la liste des paquets, apt upgrade
met à jour tous les logiciels installés.
3️⃣ Installation officielle de Docker
3.1 Installer les paquets nécessaires
sudo apt install -y ca-certificates curl gnupg lsb-release
3.2 Ajouter la clé GPG de Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.asc > /dev/null
sudo chmod a+r /etc/apt/keyrings/docker.asc
3.3 Ajouter le dépôt Docker officiel
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
3.4 Installer Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
✅ Docker est maintenant installé avec la dernière version officielle recommandée.
4️⃣ Lancer n8n avec Docker
4.1 Créer un volume pour persister les données
docker volume create n8n_data
4.2 Lancer le conteneur n8n
Remplacez n8n.mondomaine.fr
par votre propre nom de domaine :
docker run -d --restart unless-stopped -it \
--name n8n \
-p 5678:5678 \
-e N8N_HOST="n8n.mondomaine.fr" \
-e VUE_APP_URL_BASE_API="https://n8n.mondomaine.fr/" \
-e WEBHOOK_TUNNEL_URL="https://n8n.mondomaine.fr/" \
-e N8N_PUSH_BACKEND="websocket" \
-v n8n_data:/root/.n8n \
n8nio/n8n
5️⃣ Installer et configurer Nginx comme reverse proxy
5.1 Installer Nginx
sudo apt install nginx -y
5.2 Créer une configuration pour n8n
sudo nano /etc/nginx/sites-available/n8n
Collez la configuration suivante en remplaçant le nom de domaine :
server {
listen 80;
server_name n8n.mondomaine.fr;
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_set_header X-Frame-Options SAMEORIGIN;
proxy_set_header X-Content-Type-Options nosniff;
proxy_set_header X-XSS-Protection "1; mode=block";
chunked_transfer_encoding off;
proxy_buffering off;
proxy_cache off;
}
}
5.3 Activer la configuration et redémarrer Nginx
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
6️⃣ Ajouter le certificat SSL avec Certbot
6.1 Installer Certbot et le plugin Nginx
sudo apt install certbot python3-certbot-nginx -y
6.2 Générer le certificat pour votre domaine
sudo certbot --nginx -d n8n.mondomaine.fr
📧 Suivez les instructions à l’écran pour valider le certificat Let’s Encrypt.
7️⃣ Ouvrir les ports (si nécessaire)
Si vous utilisez UFW (pare-feu Ubuntu) :
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 5678
✅ Finalisation
Redémarrer le conteneur pour appliquer tous les changements :
docker restart n8n
🌍 Accès
Votre instance n8n est maintenant disponible à l’adresse :