Synology und Node-RED

Aufgrund einer Funktionsanfrage „UPS-Statusverfolgung“ hat mir Guim31 mitgeteilt, dass er dies derzeit mit Node-RED macht und die Werte in Gladys mit Fake-MQTT-Geräten anzeigt.

Daher wollte ich die Node-RED-Gladys-Integration verwenden, um zu sehen, worum es sich handelt, bevor ich das Video zum Thema für erfahrene Benutzer gesehen habe.

Bei der Integration gab es keine Probleme. Die ergonomische Verfolgungsführung zeigt grüne Links an. Außer dass Node-RED in eine Schleife gerät und sich endlos neu startet. Mir ist es gelungen, diese Logdatei des Containers gladys-node-red, Rechtsklick und Terminal (flüchtiger Zugriff), zu erhalten:

15 Jun 16:58:34 - [error] Error: EACCES: permission denied, mkdir ‹ /data/node_modules ›
15 Jun 16:58:34 - [error] Failed to start server:

Der Log stammt vom Container gladys-node-red, Rechtsklick und Terminal (flüchtiger Zugriff).

Vor Version 4.79 und 4.80 hatte ich bereits das Problem, das bereits erwähnt wurde, aber es scheint mir außerhalb der Integration zu sein…

Das Hauptziel ist es, diese Integration in einer Synology-Umgebung problemlos zu ermöglichen. Bin ich der Einzige?

Letzte Präzisierung: Mein Server hat bereits eine Speichernutzung von 57% bei 1 GB…davon der Container 239 MB… zu sehen ist die Nutzung später.

Hallo @JPPUYB,

Vielen Dank für das detaillierte Feedback, und nein, du bist wahrscheinlich nicht der Einzige auf Synology, das ist ein Fall, den wir mit Docker auf NAS recht häufig sehen.

Diagnose

Der Fehler ist recht klar:

EACCES: permission denied, mkdir '/data/node_modules'

Der Container gladys-node-red mountet das Gladys-Datenverzeichnis (…/node-red auf dem NAS) auf /data im Container. Beim Start versucht Node-RED, ein Verzeichnis node_modules zu erstellen, um seine Abhängigkeiten zu installieren, hat aber keine Schreibrechte auf diesem Volume.

Gladys versucht normalerweise, dies zu korrigieren, indem es das Verzeichnis in den Besitz des Benutzers 1000:1000 (der Standardbenutzer des Node-RED-Images) versetzt, aber auf Synology kann dieser chown-Befehl aufgrund der DSM-/ACL-Berechtigungen stillschweigend fehlschlagen. Der Container startet dann in einer Schleife aufgrund der Richtlinie restart: always.

Korrektur zum Ausprobieren

  1. Schleife stoppen: Im Container Manager den Container gladys-node-red anhalten (oder Node-RED in Gladys temporär deaktivieren → Integrationen → Node-RED).
  2. Den tatsächlichen Pfad des Verzeichnisses finden (per SSH auf dem NAS):
docker inspect gladys --format '{{range .Mounts}}{{if eq .Destination "/var/lib/gladysassistant"}}{{.Source}}{{end}}{{end}}'

Das Node-RED-Verzeichnis wird {dieser_pfad}/node-red sein.

  1. Berechtigungen korrigieren:
sudo chown -R 1000:1000 /pfad/zu/gladysassistant/node-red
sudo chmod -R 755 /pfad/zu/gladysassistant/node-red
  1. Neustart: Node-RED in Gladys wieder aktivieren oder den Container gladys-node-red neu starten.

Falls der chown-Befehl per SSH fehlschlägt, überprüfe in der Systemsteuerung → Freigegebene Ordner → Berechtigungen, ob der Docker/Gladys-Ordner für Lese-/Schreibzugriff zugänglich ist.

Merkpunkt

Mit insgesamt 1 GB RAM und bereits ~57 % Auslastung ist Gladys + Node-RED + DSM sehr knapp bemessen (der Node-RED-Container allein kann auf ~250 MB kommen).

Falls Node-RED nach der Berechtigungskorrektur zwar startet, aber instabil bleibt, wird wahrscheinlich der RAM der begrenzende Faktor sein.

Ich denke, dass man im Jahr 2026 mindestens 4 GB RAM (8 GB empfohlen) auf seiner Smart-Home-Installation haben sollte, um eine dauerhafte und stabile Konfiguration zu gewährleisten :slight_smile:

Ich habe die Situation also aus der Perspektive der von dir vorgeschlagenen LINUX-Befehle analysiert: Keine Übereinstimmungen mit den Pfaden auf dem Synology-LINUX. Es stimmt, es handelt sich nicht um eine Distribution, aber denken wir an die Probleme mit den USB-Ports.. Der Umfang scheint im Docker zu liegen, der letztendlich eine containerisierte Umgebung ohne LINUX und somit gut abgeschottet ist. Ich habe ein bisschen überall herumgeschnüffelt und keine Möglichkeit gefunden, Verzeichnisse zu erstellen: Berechtigung verweigert.

Für docker inspect:

permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get « http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/gladys/json »: dial unix /var/run/docker.sock: connect: permission denied

Habe ich etwas übersehen… ich werde mit Putty suchen..

Die Berechtigungen sind korrekt.

Letztlich ist der Pfad /volume1/docker/gladysassistant/node-red, der, wie ich glaube, nach einer ersten Installation durch Integration erstellt wurde. Natürlich Schleife und Stopp.

Ich führe über SSH die Befehle aus:

sudo chown -R 1000:1000 /volume1/docker/gladysassistant/node-red
sudo chmod -R 755 /volume1/docker/gladysassistant/node-red

Diesmal bin ich tatsächlich in Gladys-node-red mit Passwortanfrage…

Die Verzeichnisse:

volume1/docker/gladysassistant/node-red/lib/flows

volume1/docker/gladysassistant/node-red/node-modules

wurden erstellt.

Nach der Installation und dem Neustart von Node-RED belegt es 50 % des Speichers…

1 GB DDR4 ohne ECC

Realtek RTD1619B

1,7 GHz

Zwei 4-TB-Festplatten im RAID.

Ich werde es im Gebrauch sehen…

Danke für die Unterstützung.

JP