himpler.com himpler.com

Node-RED Projects - Versionsverwaltung von Flows

3 Min.

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 Projects History Tab

Node-RED Projects History Tab

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.

SSH Key in Node-RED Projects

SSH Key in Node-RED Projects

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.

Deploy Key mit Schreibzugriff auf Github

Deploy Key mit Schreibzugriff auf Github

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.

Origin hinzufügen

Origin hinzufügen

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.

Lokale Änderungen an das Remote Repository übertragen

Lokale Änderungen an das Remote Repository übertragen

Eine ausführliche Anleitung gibt es von direkt vom Node-RED Projekt. Eine kurze Einführung und einen ersten Überblick bietet diese Video.

Das könnte dir auch gefallen