273 lines
12 KiB
Markdown
273 lines
12 KiB
Markdown
# Kapitel 10 – n8n (Free)
|
||
|
||
## Einleitung
|
||
|
||
Mit dem Tool **n8n** (gesprochen: „n‑n“) führst du eine zentrale Komponente für Automatisierungen in dein UCC-System ein. Das Ziel ist, wiederkehrende Aufgaben wie Erinnerungen, Uploads oder Social-Media-Posts nicht manuell erledigen zu müssen – sondern automatisiert, nachvollziehbar und kontrolliert im Hintergrund ablaufen zu lassen.
|
||
|
||
n8n ist eine sogenannte Low-Code-Automatisierungsplattform. Du erstellst Abläufe („Workflows“) visuell, indem du vordefinierte Funktionen – sogenannte „Nodes“ – miteinander verbindest. Es gibt Nodes für Zeitpläne, HTTP-Requests, Datenbanken, Social Media, Kalender, E-Mail, Twitch, Discord und viele weitere Dienste. Gleichzeitig kannst du eigene JavaScript-Logik ergänzen, wenn du mehr Kontrolle brauchst.
|
||
|
||
Im Gegensatz zu externen Diensten wie Zapier, Make oder IFTTT läuft n8n vollständig lokal – in einem eigenen Container auf deinem Server. Das bedeutet:
|
||
|
||
- keine Daten verlassen dein Netzwerk,
|
||
- keine Anmeldung oder Drittanbieter-Abhängigkeit,
|
||
- keine Einschränkungen bei der Anpassung.
|
||
|
||
[!NOTE]
|
||
Wir verwenden in diesem Tutorial ausschließlich die kostenfreie **Community Edition** von n8n. Diese wird lokal installiert, läuft dauerhaft im eigenen Container und stellt alle für den Einstieg relevanten Funktionen bereit.
|
||
|
||
Dieses Kapitel behandelt ausschließlich die Grundlagen:
|
||
- Installation von n8n auf einem dedizierten Ubuntu-Container,
|
||
- Konfiguration und Start als systemweiter Dienst,
|
||
- Integration über Nginx Proxy Manager mit Subdomain und HTTPS,
|
||
- Erstellung eines ersten produktiven Workflows (Stream-Reminder + Social Post).
|
||
|
||
Das hier erstellte Setup bildet die technische Basis für spätere Erweiterungen, z. B. das automatische Auslesen von Twitch-Kalenderdaten (ICS-Dateien), das Erzeugen und Planen von Social-Media-Inhalten oder automatisierte Uploads in deine Nextcloud. Diese folgen im Premium-Kapitel.
|
||
|
||
Wie immer setzen wir kein technisches Vorwissen voraus. Alles, was du für dieses Kapitel brauchst, hast du in den vorherigen Schritten bereits eingerichtet: Proxmox, LXC, Proxy, Domain und grundlegende Netzwerkstruktur. Wenn du diesen Abschnitt erfolgreich abgeschlossen hast, kannst du erste Automatisierungen vollständig eigenständig umsetzen – mit deinem eigenen System und ohne Drittanbieter.
|
||
|
||
---
|
||
|
||
## Voraussetzungen & Ressourcen
|
||
|
||
Bevor du mit der Installation von n8n beginnst, solltest du sicherstellen, dass dein System korrekt vorbereitet ist. In diesem Abschnitt definieren wir die nötigen Ressourcen für den LXC-Container und klären, welche technischen Voraussetzungen erfüllt sein müssen, damit alle späteren Schritte funktionieren.
|
||
|
||
### Container-Ressourcen
|
||
|
||
Für den n8n-Container legen wir folgende Ausstattung fest:
|
||
|
||
* **CPU: 2 vCPUs**
|
||
Zwei virtuelle Prozessoren reichen für die Ausführung typischer n8n‑Workflows im Hintergrund.
|
||
Falls du später viele parallele Abläufe oder aufwendige API-Abfragen nutzen möchtest, kannst du die CPU-Zahl bei Bedarf erhöhen.
|
||
|
||
* **RAM: 2 GB**
|
||
Der Node.js-Prozess von n8n benötigt vergleichsweise wenig Arbeitsspeicher.
|
||
Mit 2 GB läuft das System auch bei mehreren gleichzeitig aktiven Workflows stabil.
|
||
Nur bei sehr großen Datenverarbeitungen (z. B. viele gleichzeitige Uploads oder komplexe Datenmanipulationen) kann mehr RAM sinnvoll sein.
|
||
|
||
* **Speicherplatz: 10 GB**
|
||
Dieser Platz reicht für die Grundinstallation, Logdateien und temporäre Workflow-Daten.
|
||
Da n8n keine großen Medien speichert, ist der Speicherbedarf überschaubar.
|
||
Wenn du viele eigene Skripte oder große JSON-Daten verarbeitest, kannst du den Container später vergrößern.
|
||
|
||
* **Betriebssystem: Ubuntu 24.04 LTS (64‑Bit)**
|
||
Wir setzen hier auf Ubuntu, da es moderne Pakete für Node.js bereitstellt und sich gut für die manuelle Installation eignet.
|
||
Zudem verwenden wir Node.js ≥ 18.x, was unter Ubuntu besonders gut unterstützt wird.
|
||
|
||
* **Netzwerk: Feste IP-Adresse per DHCP-Reservierung**
|
||
Wie in Kapitel 1 beschrieben, richtest du im Router eine DHCP-Reservierung für den Container ein.
|
||
So bleibt er immer unter derselben Adresse erreichbar und kann später korrekt im Proxy Manager eingebunden werden.
|
||
|
||
[!TIP]
|
||
Plane beim Erstellen des Containers genug Reserven ein – auch wenn n8n anfangs wenig verbraucht.
|
||
Gerade wenn du das System später für Uploads, VOD-Verarbeitung oder komplexe Kalenderanalysen nutzt, steigen RAM- und CPU-Anforderungen deutlich.
|
||
|
||
### Technische Voraussetzungen
|
||
|
||
Dieses Kapitel baut auf der bestehenden UCC-Grundstruktur auf. Folgende Komponenten solltest du bereits eingerichtet haben:
|
||
|
||
* **Proxmox läuft stabil** (Kapitel 1)
|
||
Der LXC-Container für n8n wird direkt dort erstellt und verwaltet.
|
||
|
||
* **Nginx Proxy Manager ist eingerichtet** (Kapitel 3)
|
||
Darüber wird n8n später mit Subdomain, HTTPS und Zertifikat erreichbar gemacht.
|
||
|
||
* **Domain oder DynDNS-Adresse ist vorhanden** (Kapitel 4)
|
||
Für die öffentliche Erreichbarkeit und Let's Encrypt brauchst du eine gültige Subdomain, z. B. `n8n.deinprojekt.de`.
|
||
|
||
* **Zugriff auf das Container-Terminal**
|
||
Du benötigst entweder direkten Zugriff über die Proxmox-Konsole oder per SSH auf den Container.
|
||
|
||
[!IMPORTANT]
|
||
Wenn du n8n nur im lokalen Netzwerk einsetzen möchtest, kannst du den Container auch ohne Domain und HTTPS betreiben. Die Anleitung funktioniert in diesem Fall ebenfalls – du musst später lediglich eigene Proxy-Regeln anpassen.
|
||
|
||
### Software und Versionen
|
||
|
||
In diesem Kapitel installierst du alle benötigten Komponenten manuell – ohne Docker, vollständig nachvollziehbar:
|
||
|
||
* **Node.js** – ab Version 18.x (erforderlich für aktuelle n8n-Releases)
|
||
* **npm** – Node Package Manager, wird automatisch mit Node.js installiert
|
||
* **n8n** – Automatisierungstool, wird systemweit per `npm install -g` eingerichtet
|
||
* **PM2** – Prozessmanager, sorgt für dauerhaften Hintergrundbetrieb und Autostart
|
||
|
||
Alle Schritte erfolgen in der richtigen Reihenfolge und mit ausführlichen Erklärungen – du brauchst keine Vorkenntnisse im Umgang mit Node.js oder JavaScript.
|
||
|
||
[!TIP]
|
||
Die direkte Installation ohne Docker erhöht die Transparenz. Du behältst volle Kontrolle über die Dateien, Logs und Prozesse – und kannst das System bei Bedarf gezielt sichern oder migrieren.
|
||
|
||
---
|
||
|
||
## Schritt 1 – Grundsystem aktualisieren
|
||
|
||
Bevor wir mit der Installation von n8n beginnen, sorgen wir dafür, dass das Betriebssystem im Container auf dem neuesten Stand ist.
|
||
Das ist wichtig, um Fehler durch veraltete Pakete zu vermeiden und eine stabile Grundlage für die weiteren Schritte zu schaffen.
|
||
|
||
Öffne dazu in Proxmox die **Shell** des n8n-Containers.
|
||
Wähle in der linken Seitenleiste den Container aus und klicke auf **Shell**.
|
||
|
||
👉 Screenshot geeignet: Proxmox – Container ausgewählt und Konsole geöffnet
|
||
|
||
Gib anschließend den folgenden Befehl ein, um alle Paketlisten zu aktualisieren und die verfügbaren Updates zu installieren.
|
||
Starte danach den Container neu, damit die Aktualisierungen aktiv werden:
|
||
|
||
```bash
|
||
apt update && apt upgrade -y
|
||
reboot
|
||
```
|
||
|
||
[!NOTE]
|
||
Führe diesen Schritt auch dann durch, wenn der Container gerade erst erstellt wurde.
|
||
Ein aktuelles Grundsystem verhindert spätere Konflikte bei der Installation von Node.js und n8n.
|
||
|
||
## Schritt 2 – Node.js & n8n installieren
|
||
|
||
Nach dem Update ist das System bereit für die Installation der benötigten Software.
|
||
n8n basiert auf Node.js, daher müssen wir zunächst Node.js und den zugehörigen Paketmanager **npm** einrichten.
|
||
Anschließend installieren wir n8n selbst sowie den Prozessmanager **PM2**, damit n8n dauerhaft im Hintergrund laufen kann.
|
||
|
||
### Benutzer wechseln
|
||
|
||
Wir installieren n8n nicht mit Administrator-Rechten, sondern unter einem eigenen Benutzerkonto.
|
||
Melde dich daher mit dem Benutzer an, den du in Schritt 1 erstellt hast:
|
||
|
||
```bash
|
||
su - n8nuser
|
||
```
|
||
|
||
👉 Screenshot geeignet: Konsole – Anmeldung als Benutzer `n8nuser`
|
||
|
||
### Node.js installieren
|
||
|
||
Zuerst fügen wir das offizielle NodeSource-Repository hinzu, um die aktuelle Version (mindestens 18.x) zu erhalten, und installieren dann Node.js und npm:
|
||
|
||
```bash
|
||
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
|
||
sudo apt install -y nodejs
|
||
```
|
||
|
||
Prüfe nach der Installation die Versionen:
|
||
|
||
```bash
|
||
node -v
|
||
npm -v
|
||
```
|
||
|
||
Die angezeigten Versionsnummern sollten mindestens `v18.x` für Node.js und eine aktuelle npm-Version zeigen.
|
||
|
||
[!NOTE]
|
||
Falls eine deutlich ältere Version angezeigt wird, wiederhole die Installation oder kontrolliere die Repository-Adresse.
|
||
|
||
### n8n und PM2 installieren
|
||
|
||
Installiere nun n8n und den Prozessmanager PM2 global über npm:
|
||
|
||
```bash
|
||
sudo npm install -g n8n pm2
|
||
```
|
||
|
||
Mit PM2 stellst du sicher, dass n8n auch nach einem Neustart automatisch startet.
|
||
|
||
Überprüfe anschließend, ob n8n korrekt installiert wurde:
|
||
|
||
```bash
|
||
n8n --version
|
||
```
|
||
|
||
Die Ausgabe zeigt die aktuell installierte n8n-Version an.
|
||
|
||
[!TIP]
|
||
PM2 sorgt dafür, dass n8n später automatisch als Hintergrunddienst läuft.
|
||
Die Konfiguration dafür nehmen wir im nächsten Schritt vor.
|
||
|
||
## Schritt 3 – n8n als Dienst einrichten und starten
|
||
|
||
Damit n8n nicht nur manuell über die Konsole gestartet werden kann, richten wir den automatischen Start mit **PM2** ein.
|
||
So läuft n8n dauerhaft im Hintergrund und wird bei jedem Neustart des Containers automatisch geladen.
|
||
|
||
### n8n erstmals starten
|
||
|
||
Starte n8n zunächst einmalig, um sicherzustellen, dass es fehlerfrei läuft:
|
||
|
||
```bash
|
||
n8n
|
||
```
|
||
|
||
Die Konsole zeigt nun Startmeldungen von n8n an und wartet anschließend auf Anfragen.
|
||
Beende den Prozess wieder mit der Tastenkombination `Strg + C`.
|
||
|
||
👉 Screenshot geeignet: Konsole – n8n erfolgreich gestartet und wartet auf Anfragen
|
||
|
||
### PM2 einrichten
|
||
|
||
Mit PM2 starten wir n8n als Hintergrundprozess:
|
||
|
||
```bash
|
||
pm2 start n8n
|
||
```
|
||
|
||
Damit n8n automatisch beim Systemstart geladen wird, registriere den PM2-Startdienst:
|
||
|
||
```bash
|
||
pm2 startup
|
||
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u n8nuser --hp /home/n8nuser
|
||
pm2 save
|
||
```
|
||
|
||
* `pm2 startup` zeigt den notwendigen Befehl für den Autostart an.
|
||
* Mit `pm2 save` speicherst du die aktuelle PM2-Prozessliste.
|
||
|
||
### Dienststatus prüfen
|
||
|
||
Überprüfe, ob n8n nun im Hintergrund läuft:
|
||
|
||
```bash
|
||
pm2 list
|
||
```
|
||
|
||
Die Ausgabe sollte den Prozess `n8n` mit dem Status **online** anzeigen.
|
||
|
||
[!NOTE]
|
||
Ab diesem Punkt läuft n8n automatisch im Hintergrund und wird bei jedem Neustart des Containers selbstständig gestartet.
|
||
|
||
## Schritt 4 – n8n im Nginx Proxy Manager einbinden
|
||
|
||
Öffne den **Nginx Proxy Manager** und lege einen neuen Proxy-Host für n8n an.
|
||
|
||
1) **Anmelden** im NPM-Dashboard
|
||
👉 Screenshot geeignet: NPM – Dashboard nach Login
|
||
|
||
2) Klicke auf **Add Proxy Host**
|
||
|
||
3) Trage im Reiter **Details** folgende Werte ein:
|
||
|
||
| Feld | Wert / Auswahl |
|
||
|--------------------------------|------------------------------------------|
|
||
| **Domain Names** | `n8n.deinedomain.tld` |
|
||
| **Scheme** | `http` |
|
||
| **Forward Hostname / IP** | IP-Adresse des n8n-Containers |
|
||
| **Forward Port** | `5678` |
|
||
| **Block Common Exploits** | aktivieren |
|
||
| **Websockets Support** | aktivieren |
|
||
|
||
👉 Screenshot geeignet: Formular „Add Proxy Host“ mit IP des n8n-Containers und Port 5678
|
||
|
||
4) Wechsle zu **SSL** und setze:
|
||
|
||
| Feld | Einstellung |
|
||
|-----------------------------------|----------------------------|
|
||
| **Request a new SSL Certificate** | aktivieren |
|
||
| **Force SSL** | aktivieren |
|
||
| **HTTP/2 Support** | aktivieren |
|
||
|
||
👉 Screenshot geeignet: SSL-Tab mit aktivierter Option „Force SSL“
|
||
|
||
5) Klicke **Save**, um den Proxy-Host anzulegen.
|
||
|
||
Nach wenigen Sekunden ist n8n über die gewählte Subdomain erreichbar, z. B.:
|
||
`https://n8n.deinedomain.tld`
|
||
|
||
👉 Screenshot geeignet: Browser – n8n-Anmeldeseite über die Subdomain aufgerufen
|
||
|
||
[!TIP]
|
||
Falls der Zugriff auch von außen möglich sein soll, muss im Router Port 443 auf den NPM-Host weitergeleitet werden.
|
||
|