Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung Synology / NAS 11.09.2026 · 10 min Lesezeit

Node-RED 5 auf dem Synology NAS installieren: Automatisierung per Flow-Editor

Node-RED 5.0.8 macht Ihr Synology NAS zur visuellen Automatisierungs-Zentrale für MQTT, Home Assistant und APIs. Die Anleitung zeigt das Compose-Deployment mit UID-1000-Rechten, credentialSecret, adminAuth, Verifizieren nach jedem Schritt und die Migration von Node-RED 4.

Geprüft am 11.10.2026 · für node-red 5.0.8

WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Mehr dazu

Node-RED: Abläufe verbinden. Flows erstellen, MQTT anbinden, Editor absichern. Illustration mit Laptop und NAS.

Node-RED ist ein browserbasierter Flow-Editor, der IoT-Geräte, MQTT-Broker, HTTP-APIs und Skripte miteinander verbindet. Sie ziehen Nodes auf eine Arbeitsfläche, verdrahten sie per Linie und klicken auf „Deploy“, danach läuft der Flow. Als Container auf dem Synology NAS steht Node-RED dauerhaft für Smart-Home-Automatisierung bereit. Version 5.0 (Juni 2026) bringt einen überarbeiteten Editor, Dark Theme und gehärtete Anmeldung; die Anleitung nutzt 5.0.8.

Voraussetzungen

Eckdaten auf einen Blick

ParameterWertHinweis
Imagenodered/node-red:5.0.8Stand Oktober 2026, Node.js 24; fester Tag statt latest
Port1880:1880Editor und Admin-API; HTTPS über Reverse Proxy
Volume/volume1/docker/nodered:/dataFlows, Settings, installierte Nodes
User1000:1000Das Host-Verzeichnis muss UID 1000 gehören
TZEurope/BerlinZeitstempel und Zeitpläne
Credential SecretLanger, zufälliger StringSchlüssel für gespeicherte Passwörter

Schritt 1: Ordner anlegen und Rechte setzen

Legen Sie in der File Station den Ordner nodered unter /volume1/docker/ an (Kleinbuchstaben, keine Sonderzeichen). Die File Station kann keine UID-basierten Eigentümer setzen, daher verbinden Sie sich per SSH mit dem NAS (Anleitung zu SSH auf dem Synology NAS) und setzen den Eigentümer auf UID/GID 1000:

sudo chown -R 1000:1000 /volume1/docker/nodered

Node-RED läuft als UID 1000 und schreibt beim ersten Start nach /data; bei falschem Eigentümer bricht der Container mit Permission denied ab.

Verifizieren: Prüfen Sie den Eigentümer:

ls -la /volume1/docker/ | grep nodered

Die Ausgabe zeigt 1000 1000 als Eigentümer und Gruppe:

drwxr-xr-x  2 1000 1000  ... nodered

Schritt 2: Compose-Datei erstellen

Öffnen Sie im Container Manager „Projekt“ und „Erstellen“, vergeben Sie den Projektnamen node-red und fügen Sie diese compose.yaml ein (Grundlagen: Container Manager Projekt anlegen):

services:
  node-red:
    image: nodered/node-red:5.0.8
    container_name: node-red
    restart: unless-stopped
    ports:
      - "1880:1880"
    volumes:
      - /volume1/docker/nodered:/data
    environment:
      - TZ=Europe/Berlin
      - NODE_RED_CREDENTIAL_SECRET=IHR-GEHEIMES-PASSWORT-HIER-AENDERN
    user: "1000:1000"

Ersetzen Sie IHR-GEHEIMES-PASSWORT-HIER-AENDERN durch einen zufälligen String mit etwa 32 Zeichen und notieren Sie ihn sicher. Er verschlüsselt gespeicherte Credentials wie MQTT-Passwörter; ändern Sie ihn später, sind sie unlesbar. Die Variable wirkt erst, wenn die settings.js sie auswertet (Schritt 4). user: "1000:1000" stellt sicher, dass der Prozess als UID 1000 läuft, und ergänzt das chown aus Schritt 1.

Verifizieren: Starten Sie das Projekt. Im Container Manager zeigt node-red unter „Container“ den Status „Wird ausgeführt“. Alternativ per SSH:

sudo docker ps --filter name=node-red --format "table {{.Names}}\t{{.Status}}"
NAMES       STATUS
node-red    Up X seconds

Schritt 3: Firewall-Regel für Port 1880 anlegen

Ist die DSM-Firewall aktiv, blockiert sie Port 1880, solange keine Regel ihn erlaubt. Öffnen Sie DSM > Systemsteuerung > Sicherheit > Firewall und legen Sie eine Regel an: Protokoll TCP, Quell-IP Ihr lokales Subnetz (z. B. 192.168.1.0/24), Ziel-Port 1880, Aktion „Erlauben“ (Anleitung zur DSM-Firewall).

Verifizieren: Rufen Sie http://<NAS-IP>:1880 im Browser auf. Der Flow-Editor lädt mit der Node-Palette links. Bei einer Zeitüberschreitung ist die Firewall-Regel nicht aktiv oder der Container läuft nicht.

Schritt 4: Editor mit adminAuth absichern

Ohne adminAuth kann jeder im Netzwerk Flows lesen, ändern und deployen. adminAuth und credentialSecret stehen in der settings.js, die Node-RED beim ersten Start in /data anlegt; eine Umgebungsvariable allein reicht nicht.

Passwort-Hash erzeugen: Führen Sie im laufenden Container aus:

sudo docker exec -it node-red node-red admin hash-pw

Nach der Passwort-Eingabe erscheint ein bcrypt-Hash (Beginn $2y$08$):

Password: $2y$08$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Kopieren Sie den Hash ohne Password:. Ein Klartext-Passwort in der settings.js funktioniert nicht.

settings.js bearbeiten:

sudo nano /volume1/docker/nodered/settings.js

Ersetzen Sie die auskommentierte Zeile //credentialSecret: "a-secret-key", (etwa Zeile 44) und den auskommentierten adminAuth-Block (etwa Zeile 78 bis 85) durch:

credentialSecret: process.env.NODE_RED_CREDENTIAL_SECRET,

adminAuth: {
    type: "credentials",
    users: [{
        username: "admin",
        password: "$2y$08$IHREN-HASH-HIER-EINFUEGEN",
        permissions: "*"
    }]
},

Speichern Sie (Strg+O, Enter, Strg+X) und starten Sie den Container neu, denn Node-RED liest die settings.js nur beim Start:

sudo docker restart node-red

Bereits gespeicherte Credentials verschlüsselt Node-RED beim nächsten Deploy mit Ihrem Schlüssel neu.

Verifizieren: Beim Aufruf von http://<NAS-IP>:1880 erscheint ein Login-Dialog. Mit admin und Ihrem Passwort öffnet sich der Editor, ein falsches Passwort wird abgelehnt. Im Log (sudo docker logs node-red) fehlt die Warnung „system-generated key“.

Schritt 5: Ersten Flow erstellen und deployen

Ziehen Sie aus der Palette (Kategorie „common“) einen Inject-Node und einen Debug-Node auf die Arbeitsfläche und verbinden Sie den Ausgang des Inject-Nodes mit dem Eingang des Debug-Nodes. Klicken Sie oben rechts auf Deploy; nicht deployte Änderungen laufen nicht und zeigen keinen Fehler.

Öffnen Sie die Debug-Ansicht (Käfer-Symbol in der Seitenleiste) und klicken Sie auf die Schaltfläche links am Inject-Node. Seit Version 5 können Sie die Debug-Ausgabe per Schalter im Kopf der Ansicht anhalten.

Verifizieren: Die Debug-Ansicht zeigt einen Eintrag mit aktuellem Zeitstempel:

node: debug 1
msg.payload : number
(Zeitstempel in Millisekunden)

Prüfen Sie außerdem, ob die Flows gespeichert wurden:

ls -la /volume1/docker/nodered/flows.json

Die Datei existiert und hat einen aktuellen Zeitstempel.

Schritt 6: MQTT-Node verbinden (optional, aber empfohlen)

Läuft Mosquitto bereits (Eclipse Mosquitto auf dem Synology NAS installieren), können Sie MQTT testen. Der mqtt in-Node gehört zum Standard-Image. Ziehen Sie ihn auf die Arbeitsfläche, legen Sie per Doppelklick einen neuen Server an und tragen Sie als Host nicht localhost ein, sondern den Container-Namen des Brokers (z. B. mosquitto, beide Container im selben Docker-Netzwerk) oder die NAS-IP. Port 1883, Topic test/#. Verbinden Sie ihn mit einem Debug-Node und deployen Sie.

Senden Sie eine Test-Nachricht:

sudo docker exec mosquitto mosquitto_pub -t test/hello -m "Hallo Node-RED"

Verifizieren: Die Debug-Ansicht zeigt „Hallo Node-RED“, der Node den Status „connected“. Bei „disconnected“ stimmen Hostname oder Netzwerkpfad nicht.

Schritt 7: Community-Nodes aus der Palette installieren

Den Palette Manager öffnen Sie über das Hauptmenü oben rechts, „Manage palette“, Reiter „Install“. Geeignete Pakete sind @flowfuse/node-red-dashboard (Dashboard 2.0) für ein lokales Web-Dashboard und node-red-contrib-home-assistant-websocket für Home Assistant. Das ältere node-red-dashboard ist laut npm nicht mehr gepflegt. Die Nodes landen in /volume1/docker/nodered/node_modules und bleiben über Neustarts erhalten.

Verifizieren: Der neue Node erscheint in der Palette (ggf. Browser-Tab neu laden). Prüfen Sie per SSH:

ls /volume1/docker/nodered/node_modules/@flowfuse/

Ausgabe: node-red-dashboard (andere Pakete liegen direkt unter node_modules).

Bestandsinstallation von Node-RED 4 auf 5 aktualisieren

Der Wechsel von 4.x auf 5.0.8 ist ein Tausch des Image-Tags. Flows, settings.js, Credentials und Nodes liegen im gemounteten Verzeichnis und bleiben erhalten. 5.0 ist aber ein Major-Release mit Brüchen:

  • Node.js 22.9 oder neuer: Die offiziellen Images bringen Node.js 24 mit. Selbst gebaute Images auf Node.js 18 oder 20 müssen Sie umstellen.
  • Kein 32-Bit-ARM mehr: Images gibt es nur für amd64 und arm64. Ältere 32-Bit-ARM-Modelle bleiben bei 4.1, z. B. nodered/node-red:4.1.16-22.
  • Community-Nodes: Pakete, die Node.js unter 22 voraussetzen oder native Module mitbringen, laden eventuell nicht mehr. Prüfen Sie das Start-Log.
  • Gehärtete Anmeldung: Die Standard-CORS-Regeln der Admin-API entfallen, OAuth-Logins nutzen ein Token-Austauschverfahren. adminAuth mit Passwort-Hash funktioniert unverändert. Greifen eigene Browser-Skripte von einer anderen Adresse auf die Admin-API zu, geben Sie CORS in settings.js selbst frei.
  1. Sichern Sie /volume1/docker/nodered (Hyper Backup oder File Station) und exportieren Sie die Flows über das Hauptmenü.
  2. Lassen Sie NODE_RED_CREDENTIAL_SECRET unverändert.
  3. Stoppen Sie das Projekt node-red, ändern Sie in der compose.yaml den Tag auf 5.0.8 und speichern Sie.
  4. Starten Sie das Projekt. Der Container Manager lädt das neue Image und erstellt den Container neu.

Zurück auf 4.1 kommen Sie mit dem alten Tag und der gesicherten Kopie des Verzeichnisses; das laufende Verzeichnis ist nach Änderungen unter Version 5 dafür nicht geeignet.

Verifizieren: Prüfen Sie die Startmeldungen:

sudo docker logs node-red 2>&1 | grep -E "Node-RED version|Node.js  version|Started flows"

Erwartet werden Node-RED version: v5.0.8, Node.js 24 und Started flows. Alle Flows sind vorhanden, Nodes mit Zugangsdaten verbinden sich ohne neue Eingabe.

Troubleshooting / Typische Fehler

  • Container startet nicht, Logs zeigen „Permission denied“: Das Verzeichnis /volume1/docker/nodered gehört nicht UID 1000. Führen Sie sudo chown -R 1000:1000 /volume1/docker/nodered aus und starten Sie den Container neu.
  • Credentials nach Neustart unlesbar, Nodes zeigen roten Fehler: Der Credential-Secret fehlte beim ersten Deploy oder die settings.js wertet NODE_RED_CREDENTIAL_SECRET nicht aus (credentialSecret-Zeile aus Schritt 4). Node-RED hat dann einen zufälligen Schlüssel verwendet. Tragen Sie Secret und Zeile ein, starten Sie neu und geben Sie die Credentials erneut ein.
  • Editor lädt ohne Login-Dialog: adminAuth ist nicht aktiv (auskommentiert oder Container nicht neu gestartet).
  • Passwort wird abgelehnt: In settings.js steht Klartext statt Hash. Erzeugen Sie den Hash mit sudo docker exec -it node-red node-red admin hash-pw neu.
  • MQTT-Node bleibt „disconnected“: Der Host zeigt auf localhost statt auf den Container-Namen des Brokers.
  • Editor nicht erreichbar (Browser-Timeout): Die DSM-Firewall blockiert Port 1880 (Systemsteuerung > Sicherheit > Firewall).
  • Palette-Installation schlägt fehl (EACCES): user: "1000:1000" fehlt oder das Volume hat noch Root-Eigentümer. Korrigieren Sie beides und starten Sie neu.
  • settings.js-Änderungen ohne Wirkung: Node-RED liest die Datei nur beim Start. Ein Deploy genügt nicht: sudo docker restart node-red.
  • latest-Tag führt zu unerwartetem Major-Update: latest folgt der neuesten Hauptversion, Community-Nodes können dabei brechen. Verwenden Sie einen festen Tag wie 5.0.8.
  • Start auf älterem ARM-NAS scheitert („exec format error“ oder „no matching manifest“): Das NAS hat eine 32-Bit-ARM-CPU. Verwenden Sie dort nodered/node-red:4.1.16-22.
  • Community-Nodes fehlen nach dem Update auf 5.x: Das Start-Log nennt die Pakete. Aktualisieren Sie sie im Palette Manager oder ersetzen Sie nicht mehr gepflegte (z. B. node-red-dashboard durch @flowfuse/node-red-dashboard).

Häufige Fragen

Was ist der Unterschied zwischen Node-RED und n8n?

Node-RED ist auf IoT und Echtzeit-Datenströme (MQTT, Sensoren, Smart-Home-Protokolle) ausgelegt, n8n auf Business-Prozesse und API-Integrationen (CRM, Tickets, Webhooks). Node-RED kann etwa einen MQTT-Alarm per HTTP-Request an n8n weiterleiten, das ein Ticket anlegt.

Wie sichere ich meine Flows?

Sichern Sie das Verzeichnis /volume1/docker/nodered (flows.json, settings.js, flows_cred.json) per Hyper Backup oder rsync auf ein externes Medium. Flows lassen sich zusätzlich im Editor exportieren (Hauptmenü, „Export“); der Export enthält keine Credentials aus flows_cred.json.

Wie aktiviere ich HTTPS für den Node-RED Editor?

Im Standard-Setup läuft Node-RED ohne HTTPS. Richten Sie den Synology Reverse Proxy ein (DSM > Systemsteuerung > Anmeldeportal > Erweitert > Reverse Proxy, Quelle HTTPS, Ziel http://localhost:1880) oder schalten Sie den Nginx Proxy Manager auf der Synology vor.

Welche Version soll ich verwenden: 4.1 oder 5.0?

Auf einem NAS mit x86_64- oder arm64-CPU nehmen Sie 5.0.8. Für Modelle mit 32-Bit-ARM-CPU bleibt nur die 4.1-Reihe, die weiter Patches erhält (z. B. 4.1.16-22). Verwenden Sie immer einen festen Tag, nie latest.

Kann ich Node-RED mit Home Assistant, Mosquitto und n8n gleichzeitig betreiben?

Ja. Mosquitto liefert den MQTT-Transport, Node-RED verknüpft Sensordaten, Home-Assistant-Ereignisse und APIs, n8n übernimmt Business-Logik. Container im selben Netzwerk erreichen sich über ihre Namen.

Fazit

Node-RED 5 ist auf dem Synology NAS in rund 25 Minuten einsatzbereit, wenn drei Punkte stimmen: Volume-Eigentümer UID 1000, NODE_RED_CREDENTIAL_SECRET samt credentialSecret-Zeile in der settings.js vor dem ersten Deploy und aktivierte adminAuth. Dann steht eine abgesicherte Flow-Plattform bereit.

Weiterführende Anleitungen und Quellen

Offizielle Quellen: Node-RED Docker-Dokumentation | Node-RED Sicherheits-Dokumentation (adminAuth) | Docker Hub: nodered/node-red | Node-RED-Blog: Version 5.0 released | Release Notes Node-RED 5.0.8