Dieser Beitrag wurde seit einem Jahr nicht mehr aktualisiert. Im Internet ist das manchmal eine halbe Ewigkeit. Es kann daher sein, dass die Informationen und Links nicht mehr aktuell sind.
Wer Node-RED Produktiv und mit mehreren Flows einsetzt, hat vielleicht schonmal über die Sicherung der Flows nachgedacht. Mit Version 0.18 wurden Node-RED Projects vorgestellt, die eine relativ einfache Möglichkeit zur Versionsverwaltung von Flows in Node-RED bieten.
Neben dem Backup kann man so bei einer nicht erfolgreichen Änderung des Flows auch mal schnell einen Schritt zurück springen, ohne manuell alles wieder abändern zu müssen. Dank der inzwischen kostenlosen privaten Repositories auf Github lassen sich die Node-RED Flows auch online sichern. Besonders gut ist, dass sich die sensitiven Informationen der Konfigurationsnodes (wie Benutzernamen und Passwörter) verschlüsseln lassen. Alternativ kann auch ein selbst aufgesetzter Git-Server verwendet werden.
Konfiguration und Anlegen des ersten Node-RED Projects
Wer die Node-RED Projects nutzen möchte, muss mindestens Version 0.18 einsetzen und die Projects in einer Konfigurationsdatei aktivieren.
Am Ende der node-red/settings.js
wird dazu vor der letzten schließenden Klammer folgendes Attribut ergänzt oder, falls bereits vorhanden, von false
auf true
geändert:
editorTheme: {
projects: {
enabled: true
}
}
Nach einem Neustart von Node-RED wird man schließlich mit einem Popup begrüßt, welches auf die eben freigeschaltete Funktion hinweist. In den nächsten Schritten lässt sich der Git-Nutzer mit Name und E-Mail Adresse konfigurieren und das erste Projekt anlegen.
Änderungen committen
Um Änderungen am Flow zu Versionisieren, werden diese in der Versionsverwaltung Git committed. Dazu wurde in der rechten Seitenleiste ein neuer history-Tab eingeführt. Hier sind unter anderem die lokalen Änderungen der Flows sichtbar. Mit einem Klick auf den Dateinamen lassen sich die Änderungen anzeigen, das +
Icon fügt die lokalen Änderungen zum Stage hinzu, welcher sich mit dem commit
-Button committen lässt.
Node-RED Project mit Github verbinden
Mit der aktuellen Einstellung sind die Änderungen allerdings nur im lokalen Repository verfügbar. Um die Änderungen in ein Remote-Repository (hier auf Github gehostet) zu übertragen und damit auch ein Backup zu haben, müssen zunächst eine Reihe von Einstellungen vorgenommen werden.
In den Node-RED Settings muss unter dem Menüpunkt Git config zunächst ein SSH Key generiert werden.
Der dann angezeigte Public Key wird dann über die Einstellungen zum Repository auf Github (unter Settings - Deploy Keys) hinzugefügt. Dieser Key authorisiert Node-RED das Repository zu ändern. Hier muss unbedingt die Option Allow Write Access gewählt werden.
Zurück in Node-RED fügen wir das Remote-Repository zu unserem Projekt hinzu. Die entsprechende Einstellung lässt sich im Menü unter Projects - Project-Settings - Settings finden. Über den Button add remote tragen wir die URL mit dem Namen origin ein.
Im neuen History Tab (in der Seitenleiste) können die lokalen Änderungen nun an den Remote-Branch übertragen werden. Vor der ersten Übertragung wird dieser noch erstellt werden. master
bietet sich hier als Bezeichnung an. Mit Push wird die Übertragung angestoßen. Wenige Sekunden später sollte das Repository auf Github nun mit den Dateien gefüllt sein.
Eine ausführliche Anleitung gibt es von direkt vom Node-RED Projekt. Eine kurze Einführung und einen ersten Überblick bietet diese Video.