n8n est une plateforme d’automatisation open-source qui permet de connecter facilement des applications, API et services pour créer des workflows sans code. Ce guide vous montre comment déployer n8n sur un serveur Debian (versions 10, 11 ou 12) avec Docker, Apache en reverse proxy, et un certificat SSL automatique via Let’s Encrypt.
Pourquoi installer n8n soi-même ?
Auto-héberger n8n présente de nombreux avantages, notamment en matière de flexibilité, de sécurité, et surtout de coûts. Voici un comparatif des différentes solutions disponibles :
Comparatif économique : auto-hébergement vs cloud officiel n8n
| Solution | Coût mensuel | Exécutions | Workflows actifs | Hébergement |
|---|---|---|---|---|
| Auto-hébergé | 14,25 €* | Illimité* | Illimité* | Serveur personnel |
| n8n Starter Cloud | 24 € | 2 500 | 5 | n8n (cloud) |
| n8n Pro Cloud | 60 € | 10 000 | 15 | n8n (cloud) |
*Exemple basé sur un serveur privé virtuel (VPS) chez OVH avec 4 Go de RAM et 40 Go de stockage (4 Go RAM recommandé pour usage fluide).
Économisez jusqu’à 45 €/mois avec un auto-hébergement, tout en bénéficiant d’un contrôle total, de performances sur mesure et d’une confidentialité renforcée.
1. Prérequis
- Debian 10, 11 ou 12
- Accès root ou sudo
- Ports 80 et 443 ouverts
- Un nom de domaine ou sous-domaine pointant vers votre serveur (ex. : n8n.mondomaine.com)
2. Installer Docker et Docker Compose
sudo apt update && sudo apt upgrade -y
sudo apt install -y docker.io docker-compose
sudo service docker start
3. Préparer le dossier n8n
Lorsque vous créez le dossier n8n_data, il est important de vous assurer que les permissions sont correctement définies, en particulier si le service Docker exécute le conteneur avec un utilisateur spécifique (ex. : « debian »).
Création des dossiers
sudo mkdir -p /var/www/n8n
sudo chown $USER:$USER /var/www/n8n
cd /var/www/n8n
mkdir n8n_data
Attribution des droits
Si vous utilisez l’image officielle n8nio/n8n, le conteneur tourne avec l’utilisateur node (UID 1000). Si votre utilisateur local est aussi UID 1000, aucun changement n’est requis.
Sinon, donnez les droits à l’utilisateur qui exécute le conteneur (dans certains cas, « debian ») :
sudo chown -R 1000:1000 /var/www/n8n/n8n_data
4. Créer le fichier docker-compose.yml
version: '3.1'
services:
n8n:
image: n8nio/n8n
restart: always
ports:
- 5678:5678
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=motDePasseFort
volumes:
- ./n8n_data:/home/node/.n8n
5. Lancer n8n
docker-compose up -d
6. Configurer Apache comme reverse proxy
Lorsque vous configurez Apache pour n8n, il est essentiel de créer un fichier de configuration spécifique à votre domaine dans le dossier /etc/apache2/sites-available/, puis de l’activer avec la commande a2ensite, qui crée un lien symbolique vers sites-enabled.
Créer le fichier de configuration Apache
Remplacez n8n.mondomaine.com par votre domaine réel.
sudo nano /etc/apache2/sites-available/n8n.mondomaine.conf
Contenu du fichier de configuration
<VirtualHost *:80>
ServerName /n8n.mondomaine.com
ProxyPreserveHost On
ProxyPass / http://localhost:5678/
ProxyPassReverse / http://localhost:5678/
</VirtualHost>
Activer le fichier de configuration
sudo a2ensite n8n.mondomaine.com
sudo service apache2 reload
7. Générer un certificat SSL avec Certbot (HTTPS)
sudo apt install -y certbot python3-certbot-apache
sudo certbot --apache
9. Vérifier le renouvellement automatique
sudo certbot renew --dry-run
10. Accéder à n8n
Allez sur https://n8n.mondomaine.com
Créez votre compte administrateur n8n à la première connexion.
11. Mettre à jour n8n
cd /var/www/n8n
docker-compose down
docker-compose pull
docker-compose up -d
En résumé
- n8n (Docker) tourne sur le port 5678
- Apache reverse-proxy votre sous-domaine vers ce port
- Certbot gère le SSL et le renouvellement automatique du certificat
- Accès à n8n via HTTPS, sans port dans l’URL
- Pour aller plus loin : https://docs.n8n.io/
Foire aux questions (FAQ)
Pourquoi utiliser Docker pour installer n8n ?
Docker permet d’isoler n8n dans un conteneur léger, de simplifier la gestion des dépendances et d’assurer une mise à jour rapide. Cela évite les conflits avec d’autres services présents sur la machine.
Est-il obligatoire d’utiliser Apache comme reverse proxy ?
Non. Vous pouvez utiliser Nginx ou Traefik comme alternatives. Apache est choisi ici pour sa flexibilité et son intégration simple avec Certbot pour générer un certificat SSL.
Quel est l’avantage d’un certificat SSL automatique avec Let’s Encrypt ?
Cela permet d’obtenir gratuitement un certificat HTTPS et de le renouveler automatiquement tous les 90 jours. Ainsi, vous évitez les erreurs de certificat expiré et vous sécurisez les échanges avec votre instance n8n.
Quelle configuration serveur est recommandée pour n8n ?
Un serveur Debian avec au minimum :
2 Go de RAM
1 vCPU
20 Go d’espace disque
Ces specs suffisent pour une petite équipe. Pour un usage intensif (workflows lourds, multiples utilisateurs), il vaut mieux monter en puissance.
Comment mettre à jour n8n sans tout casser ?
Comment mettre à jour n8n sans tout casser ?docker-compose pull
docker-compose up -d
Les données sont conservées dans le volume Docker, ce qui évite toute perte de configuration.
Peut-on installer plusieurs instances de n8n sur le même serveur ?
Oui, c’est possible en configurant des ports et des domaines différents pour chaque instance. Par contre, il faut prévoir plus de ressources mémoire et CPU pour éviter les ralentissements.