Usando webhooks em instâncias n8n em execução local?

Estou rodando uma instância do n8n no docker no meu homelab. O problema é que meu homelab está conectado à rede wifi da minha faculdade e uso tailscale como intermediário para acessá-lo. Quando estava testando um workflow (sou iniciante), recebi um erro informando que os webhooks não podiam ser acessados. Perguntei ao ChatGPT e ele me orientou a usar um cloudflared tunnel para abri-lo e aceitar webhooks https. Existe alguma solução alternativa que eu não conheço? Por favor, me ajudem, não quero pagar por um nome de domínio novamente.

Descreva o problema/erro/pergunta

Qual é a mensagem de erro (se houver)?

Por favor, compartilhe seu workflow

(Selecione os nós em sua tela e use os atalhos de teclado CMD+C/CTRL+C e CMD+V/CTRL+V para copiar e colar o workflow.)

Compartilhe a saída retornada pelo último nó

Informações sobre sua configuração do n8n

  • Versão do n8n:
  • Banco de dados (padrão: SQLite):
  • Configuração n8n EXECUTIONS_PROCESS (padrão: own, main):
  • Executando n8n via (Docker, npm, n8n cloud, aplicativo desktop):
  • Sistema operacional:

@Liruan a URL do webhook precisa ser acessível publicamente. Local significa que não há tráfego de internet entrando.

Duas opções práticas:

Ngrok é a solução mais rápida. Instale, execute “ngrok http 5678”, e você terá uma URL pública com túnel para seu n8n local. Nas configurações do n8n, defina WEBHOOK_URL como o endereço do ngrok. Seu nó de webhook exibirá a URL pública correta. Funciona bem para testes, mas a URL muda a cada reinicialização a menos que você pague por um domínio fixo.

Cloudflare Tunnel é a alternativa gratuita mais limpa. Instale cloudflared, crie um túnel apontando para localhost:5678, e você terá um subdomínio fixo sem custo. Defina isso como seu WEBHOOK_URL e persiste entre reinicializações.

Uma coisa para configurar independentemente: a variável de ambiente WEBHOOK_URL no n8n. Sem ela, o n8n gera URLs de webhook com base na detecção de host e produzirá um endereço localhost que serviços externos não conseguem alcançar.

Qual serviço está enviando o webhook? Alguns têm listas de permissão de IP que você pode configurar, o que muda a abordagem.

Como você já está no Tailscale, existe um caminho ainda mais fácil - Tailscale Funnel. Ele fornece uma URL HTTPS pública estável que roteia diretamente para seu container Docker, sem necessidade de domínio e sem URLs que mudem. Ative-o com tailscale funnel 5678 (assumindo a porta padrão do n8n). Em seguida, defina WEBHOOK_URL=https://your-machine-name.tailnet-name.ts.net nas variáveis de ambiente do Docker do n8n. A URL permanece a mesma entre reinicializações, o que a torna mais limpa do que o ngrok de graça para configurações de homelab de longa duração.