
n8n Workflow per Discord trigger
Das Ziel
Ich wollte meine lokale n8n-Installation (basierend auf dem AI Starter Kit) zu einem kleinen Automatisierungshub aufbohren – der auf Ereignisse in einem Discord-Server reagieren kann. Die Lösung: n8n-nodes-discord-trigger
Schritt-für-Schritt Setup
# | Aktion | Wichtiges Detail |
---|---|---|
1 | Discord App + Bot erstellt (developer portal) | Ohne verifizierte Mailadresse geht nichts. |
2 | Bot Token + Application ID kopiert | Zu finden unter Bot bzw. General Info |
3 | Bot über OAuth2 URL Generator auf Server eingeladen | Scopes = bot , passende Rechte nicht vergessen |
4 | In n8n → Credentials → Discord Bot Trigger API → Token + Client ID eingetragen | |
5 | Workflow erstellt mit Discord Trigger Node + Event ausgewählt |
Alles schien super – bis ich versucht habe, den Workflow zu speichern.
Der erste Fehler: “ECONNREFUSED ::1:5678”
Fehlermeldung
Failed to deactivate trigger of workflow ID "…":
connect ECONNREFUSED ::1:5678
Ursache
- n8n ruft beim Speichern oder (De)aktivieren eigener Workflows seine eigene REST-API auf.
- Innerhalb des Containers wird
localhost
auf::1
(IPv6 Loopback) aufgelöst. - n8n lauschte aber nur auf
127.0.0.1
(IPv4) – also: Verbindung abgelehnt.
Fix
# docker-compose.override.yml
services:
n8n:
environment:
- N8N_HOST=0.0.0.0
- N8N_PORT=5678
- N8N_PROTOCOL=http
- NODE_OPTIONS=--dns-result-order=ipv4first
Danach:
docker-compose down
docker-compose up -d
→ Jetzt hört n8n auf allen Interfaces, und localhost
wird wieder als IPv4 interpretiert. Fehler behoben!
Tipp: Für lokale Anpassungen immer
docker-compose.override.yml
verwenden. So bleibt das Basis-Setup update-sicher.
Der Schockmoment: “Alle meine Workflows sind weg!”
Was passiert ist
Beim Herumprobieren hab ich die N8N_*
Variablen versehentlich in den postgres-Service verschoben. Beim Neustart:
- n8n startete ohne DB-Credentials und fiel zurück auf eine neue SQLite DB im Container.
- Ergebnis: UI komplett leer. Keine Workflows, keine Credentials. Herzstillstand.
Recovery
- Fehler zurückrollen (
git checkout
oder Originaldatei wiederherstellen). docker-compose up -d
→ n8n verwendet wieder die richtige Postgres-DB, alles ist wieder da.
Merksatz: „Gelöschte“ Daten in Docker sind fast immer ein Fall von falsch gemountetem Volume oder fehlender DB-Konfiguration – selten wirklich weg.
Backup & Restore, FTW
# Backup (z. B. per Cronjob)
docker-compose run --rm n8n \
n8n export:workflow --all --separate --output=/backup/workflows
docker-compose run --rm n8n \
n8n export:credentials --all --separate --output=/backup/credentials
# Restore
docker-compose run --rm n8n \
n8n import:credentials --separate --input=/backup/credentials
docker-compose run --rm n8n \
n8n import:workflow --separate --input=/backup/workflows
Am besten gleich in ein Git-Repo oder off-site Backup damit.
Die wichtigsten Learnings auf einen Blick
Stolperfalle | Lösung | Warum wichtig? |
---|---|---|
ECONNREFUSED ::1 | 0.0.0.0 + NODE_OPTIONS=--dns-result-order=ipv4first | IPv6-Falle entschärft, egal welches OS oder Container Setup |
Datenverlust durch Config-Fehler | .override.yml nutzen, DB-Env-Vars niemals im falschen Service | Config-Änderung ohne Risiko |
Keine Backups | Exporte regelmäßig automatisieren | Restore in Sekunden |
Checkliste für Discord Trigger in n8n
- Discord-Konto ist verifiziert
- App + Bot anlegen, Token + App ID sichern
- Bot mit korrekten Scopes auf Server einladen
- n8n-Credentials für Discord Bot Trigger anlegen
- Trigger Node ins Workflow ziehen, Event wählen
0.0.0.0
+NODE_OPTIONS
setzen- Backup nicht vergessen!