Node-RED – Installation unter Ubuntu

Was ist Node-RED?

Node-RED LogoNode-RED ist ein grafisches Entwicklungswerkzeug, dass vor allem von Leuten benutzt wird, die sich mit IoT (Internet of Things – Internet der Dinge) auseinandersetzen. In erster Linie kann Node-RED dafür genutzt werden, Geräte (sowohl netzwerkfähiges Equipment als auch Geräte, die seriell, per Bluetooth, 1-wire, i²c, etc. angebunden sind) miteinander zu vernetzen, Daten per Sensor oder aus Cloud-Diensten zu empfangen, auszuwerten und weiter zu verarbeiten. Node-RED bietet hierfür eine hervorragende grafische Oberfläche an um dies visuell zu erledigen. Hochinteressant ist die Möglichkeit, auf Ereignisse, die von bzw. durch ein angeschlossenes Gerät (oder einen eingebundenen Dienst) erzeugt werden, eine weitere Aktion auslösen zu können.

Installation unter Ubuntu / Raspberry PI

Dieser Artikel stammt ursprünglich aus dem Jahr 2016. Um zu prüfen, ob die Angaben noch korrekt sind, habe ich im Februar 2019 die hier beschriebene Vorgehensweise unter Ubuntu 18.04.1 getestet und konnte Node-RED problemlos installieren.

Im Raspian-Image des RaspberryPI ist Node-RED bereits enthalten. Unter Ubuntu installiert man es am besten per „npm“.

  1. Der Paketmanager für Node.js wird mit sudo apt-get install npm installiert. Dies löst auch diverse Abhängigkeiten auf, NodeJS wird beispielsweise ebenfalls installiert.
  2. Unter Ubuntu 16.04 und evtl. auch auf kleineren Versionen fehlt ein Symlink auf das Kommando node. Um diesen manuell zu erstellen, führen wir den Befehl sudo ln -s /usr/bin/nodejs /usr/bin/node aus. Mit dem Befehl node -v können wir nun prüfen, ob NodeJS korrekt arbeitet.
  3. sudo npm install -g npm@2.x
    Den npm aktualisieren wir hierdurch auf die Version 2.x.
  4. Nun kann Node-RED per sudo npm install -g –unsafe-perm node-red installiert werden.

Node-RED automatisch starten und überwachen

Ein praktisches Werkzeug für den Start der Node-RED-Instanz ist PM2 (Advanced, production process manager for Node.js). PM2 startet den Node-RED-Prozess nicht nur automatisch bei Systemstart sondern sorgt auch für einen Neustart der Instanz, sollte diese einmal abstürzen. PM2 wird folgendermaßen installiert:

  1. sudo npm install -g pm2
  2. Wir suchen nun die node-red Binary per sudo which node-red . Es sollte dabei /usr/local/bin/node-red herauskommen.
  3. Mittels sudo pm2 start /usr/local/bin/node-red lösen wir nun den Start von Node-RED per PM2 aus.
    Ob der Prozess erfolgreich geklappt hat, bekommen wir unmittelbar nach der Ausführung angezeigt.
    pm2_status
  4. Unter bestimmten Bedingungen kann es passieren, dass der Prozess immer wieder abstürzt und dann von PM2 automatisch neu gestartet wird. Ob dies bei uns der Fall ist bekommen wir mit dem Befehl sudo pm2 status heraus. Es erscheint nun wieder die Statustabelle. Der Wert restart sollte sich nicht laufend erhöhen – dies wäre ein Indiz für automatische Neustarts.
  5. Nun müssen wir noch dafür sorgen, dass PM2 bei Systemstart mitgestartet wird. Dies erledigen wir mit dem Befehl sudo pm2 startup
  6. Damit PM2 auch über den nächste Rechnerneustart hinaus weiß, dass er Node-RED starten soll, speichern wir den Status mit dem Befehl pm2 save
  7. Unter der URL http://<rechnername/ip>:1880 kann auf den Editor zugegriffen werden.

Sicherheit / Berechtigungen

Wenn PM2 wie oben beschrieben eingerichtet wird, läuft der Node-RED Prozess unter dem User root. In der Regel wird man diesen Prozess aber lieber von einen nicht-privilegierten Benutzer ausgeführt haben wollen. Wir müssen hierzu im Home-Verzeichnis des Benutzers, unter dem wir die Installation durchgeführt haben, die Ownership des Verzeichnisses .pm2 übernehmen, da dies momentan noch root gehört. Gehen wir davon aus, dass die Installation unter dem User Hans durchgeführt wurde: chown hans.hans /home/hans/.pm2 -R.

Im Init-Script des PM2 müssen wir ebenfalls noch eine Änderung durchführen. Mit Root-Rechten editieren wir die Datei /etc/init.d/pm2-init.sh  und ändern dort den Wert der Variablen USER=root nach USER=hans.

Wenn wir den PM2 nun per InitScript neu starten wird der Node-RED-Prozess nicht mehr unter Root sondern mit Benutzerrechten ausgeführt.

Bitte beachtet, dass der Editor standardmäßig keine Zugangskontrolle bzw. keinen Passwortschutz enthält. Betreibt Ihr das System also auf einem öffentlich zugänglichen System, kann grundsätzlich jeder auf den Editor zugreifen. Die Node-RED-Dokumentation enthält jedoch Anleitungen zum Absichern der GUI.

Links

Node-RED Hauptseite: http://nodered.org/

Schreibe einen Kommentar