Einführung
Node-RED ist eine leistungsstarke Open-Source-Plattform, die für die Erstellung datengestützter Anwendungen und automatisierter Workflows konzipiert ist. Mit ihrer visuellen, Low-Code-Schnittstelle ermöglicht Node-RED Benutzern aller Fähigkeitsstufen:
- Daten aus verschiedenen Quellen zu erfassen und umzuwandeln
- Visuelle Workflows ohne umfangreiche Programmierung zu erstellen
- IoT-Lösungen, Home-Automation-Systeme und industrielle Steuerungsanwendungen zu erstellen
- Wiederholte Aufgaben und Prozesse zu automatisieren
In diesem Tutorial wird die Installation von Node-RED auf einem Debian-Server mit Docker beschrieben. Dies vereinfacht die Bereitstellung und gewährleistet konsistente Umgebungen über verschiedene Systeme hinweg.
Voraussetzungen
Für dieses Tutorial benötigt man:
- 1 Cloud-Server (z. B. von Hetzner Cloud)
- Debian 13 als Betriebssystem
- Root-Zugang oder ein Benutzerkonto mit sudo-Berechtigung
- Grundlegende Vertrautheit mit der Befehlszeilenschnittstelle
Schritt 1 - SSH-Zugriff einrichten
SSH (Secure Shell) bietet verschlüsselten Zugriff auf den Server. Ein SSH-Schlüsselpaar wird benötigt, um sich sicher zu verbinden.
SSH-Schlüsselpaar erstellen (falls noch nicht vorhanden)
Auf dem lokalen Computer wird folgender Befehl ausgeführt:
ssh-keygen -t ed25519 -C "email@example.com"Dies erstellt:
- Privater Schlüssel:
~/.ssh/id_ed25519(geheim halten!) - Öffentlicher Schlüssel:
~/.ssh/id_ed25519.pub(mit Servern teilen)
SSH-Schlüssel zur Hetzner Cloud hinzufügen
- Hetzner Console öffnen
- Ein Projekt auswählen
- Zu Sicherheit → SSH-Keys navigieren
- Auf SSH-Key hinzufügen klicken
- Den Inhalt von
~/.ssh/id_ed25519.pubkopieren und in die Konsole einfügen - Einen aussagekräftigen Namen eingeben
Server erstellen und verbinden
- In der Hetzner Console einen neuen Server erstellen
- Debian 13 als Betriebssystem auswählen
- Unter SSH-Keys den erstellten Schlüssel auswählen
- Auf Kostenpflichtig erstellen klicken
- Warten, bis der Server erstellt ist und die IP-Adresse notieren
SSH-Verbindung herstellen
Das Terminal öffnen und folgenden Befehl ausführen (die 203.0.113.1 durch die tatsächliche IP-Adresse des Servers ersetzen):
ssh root@203.0.113.1Danach sollte die Verbindung mit dem Server hergestellt sein.
Erstelle einen Benutzer mit sudo-Rechten und verbinde dich damit:
adduser holu
usermod -aG sudo holu
rsync --archive --chown=holu:holu ~/.ssh /home/holu
exit
ssh holu@203.0.113.1Schritt 2 - System aktualisieren
Vor der Docker-Installation sollten der Paketcache des Systems aktualisiert und alle installierten Pakete aktualisiert werden:
sudo apt update
sudo apt upgrade -yDies stellt sicher:
- Der Paketmanager hat die aktuelle Liste verfügbarer Pakete
- Alle vorhandenen Pakete werden mit Sicherheitspatches und Bugfixes aktualisiert
- Das System ist bereit für die Installation neuer Software
Schritt 3 - Docker installieren
Die einfachste Möglichkeit zur Installation von Node-RED ist die Verwendung von Docker, um die Anwendung in Containern auszuführen. Docker wird mit den folgenden Befehlen installiert, wie in der offiziellen Dokumentation erläutert:
# Den offiziellen GPG-Schlüssel von Docker hinzufügen:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Das Docker-Repository zu den Paketquellen hinzufügen:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
# Docker und verwandte Tools installieren:
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -yDocker-Installation überprüfen
Nach der Installation wird überprüft, ob Docker korrekt läuft:
sudo systemctl status dockerDie Ausgabe sollte Active: active (running) zeigen. Hier ist ein Beispiel einer erfolgreichen Installation:
Erwartete Ausgabe
holu@example-server:~$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
Active: active (running) since Mon 2026-06-16 09:53:17 UTC; 16s ago
Invocation: 0d4362e8d4fe443b82ab32bb44d415ca
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 5592 (dockerd)
Tasks: 10
Memory: 28.5M (peak: 30.6M)
CPU: 312ms
CGroup: /system.slice/docker.service
└─5592 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Jun 16 09:53:16 example-server dockerd[5592]: time="2026-06-16T09:53:16.841295340Z" level=info msg="Deleting nftabl>
Jun 16 09:53:17 example-server dockerd[5592]: time="2026-06-16T09:53:17.264163432Z" level=info msg="Daemon has comp>
Jun 16 09:53:17 example-server systemd[1]: Started docker.service - Docker Application Container Engine.Falls Docker nicht läuft, kann es mit folgendem Befehl gestartet werden:
sudo systemctl start dockerFüge deinen Benutzer der docker-Gruppe hinzu:
sudo usermod -aG docker holuBeende die Verbindung zum Server und verbinde dich anschließend neu, um die Gruppen des Benutzers zu aktualisieren.
Schritt 4 - Node-RED in Docker starten
Mit installiertem Docker wird Node-RED in einem Docker-Container mit folgendem Befehl gestartet:
docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-redErklärung der Befehle
Jeder Parameter in dem Befehl hat einen bestimmten Zweck:
| Parameter | Zweck |
|---|---|
docker run |
Einen neuen Container erstellen und ausführen |
-it |
Interaktiv mit einer Terminalsitzung ausführen, um Protokolle zu sehen |
-p 1880:1880 |
Port 1880 vom Container auf den Host-Computer mappen |
-v node_red_data:/data |
Ein persistentes Volume für Flows und Einstellungen erstellen |
--name mynodered |
Dem Container einen aussagekräftigen Namen geben |
nodered/node-red |
Das zu verwendende Docker-Image |
Wichtig: Port 1880 sollte nicht öffentlich erreichbar sein, solange keine Authentifizierung aktiviert und der Zugriff eingeschränkt ist (z. B. per Firewall-Allowlist, VPN oder Reverse Proxy mit TLS und Auth).
Erwartete Ausgabe
Nach dem Ausführen des Befehls sollte eine Ausgabe ähnlich dieser erscheinen:
Welcome to Node-RED
===================
10 Oct 12:57:10 - [info] Node-RED version: <version>
10 Oct 12:57:10 - [info] Node.js version: <version>
10 Oct 12:57:10 - [info] Linux <kernel> <arch>
10 Oct 12:57:11 - [info] Loading palette nodes
10 Oct 12:57:16 - [info] Settings file : /data/settings.js
10 Oct 12:57:16 - [info] Context store : 'default' [module=memory]
10 Oct 12:57:16 - [info] User directory : /data
10 Oct 12:57:16 - [warn] Projects disabled : editorTheme.projects.enabled=false
10 Oct 12:57:16 - [info] Flows file : /data/flows.json
10 Oct 12:57:16 - [info] Creating new flow file
Your flow credentials file is encrypted using a system-generated key.
10 Oct 12:57:17 - [info] Starting flows
10 Oct 12:57:17 - [info] Started flows
10 Oct 12:57:17 - [info] Server now running at http://127.0.0.1:1880/Sobald Server now running at http://127.0.0.1:1880/ zu sehen ist, ist Node-RED bereit!
Container verwalten
Zugriff auf die Node-RED Web-Oberfläche: Der Browser wird zu http://{server-ip}:1880/ navigiert
Vom Container trennen (läuft im Hintergrund weiter): Ctrl + P, dann Ctrl + Q drücken
Erneut verbinden, um Protokolle anzuzeigen:
docker attach mynoderedContainer stoppen:
docker stop mynoderedContainer erneut starten:
docker start mynoderedHinweis: Dieses Setup bietet grundlegende Node-RED-Funktionalität. Für erweiterte Funktionen wie Docker Compose-Orchestrierung oder benutzerdefinierte Docker-Images siehe die offizielle Node-RED Docker-Dokumentation.
Schritt 5 - Schnelleinstieg mit Node-RED
Nach dem Anmelden in der Node-RED Web-Oberfläche kann mit der Erstellung des ersten einfachen Flows begonnen werden. Dies hilft, zu verstehen, wie Knoten funktionieren und wie Daten durch das System fließen.
Zunächst wird der "inject"-Knoten aus der Palette auf der linken Seite in den Arbeitsbereich gezogen. Der inject-Knoten wird verwendet, um einen Flow manuell auszulösen oder Testnachrichten zu senden, was für Lernen und Tests wertvoll ist.
Danach wird auch der "debug"-Knoten aus der Palette in den Arbeitsbereich gezogen. Der debug-Knoten wird verwendet, um Meldungen in der Debug-Seitenleiste anzuzeigen, damit die Daten, die durch einen Flow fließen, sichtbar werden.
Nun werden der Output des inject-Knotens und der Input des debug-Knotens verbunden, indem eine Linie zwischen ihnen gezogen wird. Dies erstellt einen einfachen Flow, bei dem ein manueller Trigger eine Nachricht direkt zur Debug-Ausgabe sendet.
Abschließend wird auf die Schaltfläche "Deploy" in der oberen rechten Ecke geklickt, um den Flow zu aktivieren. Nach erfolgreichem Deployment wird auf die Schaltfläche des inject-Knotens geklickt, um den Flow auszulösen. Es sollte nun eine Meldung im Debug-Panel auf der rechten Seite des Bildschirms erscheinen, die bestätigt, dass der Flow funktioniert.
Dies ist ein sehr einfaches Beispiel, wie Node-RED verwendet werden kann. Weitere Informationen finden sich in der offiziellen Dokumentation.
Ergebnis
In diesem Tutorial wurde beschrieben, wie Node-RED auf einem Debian-Server mit Docker installiert wird. Es wurde auch gezeigt, wie ein einfacher Flow erstellt wird, um die Grundlagen von Knoten und Datenfluss zu verstehen. Node-RED ist ein leistungsstarkes Werkzeug zum Erstellen von Anwendungen, die Daten erfassen, umwandeln und visualisieren. Es kann in vielen verschiedenen Szenarien eingesetzt werden, von der Home-Automation bis zu industriellen Steuerungssystemen.
Bei Fragen oder Feedback können die Hetzner Community kontaktiert oder ein Issue im GitHub-Repository geöffnet werden.