Webhook no se configura

Describe el problema/error/pregunta

Hola, la URL del Webhook no se configura en mi instancia de n8n auto-hospedada. Tengo un túnel de Cloudflare configurado (puedo acceder a la instancia de n8n e iniciar sesión usando la URL pública xx.domain.com:5678) y sé que está funcionando. Incluso si eso no estuviera funcionando, aún no tendría efecto en mi problema:

No importa lo que cambie en mis variables de entorno, no actualizará la URL de Redirección de OAuth del localhost:5678 predeterminado a mi URL pública.

Aquí están las variables de entorno que tengo configuradas:

  • N8N_EDITOR_BASE_URL=
  • N8N_PROTOCOL=https
  • N8N_HOST=
  • WEBHOOK_URL=https://
  • N8N_PROXY_HOPS=1

Siento que estoy dando vueltas en círculos. O bien me falta algo obvio que espero que alguien pueda señalar, o necesito borrarlo todo y empezar de nuevo porque he estado en una madriguera durante las últimas 3 semanas intentando resolver esto.

Información sobre tu configuración de n8n

  • versión de n8n: 2.20.7-exp.0
  • Base de datos (predeterminada: SQLite): sqlite
  • Configuración N8N EXECUTIONS_PROCESS (predeterminada: own, main): N/A
  • Ejecutando n8n mediante (Docker, npm, n8n cloud, aplicación de escritorio): npm
  • Sistema operativo: Ubuntu 24.04.4 LTS

Hola @minkeyboy2004, ¡bienvenido!
¿Ya has intentado exportar esas variables en el shell antes de ejecutar n8n con la versión de npm? Como ejecutar estos comandos:

export N8N_HOST=xx.domain.com
export N8N_PROTOCOL=https
export N8N_EDITOR_BASE_URL=https://xx.domain.com/
export WEBHOOK_URL=https://xx.domain.com/
export N8N_PROXY_HOPS=1

y luego ejecutar n8n start. Normalmente esto es la solución, ya que en n8n, a veces las variables de entorno que tienes configuradas no son accesibles. Prueba esto y avísame si falla.

Asegúrate de que estés configurando esas variables de acuerdo con esto:

Hola @Anshul_Namdev,

Disculpa, probablemente debería haber mencionado cómo los configuré. Sí, los he estado ejecutando con “export” al frente y no los he almacenado en un archivo. Cuando ejecuto “env” en la CLI, obtengo todas esas variables con los valores que definí y he detenido e iniciado la instancia después de cada cambio pero sin éxito.

¡Bienvenido @minkeyboy2004 a nuestra comunidad! Soy Jay y soy un creador verificado de n8n.

Para npm install, las variables necesitan estar en un archivo .env o configuradas en la misma sesión de shell antes de iniciar n8n. La forma más confiable es crear un archivo ~/.n8n/.env (n8n lo detecta automáticamente) o configurarlas en tu archivo de servicio systemd bajo [Service] con Environment="WEBHOOK_URL=https://yourdomain.com/". Además, la clave importante es WEBHOOK_URL, no N8N_HOST. Establece WEBHOOK_URL=https://yourdomain.com/ (con barra diagonal final) y reinicia n8n. Verifica Configuración > n8n API en la interfaz después de reiniciar para confirmar que la URL del webhook se ha actualizado.

¡Bienvenido a la comunidad n8n @minkeyboy2004!
¿Cómo inicias tu n8n?

Hola @nguyenthieutoan,

He hecho lo que sugeriste y creé un archivo de entorno en el directorio de n8n ~/.n8n/.env y reinicié n8n, pero la URL de devolución de llamada sigue mostrando “localhost”

Aquí está la configuración del archivo:

También intenté eliminar N8N_HOST y Editor base URL ya que tomé esa captura de pantalla, reiniciando después de cada cambio, pero sigue mostrando localhost:5678

Hola @tamy.santos,

¡Creo que lo has resuelto! Uso PM2 Process Manager para poder obtener métricas en vivo de la aplicación sin tener que iniciar sesión en el servidor y verificar. Normalmente lo iniciaría usando “pm2 start n8n” pero desde que creé el archivo .env + lo inicié simplemente usando “n8n” parece estar funcionando, así que sea lo que sea que PM2 está haciendo, claramente lo está rompiendo.

¡Gracias a los dos! Todo el crédito es para ustedes @tamy.santos @nguyenthieutoan

Para cualquiera que se encuentre con esto en el futuro. Parece que PM2 estaba impidiendo que n8n recogiera las variables de entorno. Si descubro cómo usar PM2 mientras establezco las variables de entorno, actualizaré esto.

¡Ah qué excelente @minkeyboy2004!
¡Me alegra mucho! Te agradezco que hayas marcado la respuesta como solución para que otros miembros puedan encontrar ayuda más fácilmente.
Vuelve siempre que necesites :waving_hand:

@minkeyboy2004 ¡me alegra que te funcione! Para el problema de PM2 + variables de entorno, la solución es usar un archivo de ecosistema de PM2 (ecosystem.config.js) y establecer tus variables de entorno ahí bajo la clave env, luego ejecutar pm2 start ecosystem.config.js. De esa manera PM2 pasa las variables directamente al proceso en lugar de depender de que lea un archivo .env, que PM2 no hace por defecto.

¡Para cualquiera que vuelva a esto: seguí esta guía para configurar las variables de entorno mientras usaba PM2!