CinfologContactRech.

Analyse · Thomas Cadalen · 3 oct. 2026

Héberger n8n en France sur un VPS : la mise en place que j'utilise

Un VPS en France, aucun port web ouvert, l'éditeur derrière une authentification et des sauvegardes hors de l'hébergeur : la mise en place complète pour auto-héberger n8n, avec les pièges rencontrés en chemin.

Auto-héberger n8n se résume souvent à une commande docker run et un nom de domaine. Ça fonctionne le premier jour. Ce qui manque se découvre plus tard : un éditeur ouvert à tout Internet, des identifiants enregistrés qu'on ne peut plus déchiffrer après une restauration, un serveur que personne ne met à jour.

Voici la mise en place que j'utilise pour mes propres services, et que je reprends pour n8n : un VPS en France, aucun port web ouvert, l'éditeur derrière une authentification, et des sauvegardes qui ne dorment pas chez le même hébergeur. Avec les pièges rencontrés en chemin.

L'architecture en une image

Le principe tient en une phrase : le serveur n'accepte aucune connexion entrante, à part SSH. Tout le trafic web arrive par un tunnel que le serveur ouvre lui-même vers Cloudflare.

Couche Rôle Choix
Serveur Héberger les conteneurs VPS OVHcloud, datacenter de Gravelines
Pare-feu Filtrer avant le serveur Edge Network Firewall d'OVHcloud
Déploiement Lancer, mettre à jour, sauvegarder Dokploy
Accès web Exposer sans ouvrir de port Cloudflare Tunnel
Authentification Protéger l'éditeur Cloudflare Access
Sauvegardes Une copie hors de l'hébergeur Cloudflare R2

Pour n8n et sa base PostgreSQL, un VPS de 4 Go de mémoire suffit largement à l'échelle d'une PME. Chez OVHcloud, c'est moins de 5 € TTC par mois.

1. Le serveur : trois réglages avant tout le reste

La connexion SSH par clé uniquement. Les mots de passe se désactivent dans un fichier placé dans /etc/ssh/sshd_config.d/. Premier piège : l'image Ubuntu d'OVHcloud contient déjà un fichier 50-cloud-init.conf qui réactive les mots de passe, et pour SSH, c'est la première valeur lue qui l'emporte. Nommez le vôtre 00-durcissement.conf, sinon il ne sert à rien — sans le moindre message d'erreur.

Les mises à jour de sécurité automatiques, avec unattended-upgrades.

Le bon réflexe avec Docker : ne pas ajouter votre utilisateur au groupe docker pour éviter de taper sudo. Ce groupe donne les droits root sans mot de passe.

2. Le pare-feu se pose en amont, pas sur le serveur

C'est le piège le plus répandu, et le plus dangereux. Docker contourne ufw : il écrit ses propres règles réseau, et un port publié par un conteneur reste joignable même si ufw affiche qu'il est bloqué. L'interface d'administration de Dokploy, sur le port 3000, en est l'exemple typique.

La parade est un pare-feu placé avant le serveur, que Docker ne peut pas toucher. Chez OVHcloud, c'est l'Edge Network Firewall. Il ne suit pas les connexions : les réponses à ce que le serveur demande lui-même doivent être autorisées explicitement.

Règle Autorise Pourquoi
TCP established les réponses aux connexions sortantes mises à jour, images Docker, tunnel
TCP, port 22 SSH administration
UDP, port source 53 les réponses DNS résolution de noms
UDP, port source 123 les réponses NTP horloge
UDP, port source 7844 Cloudflare Tunnel protocole QUIC
Refuser tout le reste — la règle qui fait tout le travail

3. Dokploy, sans jamais l'exposer

Dokploy installe Docker, Traefik et sa propre interface. Il propose un modèle n8n prêt à l'emploi (n8n et PostgreSQL), et sait sauvegarder la base vers un stockage compatible S3 — ce qui servira plus bas.

Juste après l'installation, le premier visiteur de l'interface devient administrateur. Ouvrez-la par un tunnel SSH (ssh -L 3000:localhost:3000 …), jamais par l'adresse publique, et créez le compte immédiatement.

4. Le tunnel et l'authentification

cloudflared tourne comme une application dans Dokploy. Le tunnel envoie le nom de domaine de n8n vers Traefik, qui l'aiguille vers le conteneur : aucun port 80 ni 443 n'est ouvert sur le serveur. Côté Dokploy, le domaine de n8n se déclare sans HTTPS ni certificat — c'est Cloudflare qui termine le chiffrement.

L'éditeur de n8n se place derrière Cloudflare Access : un écran d'authentification avant même la page de connexion de n8n. Mais les webhooks, eux, doivent rester joignables par les services qui les appellent. La solution : une seconde application Access, plus précise, sur le chemin /webhook du même domaine, avec une politique Bypass. Access applique toujours la règle la plus spécifique. Faites de même pour /webhook-test si vous testez depuis l'éditeur.

Trois variables d'environnement de n8n à régler pour cette configuration :

  • N8N_WEBHOOK_URL : l'adresse publique, sinon n8n affiche des URL de webhook internes inutilisables. L'ancien nom, WEBHOOK_URL, fonctionne encore mais est déprécié depuis n8n 2.35 — c'est pourtant lui que le modèle Dokploy renseigne ;
  • N8N_PROXY_HOPS=1 : n8n sait qu'il est derrière un proxy ;
  • N8N_ENCRYPTION_KEY : fixée par vous, et pas générée au hasard au premier démarrage. Voir ci-dessous.

5. Les sauvegardes, et la clé qu'on oublie

Dokploy sauvegarde PostgreSQL chaque nuit vers un bucket Cloudflare R2, avec un jeton limité à ce seul bucket. C'est la copie qui survit si le compte ou le datacenter de l'hébergeur a un problème. La sauvegarde automatique du VPS reste utile, mais elle vit chez le même fournisseur.

Avant chaque mise à jour de n8n ou de Dokploy, un instantané du serveur (une option à quelques centimes chez OVHcloud) permet de revenir en arrière en deux minutes.

Pour 5 € par mois : n8n Cloud ou le plus petit VPS

n8n Cloud n'a pas d'offre à 5 €. Sa première marche, le forfait Starter, coûte 24 € HT par mois (20 € en paiement annuel). Le plus petit VPS d'OVHcloud coûte 3,81 € HT par mois. Voici ce que chacun met réellement à disposition :

n8n Cloud Starter VPS-1 OVHcloud
Prix 24 € HT / mois 3,81 € HT / mois
Mémoire 320 Mio 4 Go
Processeur 10 millicœurs, extensibles par à-coups 2 vCores
Exécutions 2 500 par mois sans limite
Exécutions simultanées 5 limitées par la machine
Historique des exécutions 7 jours celui que vous choisissez
Exploitation n8n s'en charge vous

La ligne qui compte est celle de la mémoire. n8n consomme à lui seul environ 180 Mio, selon sa propre documentation : sur une instance Starter, il reste donc à peine plus de 140 Mio pour faire tourner vos workflows. Un fichier un peu lourd, une réponse d'API volumineuse ou un agent d'IA suffisent à la faire tomber, et n8n prévient lui-même que manipuler l'éditeur pendant une exécution lourde consomme aussi de cette mémoire.

Sur le VPS, les 4 Go se partagent entre le système, Dokploy, PostgreSQL et n8n : comptez environ 2 Go réellement disponibles pour n8n. C'est tout de même plus de dix fois la marge de l'instance Starter, pour six fois moins cher, et sans compteur d'exécutions.

Ce que le prix du Cloud achète, ce n'est pas de la puissance : c'est l'exploitation. Les mises à jour, la disponibilité, les sauvegardes et le support sont chez n8n. Sur le VPS, ils sont chez vous. À 2 500 exécutions par mois et avec des workflows légers, le forfait Starter fait très bien l'affaire. Dès que les volumes ou la taille des données montent, il faut passer au forfait Pro (60 € HT par mois, 640 Mio de mémoire) — ou envisager un serveur.

Ce que ça coûte vraiment

Poste Coût mensuel
VPS 4 Go chez OVHcloud moins de 5 € TTC
Cloudflare Tunnel, Access (jusqu'à 50 utilisateurs), R2 (10 Go) 0 € dans les offres gratuites
Licence n8n (édition communautaire, usage interne) 0 €

Le vrai coût n'est pas sur cette ligne : c'est le temps d'exploitation. Mises à jour, surveillance des sauvegardes, réaction quand quelque chose casse. Si personne ne s'en occupera, l'économie est fictive et n8n Cloud  reste le bon choix.

En résumé

  • Un pare-feu en amont du serveur, parce que Docker contourne ufw.
  • Aucun port web ouvert : tout passe par le tunnel.
  • L'éditeur derrière Access, les webhooks en Bypass.
  • Des sauvegardes hors de l'hébergeur, et la clé de chiffrement rangée à part.

Si vous hésitez entre n8n Cloud et l'auto-hébergement, ou si vous voulez cette mise en place sans y passer vos soirées, c'est précisément ce sur quoi j'interviens.

Questions sur cette page

Peut-on héberger n8n en France ?

Oui. n8n s'installe sur n'importe quel serveur, par exemple un VPS OVHcloud dans un datacenter français. Les données qui transitent dans vos workflows restent alors sur ce serveur. Attention au point de sortie : un workflow qui envoie des données vers un service hors Union européenne les fait sortir quand même.

Pourquoi ufw ne suffit-il pas à protéger un serveur Docker ?

Docker écrit ses propres règles réseau, qui passent avant celles d'ufw : un port publié par un conteneur reste joignable même si ufw affiche qu'il est bloqué. Le filtrage fiable se fait en amont du serveur, dans le pare-feu de l'hébergeur.

Comment garder les webhooks n8n accessibles si l'éditeur est protégé ?

Avec Cloudflare Access, on protège le domaine de n8n, puis on crée une seconde application, plus précise, sur le chemin /webhook avec une politique Bypass. Access applique la règle la plus spécifique : l'éditeur demande une authentification, les webhooks restent joignables.

Que faut-il sauvegarder pour pouvoir restaurer n8n ?

La base PostgreSQL, et la clé de chiffrement N8N_ENCRYPTION_KEY. Sans la bonne clé, une base restaurée contient des workflows intacts mais des identifiants illisibles.

Cet arbitrage à poser sur votre cas plutôt que sur un exemple ? Décrivez votre situation en quelques lignes : je réponds sous 24–48 h ouvrées, avec un avis franc sur ce qui vaut la peine d’être fait — y compris si ce n’est pas par moi.

Décrire mon besoin

Recevoir les nouveautés des outils qui vous concernent, chaque lundi.

← Tous les articles

Lien affilié

Ça ne vous coûte rien de plus.

Si vous souscrivez en passant par ce lien, l’éditeur me reverse une petite commission. Pour vous, le prix est exactement le même : pas de surcoût, pas d’engagement en plus.

C’est la façon la plus simple de soutenir le travail que vous venez de lire. La veille, les comparatifs et les guides de ce site sont gratuits, sans publicité, et le resteront.

Les recommandations, elles, ne dépendent pas des commissions : quand un outil gratuit ou une solution plus simple suffit, je le dis — même quand il n’y a rien à gagner.