N8N Cloud vs self-hosted : quel choix pour une PME ?
N8N propose deux modes d'utilisation : la version cloud gérée (n8n.cloud) et le self-hosting sur votre propre infrastructure. Ce choix n'est pas anodin — il impacte vos coûts, la conformité RGPD, et les possibilités de personnalisation.
| Critère | N8N Cloud | N8N Self-hosted |
|---|---|---|
| Coût mensuel (usage modéré) | 20€ à 50€/mois | 5€ à 20€/mois (VPS) |
| Coût mensuel (usage intensif) | 100€ à 500€/mois | 20€ à 60€/mois (VPS plus puissant) |
| Maintenance requise | Aucune (géré par N8N) | Mises à jour, sauvegardes, monitoring |
| Conformité RGPD | Serveurs US (moins favorable) | Serveurs EU de votre choix (optimal) |
| Données sensibles | Transitent par les serveurs N8N | Restent sur votre infrastructure |
| Personnalisation | Limitée | Complète (nœuds custom, plugins) |
| Nombre d'exécutions | Limité par le plan | Illimité (selon ressources serveur) |
| Temps de mise en place | 5 minutes | 2 à 4 heures (ce guide) |
Bon à savoir : Le self-hosting devient rentable dès que vous dépassez 20 à 30 exécutions quotidiennes ou que vous traitez des données clients. Pour une TPE avec peu de workflows simples, N8N Cloud peut être plus adapté malgré le coût supérieur.
Qui devrait self-héberger N8N ?
- Entreprises traitant des données personnelles (secteur médical, juridique, RH) : le RGPD impose de contrôler la localisation des données
- PME avec des volumes élevés : au-delà de quelques centaines d'exécutions par jour, le self-hosting est nettement moins coûteux
- Entreprises avec des besoins de personnalisation : nœuds custom, plugins tiers, intégrations propriétaires
- Équipes techniques capables de gérer un serveur Linux et Docker
Prérequis et configuration serveur
Un bon déploiement commence par un serveur correctement dimensionné et configuré. Bâcler cette étape génère des problèmes en production.
Configuration serveur recommandée
| Usage | vCPU | RAM | Stockage | Coût estimé |
|---|---|---|---|---|
| Démarrage / test | 2 vCPU | 2 Go | 20 Go SSD | ~5€/mois |
| Production légère (<100 workflows) | 2 vCPU | 4 Go | 40 Go SSD | ~10€/mois |
| Production standard | 4 vCPU | 8 Go | 80 Go SSD | ~20€/mois |
| Production intensive (queue mode) | 8 vCPU | 16 Go | 160 Go SSD | ~50€/mois |
OS recommandé : Ubuntu 24.04 LTS. C'est la distribution la mieux supportée par Docker et la plus documentée pour N8N. Évitez les distributions exotiques ou les versions trop récentes qui peuvent avoir des incompatibilités.
Configuration initiale du serveur
Après la création de votre VPS, exécutez ces commandes de base :
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo usermod -aG sudo n8nadmin
Attention : Ne laissez jamais le port 5432 (PostgreSQL) ouvert sur internet. PostgreSQL doit être accessible uniquement en interne, entre les conteneurs Docker. Le seul port public doit être 443 (HTTPS).
Nom de domaine
Vous aurez besoin d'un sous-domaine pointant vers votre serveur. Créez un enregistrement DNS A de type :
Attendez la propagation DNS (généralement 5 à 30 minutes) avant de passer à l'étape SSL.
Installation Docker en 15 minutes
Docker est le moyen le plus fiable de déployer N8N en production. Il isole l'application, facilite les mises à jour et garantit la cohérence entre les environnements.
Installer Docker Engine
sudo sh get-docker.sh
newgrp docker
docker compose version
Le docker-compose.yml complet
Créez le dossier de travail et le fichier docker-compose :
Voici le docker-compose.yml complet, commenté ligne par ligne :
Astuce AutomateIA : Notez le binding 127.0.0.1:5678:5678 — N8N n'est accessible que depuis localhost, jamais directement depuis internet. Nginx sera l'unique point d'entrée public, ce qui est bien plus sécurisé qu'exposer N8N directement.
Lancer les conteneurs
Configuration nginx et SSL
Nginx joue le rôle de reverse proxy : il reçoit les requêtes HTTPS depuis internet et les transmet au conteneur N8N sur le port 5678. C'est aussi lui qui gère le certificat SSL.
Installer nginx et certbot
Configuration nginx pour N8N
Créez le fichier /etc/nginx/sites-available/n8n :
sudo nginx -t
sudo systemctl reload nginx
Certbot modifie automatiquement la configuration nginx pour ajouter le HTTPS et configurer le renouvellement automatique. Vérifiez que le renouvellement fonctionne :
Variables d'environnement essentielles
Le fichier .env est le cœur de votre configuration. Une erreur ici peut rendre votre instance inutilisable ou vulnérable. Voici les variables indispensables et leur rôle :
N8N_HOST=n8n.votre-domaine.fr
N8N_PORT=5678
N8N_PROTOCOL=https
DB_POSTGRESDB_HOST=postgres
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_DATABASE=n8n
DB_POSTGRESDB_USER=n8nuser
DB_POSTGRESDB_PASSWORD=mot_de_passe_fort_ici
EXECUTIONS_DATA_SAVE_ON_ERROR=all
EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS=true
Attention critique : La valeur de N8N_ENCRYPTION_KEY chiffre tous vos credentials (mots de passe API, tokens). Si vous la changez ou la perdez, tous vos credentials deviennent illisibles et vous devrez les re-saisir un par un. Générez-la une seule fois et sauvegardez-la dans un gestionnaire de mots de passe.
Configurer PostgreSQL pour la production
SQLite est utilisé par défaut dans N8N et convient pour le développement. Pour la production, PostgreSQL est non négociable : il gère la concurrence, supporte les sauvegardes à chaud et résiste aux pannes.
Pourquoi PostgreSQL est obligatoire en production
- Concurrence : SQLite verrouille toute la base lors d'une écriture. Avec 10 workflows actifs simultanément, vous aurez des timeouts et des erreurs
- Intégrité des données : PostgreSQL est ACID-compliant et résiste aux crashs serveur. SQLite peut se corrompre si le serveur s'éteint brutalement
- Sauvegardes :
pg_dumppermet des sauvegardes cohérentes à chaud sans arrêter N8N - Performance : Au-delà de quelques milliers d'exécutions, PostgreSQL est nettement plus rapide pour les requêtes complexes
Optimisations PostgreSQL recommandées
Pour les configurations de production, ajoutez ces paramètres à votre service PostgreSQL dans docker-compose.yml :
Astuce AutomateIA : Activez le pruning automatique des anciennes exécutions avec la variable EXECUTIONS_DATA_MAX_AGE=30 (30 jours de rétention). Sans cela, la base PostgreSQL grossit indéfiniment et ralentit progressivement N8N.
Vérifier la connexion PostgreSQL
Sauvegardes automatiques des workflows
Une instance N8N sans sauvegarde est une bombe à retardement. Vos workflows représentent des heures de travail et une valeur business réelle. La stratégie de sauvegarde doit être mise en place avant la mise en production, pas après le premier incident.
Stratégie de sauvegarde recommandée
Combinez deux méthodes complémentaires :
- Dump PostgreSQL quotidien : sauvegarde complète de toutes les données (workflows, exécutions, credentials chiffrés)
- Export JSON des workflows via API : sauvegarde lisible et versionnable des définitions de workflows uniquement
Script de sauvegarde automatisé
Créez le fichier /opt/n8n/backup.sh :
BACKUP_DIR="/opt/n8n/backups"
DATE=$(date +%Y%m%d_%H%M%S)
RETENTION_DAYS=30
pg_dump -U n8nuser n8n | gzip > "$BACKUP_DIR/n8n_db_$DATE.sql.gz"
find $BACKUP_DIR -name "*.bak" -mtime +$RETENTION_DAYS -delete
echo "Sauvegarde terminée : $DATE"
Bon à savoir : Stockez les sauvegardes sur un serveur distinct. Une sauvegarde sur le même serveur que la production ne protège pas contre la panne matérielle ou le crash disque. OVH Object Storage et Scaleway Object Storage offrent des solutions économiques dès 0,01€/Go/mois.
Tester la restauration
Une sauvegarde non testée n'est pas une sauvegarde. Testez la restauration au moins une fois par mois :
docker compose exec -T postgres psql -U n8nuser n8n
Mise à jour N8N sans downtime
N8N sort des mises à jour fréquentes (environ 2 à 4 par mois). Une procédure de mise à jour rigoureuse évite les interruptions de service et les régressions.
Procédure de mise à jour recommandée
- Consultez les release notes sur github.com/n8n-io/n8n/releases. Repérez les "breaking changes" qui peuvent nécessiter des ajustements dans vos workflows.
- Faites une sauvegarde avant toute mise à jour :
/opt/n8n/backup.sh - Mettez en pause les workflows critiques depuis l'interface N8N (bouton toggle sur chaque workflow actif)
- Mettez à jour l'image dans docker-compose.yml si vous utilisez un tag de version fixe, ou lancez directement le pull :
docker compose logs --tail=50 n8n
Astuce AutomateIA : Plutôt que d'utiliser n8nio/n8n:latest, épinglez une version spécifique dans docker-compose.yml (n8nio/n8n:1.82.0 par exemple). Cela évite les mises à jour automatiques non voulues et vous donne le contrôle total du moment de la mise à jour.
En cas de problème après mise à jour
Si la mise à jour cause des problèmes, revenez à la version précédente :
Sécurité : hardening de votre instance
N8N expose une interface web avec accès à des credentials sensibles et la capacité d'exécuter des requêtes HTTP vers n'importe quelle API. La sécurisation est non négociable.
Authentification et gestion des utilisateurs
Depuis N8N 0.198, le système multi-utilisateurs est intégré. Configurez les rôles correctement :
- Owner : accès complet, peut inviter des utilisateurs, voir tous les workflows
- Admin : accès complet aux workflows, peut gérer les credentials
- Member : accès aux workflows partagés uniquement
Lors du premier accès à votre instance, N8N vous demandera de créer le compte Owner. Utilisez un mot de passe fort (24 caractères minimum) et activez immédiatement le 2FA.
Variables d'environnement de sécurité
Restriction d'accès par IP
Si seules des IPs connues doivent accéder à l'interface N8N (équipe interne, VPN), ajoutez dans nginx :
Attention : Si vous restreignez l'accès par IP à l'interface N8N, veillez à laisser les chemins /webhook/ et /webhook-test/ accessibles sans restriction — sinon vos webhooks depuis des services tiers (Stripe, GitHub, etc.) seront bloqués.
Monitoring et alertes
Une instance N8N non monitorée peut silencieusement tomber en panne pendant des heures. Le monitoring proactif vous alerte avant que les utilisateurs ne se plaignent.
Health check N8N
N8N expose un endpoint de santé sur /healthz. Configurez une vérification externe toutes les 5 minutes :
Utilisez des services de monitoring externes gratuits comme UptimeRobot ou Better Uptime pour surveiller cet endpoint.
Logs Docker
N8N_LOG_FILE_LOCATION=/home/node/.n8n/logs/n8n.log
Workflow d'alerte interne
Créez un workflow N8N de monitoring qui s'exécute toutes les heures et vous alerte si des workflows ont échoué. Consultez notre guide sur la gestion des erreurs N8N pour implémenter les alertes email et Slack.
Besoin d'aide pour configurer votre instance N8N ?
Notre équipe déploie et configure des instances N8N self-hosted en production pour des PME françaises. Audit de votre architecture, mise en place du monitoring, formation de vos équipes.
Obtenir mon audit gratuitScalabilité : queue mode et workers
Pour les entreprises avec des volumes importants de workflows, N8N propose un mode "queue" qui distribue les exécutions sur plusieurs processus workers. Ce mode nécessite Redis en plus de PostgreSQL.
Quand passer en queue mode ?
- Plus de 50 workflows actifs simultanément
- Des workflows avec des exécutions longues (>5 minutes)
- Des pics de charge prévisibles (ex. envoi de emails en batch)
- Besoin de haute disponibilité avec plusieurs instances N8N
Architecture queue mode
Dans cette architecture :
- Le processus Main : gère l'interface web, les webhooks et met les tâches en file d'attente Redis
- Les Workers : récupèrent les tâches depuis Redis et les exécutent. Vous pouvez en lancer autant que nécessaire
Configuration docker-compose pour le queue mode
Ajoutez Redis et un service worker à votre docker-compose.yml :
Ajoutez aussi les variables Redis dans votre .env :
QUEUE_BULL_REDIS_HOST=redis
QUEUE_BULL_REDIS_PORT=6379
QUEUE_HEALTH_CHECK_ACTIVE=true
Pour scaler horizontalement, lancez plusieurs workers : docker compose up -d --scale n8n-worker=3. Chaque worker ajoute de la capacité d'exécution parallèle.
Pour aller plus loin avec N8N et maîtriser la gestion des erreurs dans vos workflows, consultez notre guide complet sur le débogage et la gestion des erreurs N8N. Pour comprendre comment intégrer N8N dans votre stratégie d'automatisation globale, notre page dédiée N8N présente tous les cas d'usage pour les PME françaises. Vous pouvez aussi consulter le guide débutant automatisation IA pour cadrer votre stratégie globale avant de déployer votre infrastructure.