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

#AktionWichtiges Detail
1Discord App + Bot erstellt (developer portal)Ohne verifizierte Mailadresse geht nichts.
2Bot Token + Application ID kopiertZu finden unter Bot bzw. General Info
3Bot über OAuth2 URL Generator auf Server eingeladenScopes = bot, passende Rechte nicht vergessen
4In n8n → Credentials → Discord Bot Trigger API → Token + Client ID eingetragen
5Workflow 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:

  1. n8n startete ohne DB-Credentials und fiel zurück auf eine neue SQLite DB im Container.
  2. Ergebnis: UI komplett leer. Keine Workflows, keine Credentials. Herzstillstand.

Recovery

  1. Fehler zurückrollen (git checkout oder Originaldatei wiederherstellen).
  2. 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

StolperfalleLösungWarum wichtig?
ECONNREFUSED ::10.0.0.0 + NODE_OPTIONS=--dns-result-order=ipv4firstIPv6-Falle entschärft, egal welches OS oder Container Setup
Datenverlust durch Config-Fehler.override.yml nutzen, DB-Env-Vars niemals im falschen ServiceConfig-Änderung ohne Risiko
Keine BackupsExporte regelmäßig automatisierenRestore in Sekunden

Checkliste für Discord Trigger in n8n

  1. Discord-Konto ist verifiziert
  2. App + Bot anlegen, Token + App ID sichern
  3. Bot mit korrekten Scopes auf Server einladen
  4. n8n-Credentials für Discord Bot Trigger anlegen
  5. Trigger Node ins Workflow ziehen, Event wählen
  6. 0.0.0.0 + NODE_OPTIONS setzen
  7. Backup nicht vergessen!