Node-RED Projects - Versionsverwaltung von Flows mit Git

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 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.

Deploy Key mit Write Access auf Github

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.

SSH Key in Node-RED Projects

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.

Deploy Key mit Write Access auf Github

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.

Node RED Projects Push im History Tab

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

Share this post!

Das könnte dich auch interessieren

Virtuelle Geräte in homee mit Node-RED

31.10.2019

Vor wenigen Minuten wurde eine Beta Version des homee Node-RED Plugins (node-red-contrib-homee) veröffentlicht. Neben Verbesserungen der bestehenden Nodes, gibt es nun die Möglichkeit, beliebige Geräte über die homee-in-homee Funktion einzubinden.

weiterlesen

Node-RED mit Docker auf der Synology Diskstation

27.11.2018

Node-RED lässt sich auf zwei verschiedenen Wegen auf einer Synology Diskstation betreiben. Neben der manuellen Installation über SSH kann Node-RED auch via Docker auf der Diskstation laufen.

weiterlesen

So geht’s: Harmony Hub mit Philips Hue verbinden

25.11.2018

Ein Zuhause wird erst dann richtig smart, wenn man nicht mehr manuell eingreifen muss. Ein Beispiel dafür ist eine automatisierte Beleuchtungssteuerung bei einem Filmabend.

weiterlesen