Sandbox-Repository zur Entwicklung von containerisierten Node-Red Umgebungen mit Dashboard
  • JavaScript 87.8%
  • CSS 7%
  • HTML 5.2%
Find a file
2026-10-28 12:08:18 +01:00
data Build reusable SCADA dashboard foundation 2026-10-28 12:08:18 +01:00
docs Build reusable SCADA dashboard foundation 2026-10-28 12:08:18 +01:00
.gitignore Build reusable SCADA dashboard foundation 2026-10-28 12:08:18 +01:00
compose.yaml Build reusable SCADA dashboard foundation 2026-10-28 12:08:18 +01:00
README.md Build reusable SCADA dashboard foundation 2026-10-28 12:08:18 +01:00

Node-RED Sandbox

Lokale Entwicklungsumgebung für Node-RED und datengetriebene Dashboards. Die Umgebung soll zunächst per Docker Compose starten; Datenquellen können später durch Mock-Flows ersetzt werden.

Dashboard-Entscheidung

Für dieses Repository verwenden wir zunächst FlowFuse Dashboard 2.0 (@flowfuse/node-red-dashboard). Es ist der aktiv gepflegte Nachfolger des klassischen Node-RED Dashboards, bringt fertige Widgets wie Charts, Gauges, Buttons und Formulare mit und eignet sich deshalb gut für einen schnellen, visuellen Einstieg. Das Dashboard ist Open Source, kann lokal ohne FlowFuse-Account betrieben werden und ist standardmäßig unter /dashboard erreichbar.

Das alte Paket node-red-dashboard wird nicht mehr weiterentwickelt. Es basiert auf AngularJS 1 und ist seit dem 27. Juni 2024 deprecated. Für neue Flows wird es daher nicht eingesetzt.

Alternativen

Lösung Geeignet für Einschätzung für dieses Repository
FlowFuse Dashboard 2.0 Klassische Dashboards mit fertigen UI-Nodes, responsivem Layout und wenig Frontend-Code Empfehlung für den Start
UIBUILDER Individuelle Web-Apps, eigene HTML/CSS/JavaScript-Frontends und beliebige Frontend-Frameworks Gute spätere Option, wenn FlowFuse Dashboard zu unflexibel wird
Eigenes Frontend über Node-RED HTTP/WebSocket Maximale Kontrolle über UX und Architektur Für den ersten Prototyp unnötig viel Infrastruktur

UIBUILDER ist nicht einfach eine zweite Variante desselben Widget-Systems: Es stellt einen integrierten Webserver und die Verbindung zwischen Browser und Node-RED bereit, lässt aber deutlich mehr Frontend-Code und Framework-Freiheit zu. Es ist daher besonders interessant, wenn aus dem Dashboard später eine eigenständige Web-Anwendung wird.

Geplante lokale Umgebung

  • offizielles Image nodered/node-red
  • Docker Compose für reproduzierbaren Start und Stop
  • persistentes Mount des Node-RED-Verzeichnisses /data
  • FlowFuse Dashboard als zusätzliches Node-RED-Paket
  • zunächst lokale Mock-Daten, später echte Datenquellen wie MQTT, REST oder Datenbanken
  • optional Node-RED Projects/Git für versionierte Flows

Das /data-Verzeichnis muss persistent gespeichert werden, weil dort Flows, Einstellungen und installierte Nodes liegen. Für die Entwicklung ist ein Bind-Mount in das Repository praktisch; ein Docker Named Volume ist eine Alternative, wenn die Node-RED-Dateien nicht direkt im Git-Workspace liegen sollen.

Geplanter Zugriff

Nach dem Start:

Starten

Die Add-ons werden über data/package.json verwaltet. Der Compose-Service node-red-addons führt vor dem Start von Node-RED automatisch npm install aus. Eine Installation über die Oberfläche ist daher nicht erforderlich.

docker compose up -d
docker compose logs -f node-red

Danach:

Beim ersten Start wird zusätzlich data/package-lock.json erzeugt. Diese Datei sollte anschließend mit committed werden, damit die Abhängigkeiten reproduzierbar bleiben. Weitere Node-RED-Add-ons werden als Dependencies in data/package.json ergänzt; anschließend reicht ein Neustart mit docker compose up -d.

Die Compose-Konfiguration verwendet bewusst ein Bind-Mount auf /data, damit Flows, Einstellungen und installierte Nodes im Repository persistent sind. Node-RED speichert seine Benutzerdaten im Container unter /data.

Warum gibt es node-red-addons?

node-red-addons ist ein kurzlebiger Hilfs-Service und keine zweite Node-RED-Instanz. Er führt vor dem Start von node-red einmal npm install anhand von data/package.json aus und beendet sich anschließend erfolgreich.

Beide Services verwenden dasselbe Verzeichnis:

./data  ->  /data

Dadurch kann der eigentliche node-red-Service die dort installierten Nodes direkt laden. Über depends_on wartet Node-RED, bis die Add-on-Installation erfolgreich abgeschlossen wurde.

Wenn ein weiteres Add-on in data/package.json ergänzt wurde, kann die Installation manuell angestoßen werden:

docker compose run --rm node-red-addons
docker compose restart node-red

Eine Installation über den Palette Manager ist weiterhin möglich, für dieses Repository aber nicht der bevorzugte Weg, weil die Abhängigkeiten dann nicht ausschließlich über die versionierte package.json nachvollziehbar sind.

Eine ausführliche Anleitung zum Aufbau eines interaktiven SVG-/SCADA-Dashboards steht in docs/scada-dashboard.md. Die wiederverwendbaren UI-Module liegen in data/uibuilder/scada/src/lib.

Quellen