Déployer n8n gratuitement avec Docker et ngrok
Déploie n8n gratuitement avec Docker et ngrok accessible partout sans frais d'hébergement.

Daryl Ngako
Se lancer dans l'automatisation avec n8n peut vite devenir frustrant quand on réalise qu'un hébergement cloud coûte cher, ou que le simple usage local bride les fonctionnalités essentielles comme les webhooks.
Dans ce guide complet, je vais te montrer comment lever ces barrières. Tu vas apprendre à déployer n8n localement, le rendre accessible depuis n'importe où et sécuriser tes données le tout gratuitement grâce à la puissance de Docker et ngrok.
C'est quoi N8N ?
n8n, c’est une plateforme open-source d’automatisation de workflows pensée pour connecter des outils entre eux et orchestrer des processus métier.
Imagine un assistant intelligent capable de :
- Échanger avec tes prospects sur WhatsApp 24h/24.
- Réserver des rendez-vous automatiquement dans ton calendrier.
- Synchroniser les données dans ton CRM (Google Sheets, Airtable, Notion).
- Alerter un humain uniquement en cas de demande complexe.
C’est l’équivalent open-source de Zapier ou Make, offrant une liberté technique totale sans les coûts par exécution.
Voici un aperçu des tarifs de leur offre Cloud :

Le constat est sans appel : 20$ / mois pour seulement 5 workflows actifs, c'est un investissement lourd quand on débute. Heureusement, l'auto-hébergement nous permet de briser ces limites.
Le problème du Localhost
Quand tu installes n8n sur localhost, tout semble bien fonctionner… jusqu'à ce que tu fasses face à ces trois obstacles majeurs :
-
Incompatibilité des Webhooks : Les plateformes comme Gmail, YouTube, Stripe ou Telegram ne peuvent pas envoyer de données à http://localhost:5678. Elles ont besoin d'une URL publique valide.
-
Exigence HTTPS : La majorité des APIs modernes imposent des connexions chiffrées HTTPS. Ton localhost ne fournit pas ça.
-
Accessibilité limitée : Impossible de déclencher tes workflows depuis un autre appareil (téléphone, autre PC) ou de partager l'accès à ton éditeur n8n.
En résumé : sans domaine public, n8n reste un outil isolé sur ta machine, incapable de communiquer avec le monde extérieur.
ngrok : le pont entre ta machine et Internet
ngrok est un service de tunnelisation qui va résoudre tous ces problèmes. Il crée un tunnel sécurisé entre ta machine locale et Internet.
Concrètement, ngrok te fournit :
- Un domaine public gratuit : une URL unique du type https://ton-url.ngrok-free.app
- Un tunnel chiffré : tout le trafic entre Internet et ta machine passe par un tunnel sécurisé
- HTTPS automatique : indispensable pour que les services tiers acceptent d'envoyer leurs webhooks
Le schéma est simple :

Voici les étapes à suivre :
-
Installez n8n globalement : npm install n8n -g.
-
Lancez n8n : n8n start (par défaut sur le port 5678).
-
Téléchargez et installez ngrok depuis ngrok.com, ajoutez votre authtoken si besoin : ngrok config add-authtoken VOTRE_TOKEN.
-
Exposez le port : ngrok http 5678. Ngrok génère une URL HTTPS publique accessible partout.
Mais je ne te recommande absolument pas cette méthode : elle est difficile à maintenir, pollue ton système et ne gère pas la persistance de manière isolée. C'est là que Docker entre en jeu.
Configuration optimale avec Docker
Utiliser Docker c'est choisir la stabilité. Ton instance n8n devient un environnement isolé, reproductible et facile à mettre à jour.
Pour qu'un conteneur n8n fonctionne correctement derrière un tunnel ngrok, tu dois configurer plusieurs variables d'environnement et gérer la persistance des données.
Les variables d'environnement essentielles
Voici les variables critiques que tu dois définir :
| Variable | Rôle |
|---|---|
| WEBHOOK_URL | Indique aux services tiers l'adresse exacte où envoyer les webhooks. Doit correspondre à ton URL ngrok. |
| N8N_EDITOR_BASE_URL | Définit l'URL publique pour accéder à l'interface de n8n. Doit correspondre à ton URL ngrok. |
| N8N_DEFAULT_BINARY_DATA_MODE | Configuré sur filesystem. Stocke les fichiers lourds (PDF, images) sur le disque plutôt qu'en RAM. |
| N8N_COMMUNITY_PACKAGES_ENABLED | Permet l'installation de nœuds communautaires (ex: nœuds MCP). |
Configuration du .env
Crée un fichier .env à la racine de ton dossier projet :
# Ces variables seront injectées dans le conteneur n8n
NGROK_TOKEN=ton_token_ngrok_ici
NGROK_DOMAIN=ton-domaine-fixe.ngrok-free.app
N8N_EDITOR_BASE_URL=https://ton-url.ngrok-free.app
WEBHOOK_URL=https://ton-url.ngrok-free.app
N8N__COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
N8N_DEFAULT_BINARY_DATA_MODE=filesystemPersistance des données avec les volumes Docker
Sans volume Docker, tu perds tout (workflows, identifiants, historique) à chaque redémarrage du conteneur.
Le principe est simple : on mappe un dossier local de ta machine vers le dossier de données de n8n dans le conteneur.

Ce mappage garantit que même si le conteneur est supprimé ou recréé, toutes tes données restent intactes sur ton disque.
Installation étape par étape
Étape 1 : Préparer l'environnement
Tu dois installer deux outils :
1. Docker Desktop
Télécharge et installe Docker Desktop pour ton système d'exploitation.

Vérifie que Docker est bien installé :
docker --version2. ngrok
Télécharge et installe ngrok.

Ensuite, crée un compte gratuit sur ngrok.com et récupère ton authtoken depuis le tableau de bord.

Lie ta machine à ton compte ngrok :
ngrok config add-authtoken VOTRE_TOKENÉtape 2 : Activer le tunnel ngrok
Ouvre un nouveau terminal et lance le tunnel :
ngrok http 5678ngrok va te fournir une URL publique du type :

Étape 3 : Créer le fichier Docker Compose
Crée un dossier pour ton projet, puis ajoute un fichier docker-compose.yml :
mkdir n8n-local && cd n8n-localVoici le contenu du fichier docker-compose.yml :
services:
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- "5678:5678"
environment:
- WEBHOOK_URL=${WEBHOOK_URL}
- N8N_EDITOR_BASE_URL=${N8N_EDITOR_BASE_URL}
- N8N_COMMUNITY_PACKAGES_ENABLED=true
- N8N_DEFAULT_BINARY_DATA_MODE=filesystem
volumes:
- ./n8n_data:/home/node/.n8n
ngrok:
image: wernight/ngrok
restart: always
# Le bloc command Optionnel
command:
- "http"
- "n8n:5678"
- "--domain=${NGROK_DOMAIN}" # optionnel
environment:
- NGROK_AUTHTOKEN=${NGROK_TOKEN}
depends_on:
- n8nAttention : Assure-toi que les variables NGROK_TOKEN, WEBHOOK_URL, N8N_EDITOR_BASE_URL et NGROK_DOMAIN sont bien définies dans ton fichier .env. Pour le domaine, ngrok offre désormais un domaine statique gratuit par compte.
Grâce à cette configuration, le conteneur ngrok expose directement le conteneur n8n. Les deux communiquent dans le réseau interne de Docker, ce qui est plus sécurisé et performant.
Étape 4 : Lancer n8n avec Docker
Lance le conteneur n8n :
docker compose up -d
Vérifie que le conteneur tourne :
docker psTu devrais voir quelque chose comme ceci :

Avec Docker :
- Les volumes Docker sauvegardent tes workflows et credentials même après suppression du conteneur.
- Les variables d'environnement se passent directement dans docker run, sans config manuelle.
- n8n tourne isolé, sans polluer ton Node local.
Astuce : obtenir un domaine ngrok fixe
Sur le plan gratuit de ngrok, l'URL change à chaque redémarrage. Pour éviter de modifier ton docker-compose.yml à chaque fois, tu peux réserver un domaine statique gratuit sur le tableau de bord ngrok.
Ensuite, lance ngrok avec ce domaine :
ngrok http --domain=ton-domaine-fixe.ngrok-free.app 5678Comme ça, ton URL reste toujours la même, et tu n'as plus besoin de toucher à ta configuration Docker.
Récapitulatif des commandes
Voici un résumé des commandes essentielles :
# 1. Lancer l'environnement (avec création du dossier data auto)
docker compose up -d
# 2. Vérifier que tout tourne
docker compose ps
# 3. Voir les logs en temps réel (pratique pour débugger)
docker compose logs -f n8n
# 4. Arrêter proprement le service
docker compose downPourquoi passer sur un serveur un jour ?
Tu te demandes sûrement : "Si c'est gratuit et que ça marche, pourquoi certains paient pour un serveur ?"
Le setup Docker + ngrok sur ton PC est le meilleur laboratoire au monde pour débuter. Mais pour une utilisation professionnelle, le serveur (VPS) devient indispensable pour trois raisons :
- Disponibilité 24h/7 : Ton PC doit rester allumé. Si tu fermes ton ordinateur pour dormir, tes automatisations dorment aussi. Un VPS à 6€/mois ne s'arrête jamais.
- Stabilité du lien : Une coupure Wi-Fi chez toi brise le tunnel. En centre de données, la connexion est redondée.
- Performance : Si tu commences à gérer des milliers de données ou des fichiers lourds, les ressources de ton PC et les limites de bande passante de ngrok (plan gratuit) deviendront un goulot d'étranglement.
Mon conseil : Commence en local pour tester tes idées, construire tes premières automatisations sans frais. Une fois que tes automatisations deviennent critiques pour ton business, transfère ton dossier n8n_data sur un petit VPS.
Conclusion
L'alliance de Docker et ngrok te permet de bénéficier des avantages d'un abonnement n8n Cloud, accessibilité à distance, déclencheurs en temps réel, intégrations complètes tout en conservant un contrôle total sur tes données et une gratuité absolue.
Tu as maintenant une instance n8n qui :
- 🌐 Est accessible depuis n'importe où dans le monde
- 🔒 Dispose d'une connexion HTTPS sécurisée
- 📦 Persiste toutes tes données grâce aux volumes Docker
- ⚡ Gère efficacement les fichiers lourds
- 🔗 Peut recevoir des webhooks de n'importe quel service externe
Tu as désormais toutes les cartes en main pour transformer ton PC en une véritable usine à automatisations. À toi de jouer ! 🚀
