Bonjour, l’URL Webhook ne s’établit pas dans mon instance n8n auto-hébergée. J’ai configuré un tunnel Cloudflare (je peux accéder à l’instance n8n et me connecter en utilisant l’URL publique xx.domain.com:5678) et je sais que cela fonctionne. Même si cela ne fonctionnait pas, cela n’aurait aucun effet sur mon problème :
Quel que soit le changement que j’apporte à mes variables d’environnement, l’URL de redirection OAuth ne passe pas de localhost:5678 par défaut à mon URL publique.
Voici les variables d’environnement que j’ai définies :
N8N_EDITOR_BASE_URL=
N8N_PROTOCOL=https
N8N_HOST=
WEBHOOK_URL=https://
N8N_PROXY_HOPS=1
J’ai l’impression de tourner en rond. Soit je manque quelque chose d’évident que j’espère que quelqu’un pourra me signaler, soit je dois tout effacer et recommencer car je suis descendu dans un terrier de lapin pendant les 3 dernières semaines en essayant de comprendre.
Salut @minkeyboy2004, bienvenue !
Avec la version npm de n8n, as-tu essayé d’exporter ces variables dans le shell avant de lancer n8n ? Comme exécuter ces commandes :
puis exécute n8n start. C’est généralement la solution, car pour n8n, parfois les variables d’environnement que tu as configurées ne sont pas accessibles. Essaie cela et dis-moi si ça ne fonctionne pas.
Assure-toi que tu définis ces variables en conformité avec ceci :
Désolé, j’aurais probablement dû te dire comment je les ai configurées ! Oui, je les ai lancées avec “export” devant et je ne les ai pas stockées dans un fichier. Quand je lance “env” dans le CLI, j’obtiens bien toutes ces variables avec mes valeurs définies et j’ai arrêté puis redémarré l’instance après chaque modification mais sans succès.
Bienvenue @minkeyboy2004 dans notre communauté ! Je suis Jay et je suis un créateur vérifié n8n.
Pour npm install, les variables doivent être dans un fichier .env ou définies dans la même session shell avant de démarrer n8n. Le moyen le plus fiable est de créer un fichier ~/.n8n/.env (n8n le détecte automatiquement) ou de les définir dans votre fichier de service systemd sous [Service] avec Environment="WEBHOOK_URL=https://yourdomain.com/". Aussi - la variable clé est WEBHOOK_URL, pas N8N_HOST. Définissez WEBHOOK_URL=https://yourdomain.com/ (avec une barre oblique finale) et redémarrez n8n. Vérifiez Paramètres > n8n API dans l’interface utilisateur après redémarrage pour confirmer que l’URL webhook a été mise à jour.
J’ai suivi ta suggestion et créé un fichier d’environnement dans le répertoire n8n ~/.n8n/.env et redémarré n8n, mais l’URL de rappel affiche toujours « localhost »
J’ai aussi essayé de supprimer N8N_HOST et l’URL de base de l’éditeur puisque j’ai pris cette capture d’écran, en redémarrant après chaque modification, mais il affiche toujours localhost:5678
Je pense que tu as résolu le problème ! J’utilise PM2 Process Manager pour obtenir des métriques en direct de l’application sans avoir besoin de me connecter au serveur et de vérifier. Je le démarrais normalement avec « pm2 start n8n » mais depuis la création du fichier .env et son démarrage en utilisant simplement « n8n », il semble fonctionner correctement. Donc, tout ce que PM2 faisait semble clairement le casser.
Pour toute personne qui rencontrerait ce problème à l’avenir. Il s’avère que PM2 empêchait n8n de récupérer les variables d’environnement. Si je découvre comment utiliser PM2 tout en configurant les variables d’environnement, je mettrai à jour ce message.
Ah que c’est super @minkeyboy2004
Je suis vraiment heureux ! Je te remercie d’avoir marqué la réponse comme solution pour que les autres membres puissent trouver de l’aide plus facilement.
Reviens quand tu en auras besoin
@minkeyboy2004 content que tu aies réussi ! Pour le problème de PM2 + variables d’environnement, la solution est d’utiliser un fichier d’écosystème PM2 (ecosystem.config.js) et de définir tes variables d’environnement là-bas sous la clé env, puis d’exécuter pm2 start ecosystem.config.js. De cette façon, PM2 transmet les variables directement au processus au lieu de compter sur sa lecture d’un fichier .env, ce que PM2 ne fait pas par défaut.