Procédure d’installation de n8n sur un serveur local avec Docker, Nginx et Certbot

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

  1. Connectez-vous à votre compte OVH.
  2. Allez dans Domaines > Zone DNS.
  3. 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.

⏳ 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 :

https://n8n.mondomaine.fr

Partager :

Nous contacter :

Phone: 09 78 25 06 68
Email: