Station 01/Wo es läuft·Vorschau
Station 01 · Einrichten/Phase 1

Wo es läuft

Ein Container, eine Datenbank, ein Reverse Proxy davor. Wer Kurs 1 kennt, kennt das Bild schon — hier kommt nur ein Kasten hinzu.

Der Film zu dieser Phase1:43 — mit Untertiteln. Er ersetzt den Text nicht, er geht ihm voraus.
Die UmgebungNach außen ist nur 443 offen — n8n selbst ist nirgends direkt erreichbar
EIN CONTAINER MEHR — SONST NICHTS NEUESIHR SERVERDraußenFormular, Postfach, FremddiensteSiedie Oberfläche, nur mit Anmeldung443Reverse ProxyHTTPS, Zertifikatnichts sonst offenn8nOberfläche und Läufeein ContainerPostgreSQLAbläufe, Zugänge, LäufeVolumeDateien, die bleiben sollenDas ist genau die Umgebung aus Kurs 1 — nur mit einem Container mehr.Wer eine Web-App betreibt, betreibt n8n mit denselben Handgriffen: Container, Umgebungsvariablen, Volume, Sicherung, Überwachung.

Was vorher da sein muss

VoraussetzungWoherWenn es fehlt
Ein Server mit DockerKurs 1, Station 03 (bootstrap.sh)Ohne Docker geht nichts — dort anfangen.
Ein Reverse Proxy mit Zertifikatenkommt mit Coolify (Traefik)Auch ein eigener Traefik oder Caddy geht — dann die Labels anpassen.
Eine Domain, die auf den Server zeigtIhr DNS-Anbieter, A-EintragOhne DNS kein Zertifikat — und ohne Zertifikat keine Webhook-Adresse, die jemand aufrufen darf.
Ein Postausgang (SMTP)Ihr Mailanbieter, eigenes Konto für AbläufeOhne ihn kann kein Ablauf melden. Ein eigenes Postfach, nicht das des Chefs.
Eigene Subdomain, eigene Sache. Legen Sie n8n auf ablauf.ihre-domain.de, nicht in ein Unterverzeichnis Ihrer Anwendung. Dann lässt es sich später umziehen, abschalten oder ersetzen, ohne dass jemand anderes betroffen ist.

Zwei Entscheidungen, die jetzt fallen

empfohlenDatenbank

PostgreSQL statt SQLite

n8n kann seine Daten auch in eine Datei schreiben. Das geht — bis der erste Ablauf gleichzeitig zweimal läuft. Eine Datenbank kostet einen Container und erspart eine Klasse von Fehlern.

empfohlenFassung

Eine feste Fassung, kein „latest"

Mit latest ändert sich beim nächsten Neustart unangekündigt alles — auch die Knoten, aus denen Ihre Abläufe bestehen. Eine Nummer eintragen und bewusst aktualisieren.

Auf Stufe 2 (Fortgeschritten) steht hier zusätzlich: wie das Ganze ohne Coolify aussieht — und warum die Datenbank im internen Netz hängt und nicht einfach nebenan
WarumWarum die Datenbank im internen Netz hängt

Ein Docker-Netz mit internal: true hat keine Verbindung nach draußen — weder herein noch hinaus. Die Datenbank ist damit nur für Container erreichbar, die im selben Netz hängen, und das sind genau zwei: sie selbst und n8n.

Der Gewinn ist nicht theoretisch. Datenbanken, die versehentlich einen Port nach außen veröffentlichen, werden im Netz innerhalb von Stunden gefunden — automatisiert, nicht gezielt. Ein Container ohne Weg nach draußen kann das nicht, auch nicht durch einen Konfigurationsfehler.

n8n selbst hängt in zwei Netzen: im internen (für die Datenbank) und im Netz des Reverse Proxy (damit der es erreicht). Das ist die einzige Stelle, an der beide Welten sich berühren.

TiefeDasselbe ohne Coolify

Nichts an diesem Aufbau hängt an Coolify. Gebraucht wird nur irgendetwas, das Zertifikate hält und Anfragen weiterreicht. Drei Wege:

  • Eigener Traefik: Die Labels in der docker-compose.yml bleiben, nur der Netzname und der Name des Zertifikatslösers ändern sich.
  • Caddy: Zwei Zeilen in der Caddyfile (ablauf.example.de { reverse_proxy n8n:5678 }), Zertifikat kommt von selbst. Die Traefik-Labels entfallen ersatzlos.
  • nginx: Server-Block mit proxy_pass, Zertifikat über certbot. Wichtig: proxy_set_header Upgrade und Connection, sonst bleibt die Oberfläche auf halbem Weg stehen — sie hält eine dauerhafte Verbindung.

Was in allen drei Fällen gleich bleibt: WEBHOOK_URL und N8N_EDITOR_BASE_URL müssen die öffentliche Adresse enthalten. n8n weiß sonst nicht, welche Adresse es in die Auslöser-Knoten schreiben soll — und dann steht dort localhost:5678, was niemand aufrufen kann.

Zugang erhalten
Fortschritt merken?Mit Zugang bleiben Häkchen und erledigte Phasen am Konto — auf jedem Gerät.