Salut à tous, j’ai quelques problèmes. Je suis en train de créer un assistant IA WhatsApp et j’exécute n8n avec docker sur mon ordinateur local. Le problème, c’est que l’URL de test et l’URL de production affichent localhost même après avoir défini la variable ENV sur l’URL ngrok dans Portainer.
Décrivez le problème/l’erreur/la question
Quel est le message d’erreur (le cas échéant) ?
Veuillez partager votre workflow
(Sélectionnez les nœuds sur votre canevas et utilisez les raccourcis clavier CMD+C/CTRL+C et CMD+V/CTRL+V pour copier et coller le workflow.)
Partagez la sortie retournée par le dernier nœud
Informations sur votre configuration n8n
- Version n8n : 2.28.2
- Base de données (par défaut : SQLite) : docker
- Paramètre EXECUTIONS_PROCESS de n8n (par défaut : own, main) :
- Exécution de n8n via (Docker, npm, n8n cloud, application de bureau) : docker
- Système d’exploitation : Windows
@Stoneage
Avez-vous configuré webhook_url sur votre sous-domaine ngrok ?
Salut @Stoneage Bienvenue !
Les URLs restent sur localhost parce que la variable n’atteint jamais le conteneur. Le panneau « Variables d’environnement » de Portainer sur une pile ne fait que la substitution ${VAR} dans le fichier compose, il n’injecte rien dans le conteneur, donc le service lui-même doit la déclarer :
services:
n8n:
environment:
- WEBHOOK_URL=https://your-subdomain.ngrok-free.app/
- N8N_PROXY_HOPS=1
Redéployez la pile pour que le conteneur soit recréé, un simple redémarrage conserve l’ancienne variable d’environnement. Ensuite, vérifiez qu’elle a bien été appliquée :
docker exec <your-n8n-container> printenv WEBHOOK_URL
Rouvrez le workflow et les URLs de test et de production porteront l’hôte ngrok. Sur le plan gratuit de ngrok, le sous-domaine change à chaque redémarrage, donc la valeur doit être mise à jour chaque fois à moins d’utiliser un domaine statique.