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

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

Node-RED macht dein Synology NAS zur visuellen Automatisierungs-Zentrale für MQTT, Home Assistant und APIs – ohne Programmier-Studium. Diese Anleitung zeigt das sichere Compose-Deployment mit UID-1000-Rechten, adminAuth und Verifikation nach jedem Schritt.

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

Node-RED ist ein browserbasierter Flow-Editor, der IoT-Geräte, MQTT-Broker, HTTP-APIs und lokale Skripte ohne tiefe Programmierkenntnisse miteinander verbindet. Du ziehst Nodes auf eine Arbeitsfläche, verdrahtest sie per Linie und klickst auf „Deploy" – fertig läuft der Flow. Auf dem Synology NAS als Docker-Container betrieben, wird Node-RED zur dauerhaft verfügbaren Schaltzentrale für Smart-Home-Automatisierung: Temperatursensoren schreiben in Influx, MQTT-Nachrichten lösen Benachrichtigungen aus, Zeitpläne steuern Lampen. Die Kombination aus leichtgewichtigem Ressourcenbedarf, nativem MQTT-Support und einer riesigen Community-Palette macht Node-RED zur idealen Brücke zwischen dem IoT-Cluster (Mosquitto, Home Assistant) und nachgelagerten Automatisierungs-Workflows.

Voraussetzungen

Eckdaten auf einen Blick

ParameterWertHinweis
Imagenodered/node-red:4.1.10Letzter stabiler 4.x-Patch; expliziter Tag verhindert ungewollte Major-Updates via latest
Port1880:1880Web-Editor und REST-API; kein HTTPS nativ (Reverse Proxy empfohlen)
Volume/volume1/docker/nodered:/dataPflicht-Mount: Flows, Settings, installierte Nodes
User1000:1000Node-RED läuft intern als UID 1000 – Host-Verzeichnis muss passen
TZEurope/BerlinKorrekte Zeitstempel in Logs und Zeitplan-Nodes
Credential SecretLanger, zufälliger StringStabiler Verschlüsselungs-Key für gespeicherte Passwörter

Schritt 1: Ordner anlegen und Rechte setzen

Lege in der File Station den Ordner nodered unter /volume1/docker/ an (Kleinbuchstaben, keine Sonderzeichen). Verbinde dich danach per SSH mit dem NAS – die File Station kennt keine UID-basierte Eigentümer-Änderung, daher ist SSH hier zwingend notwendig. Wie du SSH aktivierst und dich verbindest, erklärt die Schritt-für-Schritt-Anleitung zu SSH auf dem Synology NAS.

Setze dann den Eigentümer des Verzeichnisses auf UID/GID 1000:

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

Dieser Schritt ist der häufigste Grund für einen fehlgeschlagenen Container-Start. Node-RED läuft intern seit Version 1.0 fest als UID 1000 und schreibt beim ersten Start Konfigurationsdateien ins /data-Verzeichnis. Stimmt der Eigentümer nicht, bricht der Container sofort mit einem Permission denied-Fehler ab.

Verifizieren: Führe nach dem chown-Befehl folgendes aus:

ls -la /volume1/docker/ | grep nodered

Die Ausgabe muss 1000 1000 als Eigentümer und Gruppe zeigen:

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

Schritt 2: Compose-Datei erstellen

Öffne im Container Manager „Projekte" → „Erstellen", vergib den Projektnamen node-red und füge folgende compose.yaml ein. Wie du ein Compose-Projekt im Container Manager anlegst, beschreibt die Grundanleitung zum Container Manager – hier die App-spezifischen Werte:

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

Wichtig: Ersetze DEIN-GEHEIMES-PASSWORT-HIER-AENDERN durch einen langen, zufälligen String (z. B. 32 Zeichen aus einem Passwort-Manager). Dieser Wert verschlüsselt alle in Nodes gespeicherten Credentials – MQTT-Passwörter, API-Keys usw. Änderst du ihn später, sind alle gespeicherten Credentials unlesbar. Setze ihn einmalig vor dem ersten Start und notiere ihn an einem sicheren Ort.

Die user: "1000:1000"-Direktive stellt sicher, dass der Container-Prozess tatsächlich als UID 1000 läuft. Sie ergänzt den chown-Befehl aus Schritt 1 – beide Maßnahmen zusammen verhindern Berechtigungsfehler zuverlässig.

Verifizieren: Starte das Projekt. Im Container Manager wechsle zu „Container" – der Container node-red muss den Status „Wird ausgeführt" (grünes Symbol) zeigen. Prüfe alternativ per SSH:

sudo docker ps --filter name=node-red --format "table {{.Names}}\t{{.Status}}"

Erwartete Ausgabe:

NAMES       STATUS
node-red    Up X seconds

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

Ohne eine explizite Firewall-Freigabe blockiert DSM eingehende Verbindungen auf Port 1880. Öffne DSM → Systemsteuerung → Sicherheit → Firewall und lege eine neue Regel an: Protokoll TCP, Quell-IP dein lokales Subnetz (z. B. 192.168.1.0/24), Ziel-Port 1880, Aktion „Erlauben". Wie du Firewall-Regeln für Docker-Container anlegst, erklärt die Anleitung zur DSM-Firewall.

Verifizieren: Rufe im Browser http://<NAS-IP>:1880 auf. Der Node-RED Flow-Editor muss laden – du siehst die graue Arbeitsfläche mit der Node-Palette links. Falls der Browser eine Zeitüberschreitung meldet, ist die Firewall-Regel noch nicht aktiv oder der Container läuft nicht.

Schritt 4: Editor mit adminAuth absichern

Dies ist der Schritt, den die meisten Anleitungen unterschlagen: Ohne adminAuth ist der Flow-Editor für jeden im Netzwerk – oder, bei Portweiterleitung, im Internet – vollständig zugänglich. Jeder kann Flows lesen, ändern und deployen. adminAuth wird nicht per Umgebungsvariable konfiguriert, sondern ausschließlich in der Datei settings.js, die Node-RED beim ersten Start im /data-Verzeichnis anlegt.

Passwort-Hash generieren: Führe diesen Befehl im laufenden Container aus:

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

Das Programm fragt interaktiv nach dem gewünschten Passwort und gibt einen bcrypt-Hash aus, zum Beispiel:

$2b$08$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Kopiere den kompletten Hash (beginnend mit $2b$). Trage niemals das Klartext-Passwort in die settings.js ein – Node-RED akzeptiert den Login dann nicht.

settings.js bearbeiten: Öffne die Datei per SSH:

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

Suche den auskommentierten adminAuth-Block (ca. Zeile 60–80) und ersetze ihn durch:

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

Speichere die Datei (Strg+O, Enter, Strg+X) und starte den Container neu, damit Node-RED die geänderte settings.js einliest:

sudo docker restart node-red

Verifizieren: Rufe erneut http://<NAS-IP>:1880 auf. Jetzt muss ein Login-Dialog erscheinen. Melde dich mit Benutzername admin und deinem Passwort an – der Flow-Editor öffnet sich. Ohne korrektes Passwort bleibt der Zugang gesperrt.

Schritt 5: Ersten Flow erstellen und deployen

Jetzt verifizieren wir, dass die gesamte Infrastruktur funktioniert – Flows werden korrekt gespeichert, der Deploy-Mechanismus arbeitet, und Debug-Ausgaben erscheinen im Panel.

Ziehe aus der linken Palette einen Inject-Node auf die Arbeitsfläche (unter „common"). Ziehe daneben einen Debug-Node. Verbinde die Ausgangs-Verbindung des Inject-Nodes mit dem Eingang des Debug-Nodes per Klick-und-Ziehen. Klicke auf den roten Deploy-Button oben rechts – er ist der wichtigste Knopf in Node-RED: Undeployte Änderungen laufen nicht, zeigen aber auch keinen Fehler.

Öffne das Debug-Panel (Käfer-Symbol rechts). Klicke auf die Schaltfläche links am Inject-Node. Im Debug-Panel erscheint eine Nachricht mit dem aktuellen Zeitstempel.

Verifizieren: Das Debug-Panel zeigt einen Eintrag ähnlich:

11/6/2026, 14:32:05 node: debug 1
msg.payload : number
1749645125000

Prüfe außerdem, ob die Flows persistiert wurden:

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

Die Datei muss existieren und einen Zeitstempel aus den letzten Minuten haben.

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

Wenn Mosquitto bereits als Container läuft (Anleitung: Eclipse Mosquitto auf dem Synology NAS installieren), kannst du den MQTT-Stack sofort testen. Der mqtt in-Node ist im Standard-Image enthalten – keine zusätzliche Installation nötig.

Ziehe einen MQTT In-Node auf die Arbeitsfläche. Doppelklicke ihn und konfiguriere einen neuen Server: Als Host trägst du nicht localhost ein, sondern den Docker-Container-Namen des Mosquitto-Containers (z. B. mosquitto) – sofern beide Container im selben Docker-Netzwerk laufen. Alternativ verwendest du die interne NAS-IP. Port: 1883. Topic: test/#. Verbinde den MQTT-In-Node mit einem Debug-Node und deploye.

Sende eine Test-Nachricht an den Broker:

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

Verifizieren: Im Node-RED Debug-Panel erscheint die Nachricht „Hallo Node-RED". Der MQTT-In-Node zeigt unten den Status „connected". Falls er „disconnected" bleibt, stimmt der Hostname oder der Netzwerk-Pfad zwischen den Containern nicht.

Schritt 7: Community-Nodes aus der Palette installieren

Node-REDs eigentliche Stärke liegt in den über 4.000 Community-Nodes. Den Palette Manager erreichst du über das Hamburger-Menü oben rechts → „Manage palette" → Reiter „Install". Suche zum Beispiel nach node-red-dashboard für ein lokales Web-Dashboard oder node-red-contrib-home-assistant-websocket für die direkte Home-Assistant-Anbindung.

Die Nodes werden direkt in /volume1/docker/nodered/node_modules installiert und bleiben über Container-Neustarts hinweg erhalten, weil das Verzeichnis Teil des persistenten Volumes ist.

Verifizieren: Nach der Installation erscheint der neue Node in der linken Palette (ggf. Browser-Tab neu laden). Prüfe außerdem per SSH:

ls /volume1/docker/nodered/node_modules/ | grep node-red-dashboard

Ausgabe: node-red-dashboard (oder der jeweilige Paket-Name).

Troubleshooting / Typische Fehler

  • Container startet nicht, Logs zeigen „Permission denied": Das Verzeichnis /volume1/docker/nodered gehört nicht UID 1000. Führe sudo chown -R 1000:1000 /volume1/docker/nodered per SSH aus und starte den Container neu.
  • Credentials nach Neustart unlesbar, Nodes zeigen roten Fehler: NODE_RED_CREDENTIAL_SECRET war beim ersten Start nicht gesetzt. Node-RED hat einen zufälligen Key verwendet. Lösung: Secret in der Compose-Datei eintragen, Container neu starten – alle Credentials in den betroffenen Nodes neu eingeben. Deshalb: Secret immer vor dem allerersten Start setzen.
  • Editor lädt ohne Login-Dialog: adminAuth ist in settings.js nicht aktiv. Prüfe, ob der Block korrekt eingetragen und nicht auskommentiert ist, und ob du den Container nach der Änderung neu gestartet hast.
  • Login-Dialog erscheint, aber Passwort wird abgelehnt: In settings.js steht Klartext statt bcrypt-Hash. Hash neu generieren mit sudo docker exec -it node-red node-red admin hash-pw und korrekt eintragen.
  • MQTT-Node bleibt „disconnected": Der Hostname im MQTT-Node zeigt auf localhost statt auf den Container-Namen des Mosquitto-Brokers. Im selben Docker-Bridge-Netzwerk ist der Container-Name der korrekte Hostname.
  • Editor nicht erreichbar (Browser-Timeout): DSM-Firewall blockiert Port 1880. Firewall-Regel prüfen: Systemsteuerung → Sicherheit → Firewall.
  • Palette-Node-Installation schlägt fehl (EACCES): user: "1000:1000" fehlt in der Compose-Datei oder das Volume-Verzeichnis hat noch Root-Eigentümer. Beide Punkte korrigieren und Container neu starten.
  • settings.js-Änderungen haben keine Wirkung: Node-RED liest settings.js nur beim Start. Ein „Deploy" im Editor genügt nicht – Container neu starten: sudo docker restart node-red.
  • latest-Tag führt zu unerwartetem Major-Update: latest zeigt auf v5.0.0-debian. Bei einem Wechsel von v4 auf v5 können Custom-Nodes Breaking Changes erleben. Immer expliziten Tag wie 4.1.10 verwenden.

Häufige Fragen

Was ist der Unterschied zwischen Node-RED und n8n?

Node-RED ist auf IoT und Echtzeit-Datenströme optimiert: MQTT, Sensoren, Smart-Home-Protokolle, niedrige Latenz. n8n hingegen ist auf Business-Prozesse und API-Integrationen ausgelegt – CRM, Ticketsysteme, Webhooks, komplexe Konditionslogik. Die beiden Tools ergänzen sich: Node-RED als IoT-Gateway und Echtzeit-Verarbeitung, n8n für nachgelagerte Business-Automatisierung. Du könntest z. B. einen MQTT-Sensor-Alarm per Node-RED erfassen und dann per HTTP-Request an n8n weiterleiten, das daraufhin ein Ticket anlegt.

Wie sichere ich meine Flows?

Das gesamte Verzeichnis /volume1/docker/nodered enthält alles Relevante: flows.json, settings.js und flows_cred.json. Sichere dieses Verzeichnis per Hyper Backup oder rsync auf ein externes Medium. Zusätzlich kannst du Flows direkt im Editor exportieren: Hamburger-Menü → „Export" → „Download". Achtung: Der Export enthält keine Credentials aus flows_cred.json.

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

Node-RED bietet im Standard-Docker-Setup kein natives HTTPS. TLS realisierst du über den Synology Reverse Proxy: DSM → Systemsteuerung → Anwendungsportal → Reverse Proxy → neue Regel: Protokoll HTTPS extern, Ziel http://localhost:1880. Alternativ kannst du den Nginx Proxy Manager auf der Synology vorschalten.

Welche Version soll ich verwenden – v4.1.10 oder v5.0.0?

Auf x86_64-Synology-NAS laufen beide problemlos. 4.1.10 ist der bewährte letzte Patch der stabilen v4-Reihe und für neue Installationen gut geeignet. 5.0.0 ist das aktuelle Major-Release (erschienen Juni 2024), hat aber 32-Bit-ARM-Support entfernt – für ältere Synology-ARM-Modelle relevant. Grundregel: Immer einen expliziten Tag verwenden; nie latest, da das unkontrollierte Major-Updates auslöst.

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

Ja, das ist der empfohlene Stack. Mosquitto liefert den MQTT-Transport, Node-RED verknüpft Sensordaten, Home-Assistant-Ereignisse und externe APIs zu Flows, n8n verarbeitet komplexere Business-Logik dahinter. Alle Container können im selben Docker-Bridge-Netzwerk laufen und sprechen sich über ihre Container-Namen an.

Fazit

Node-RED auf dem Synology NAS ist in rund 25 Minuten einsatzbereit – wenn die zwei kritischen Punkte von Anfang an richtig gesetzt sind: Volume-Eigentümer auf UID 1000 und NODE_RED_CREDENTIAL_SECRET vor dem ersten Start. Ohne diese Grundlagen arbeitet der Container entweder gar nicht oder verliert Credentials bei jedem Neustart. Die adminAuth-Konfiguration in settings.js ist kein optionales Extra, sondern Pflicht für jeden Editor, der im Heimnetz erreichbar ist. Mit diesen Maßnahmen hast du eine stabile, sichere Flow-Automatisierungs-Plattform, die nahtlos mit Mosquitto und Home Assistant zusammenarbeitet.

Weiterführende Anleitungen und Quellen

Offizielle Quellen: Node-RED Docker-Dokumentation | Node-RED Sicherheits-Dokumentation (adminAuth) | Docker Hub: nodered/node-red