Webhooks auf lokal laufenden n8n-Instanzen verwenden?

Ich führe eine n8n-Instanz auf Docker in meinem Homelab aus. Das Problem ist, dass mein Homelab mit dem WLAN-Netz meiner Hochschule verbunden ist und ich Tailscale nutze, um darauf zuzugreifen. Als ich einen Workflow ausprobiert habe (ich bin Anfänger), bekam ich eine Fehlermeldung, dass auf Webhooks nicht zugegriffen werden konnte. Ich habe ChatGPT gefragt und es hat mir empfohlen, einen Cloudflared-Tunnel zu verwenden, um HTTPS-Webhooks zu akzeptieren. Gibt es einen Workaround, den ich nicht kenne? Bitte hilf mir, ich möchte nicht noch einmal für einen Domainnamen bezahlen.

Problem/Fehler/Frage beschreiben

Welche Fehlermeldung erhältst du (falls vorhanden)?

Bitte teile deinen Workflow

(Wähle die Knoten auf deiner Arbeitsfläche aus und verwende die Tastaturkürzel CMD+C/STRG+C und CMD+V/STRG+V zum Kopieren und Einfügen des Workflows.)

Gib die Ausgabe des letzten Knotens aus

Informationen zu deinem n8n-Setup

  • n8n-Version:
  • Datenbank (Standard: SQLite):
  • n8n EXECUTIONS_PROCESS-Einstellung (Standard: own, main):
  • n8n wird ausgeführt über (Docker, npm, n8n Cloud, Desktop-App):
  • Betriebssystem:

@Liruan die Webhook-URL muss öffentlich erreichbar sein. Lokal bedeutet kein eingehender Internet-Traffic.

Zwei praktische Optionen:

Ngrok ist die schnellste Lösung. Installieren Sie es, führen Sie “ngrok http 5678” aus, und Sie erhalten eine öffentliche URL, die zu Ihrem lokalen n8n tunnelt. Setzen Sie in den n8n-Einstellungen WEBHOOK_URL auf die ngrok-Adresse. Ihr Webhook-Node zeigt dann die korrekte öffentliche URL an. Funktioniert gut zum Testen, aber die URL wechselt bei jedem Neustart, es sei denn, Sie zahlen für eine feste Domain.

Cloudflare Tunnel ist die sauberere kostenlose Alternative. Installieren Sie cloudflared, erstellen Sie einen Tunnel, der auf localhost:5678 zeigt, und Sie erhalten eine feste Subdomain kostenlos. Setzen Sie diese als Ihre WEBHOOK_URL und sie bleibt über Neustarts hinweg erhalten.

Unabhängig davon sollten Sie folgendes setzen: die Umgebungsvariable WEBHOOK_URL in n8n. Ohne sie generiert n8n Webhook-URLs basierend auf seiner eigenen Host-Erkennung und erzeugt eine localhost-Adresse, die externe Services nicht erreichen können.

Welcher Service sendet den Webhook? Manche haben IP-Allowlists, die Sie konfigurieren können, was den Ansatz ändert.

Da du bereits auf Tailscale bist, gibt es einen noch einfacheren Weg – Tailscale Funnel. Es gibt dir eine stabile öffentliche HTTPS-URL, die direkt zu deinem Docker-Container führt – kein Domain nötig und keine wechselnden URLs. Aktiviere es mit tailscale funnel 5678 (vorausgesetzt der Standard-n8n-Port). Setze dann WEBHOOK_URL=https://your-machine-name.tailnet-name.ts.net in deiner n8n Docker-Umgebung. Die URL bleibt über Neustarts hinweg gleich, was es sauberer macht als ngrok kostenlos für langfristige Homelab-Setups.