Zum Inhalt springen
Linux, DevOps & Systeme

Node-RED auf Ubuntu installieren und updaten

Node-RED auf Ubuntu installieren und updaten: Installationsskript, Service mit Autostart per systemd, Admin-Login und ein Update ohne Datenverlust.

Von DI Herwart Wermescher, MBA ↗

Nachdem Node-RED in Node.js implementiert ist genügt ein einfaches Kommando um es zu installieren und zu starten. Voraussetzung ist ein installierts node und npm. Idealerweise node 12 LTS oder höher. Die Anleitung habe ich ursprünglich auf Ubuntu 20.04 geschrieben, sie funktioniert unverändert genauso auf Ubuntu 22.04 und 24.04 — das offizielle Skript bringt die passende Node.js-Version selbst mit. Damit kannst Du später auch Telegram-Nachrichten per Node-RED oder E-Mails mit Node-RED versenden.

Einfache Installation zum Testen

# Installieren
sudo npm install -g --unsafe-perm node-red
# Starten
node-red

Somit ist das System ungeschützt auf Deinem Server am Port 1880 verfügbar: http://DEINSERVER:1880/

Server Installation

Am Server willst Du sicherlich node-red als service ausführen. Dazu gibts die Installation mittels script:

# Installation
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
# Autostart nach dem boot
sudo systemctl enable nodered.service

Das was schon. Durch den Autostart läuft Node-RED auch wieder, wenn Du etwa Deinen Ubuntu-Server automatisch neu starten lässt. Danach kannst Du das service starten, stoppen, …

service nodered start
service nodered stop
service nodered restart

Du solltes nun

Einfache Konfiguration

Viel muss man nicht machen. Es genügt im ~/.node-red/settings.js die Projekcts einzuschalten. Suche nach editorTheme und projects und setze enabled: true.

Starte nun den service neu. Und das wars auch schon

service nodered restart

Username/Passwort Authentication

Bearbeite das Settings-File mittels nano ~/.node-red/settings.js und füge folgenden Code ein und ersetze den HASHWERT durch die Anweisungen danach:

adminAuth: {
                type: "credentials",
                users: [
                        {
                                username: "admin",
                                password: "HASHWERT",
                                permissions: "*"
                        },
                        {
                                username: "benutzer1",
                                password: "HASHWERT",
                                permissions: "read"
                        }
                ]
        },

Den Hashwert für das Passwort des jeweiligen Benutzers bekomsmt Du durch den Kommandozeilenbefehl:

node-red admin hash-pw

Wichtige Verzeichnisse

Im home Verzeichnis des Benutzers gibt es das Verzeichnis .node-red. Dort sind alle wichtigen Konfigurationen inklusive der Flows, Nodes, Datenbanken, etc.

Dieses Verzeichnis ist auch zum Backup geeignet.

Debugging

Wenn einmal etws nicht so funktioniert wie es soll hast Du mehrere Dinge die Du tun kannst.

  • Füge einen catch-Node ein und schreib den Output in das Node-RED Debug Fenster
  • Wenn Du ein Node-RED als Service ausführst kannst Du systemctl status nodered in der Kommandozeileauf aufrufen um den Konsolen Output zu sehen.

Node-RED updaten

Dadurch dass nodered eine Node.js Applikation ist, geht das Node-RED Update denkbar einfach.

Bevor Du jedoch updatest sieh Dir die Release Nodes an. Normalerweise findest Du auch gute Infos auf deren offiziellem Blog.

Um die aktuelle Version heraus zu finden gib einfach folgendes ein:

node-red --help

Schritt 1: Backup. Bevor ich irgendetwas update, sichere ich das Konfigurationsverzeichnis. Dort liegen Flows, Credentials und die settings.js — geht dabei etwas schief, bist Du in einer Minute wieder auf dem alten Stand:

tar czf ~/node-red-backup-$(date +%F).tar.gz ~/.node-red

Schritt 2: Update über das offizielle Skript. Das ist der Weg, den ich auf Servern immer nehme. Es ist exakt dasselbe Skript wie bei der Installation — es erkennt die bestehende Installation, hebt bei Bedarf auch Node.js an und stoppt den Dienst währenddessen selbst. Du musst nodered also nicht vorher händisch stoppen:

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

Wichtig: ~/.node-red bleibt beim Update erhalten. Deine Flows, Nodes und Einstellungen überlebt das Skript, es tauscht nur Node-RED und gegebenenfalls Node.js aus. Wenn Du auf Nummer sicher gehen willst, stoppe den Dienst trotzdem vorher mit sudo systemctl stop nodered.

Schritt 3: Dienst starten und Version prüfen.

sudo systemctl restart nodered
systemctl status nodered
node-red --help

Läuft der Dienst und stimmt die Versionsnummer, bist Du fertig. Danach lohnt ein kurzer Blick in den Editor, ob alle Flows noch da sind und keine Node in Rot als „missing“ angezeigt wird — das passiert gelegentlich bei Contrib-Nodes, die zu einer neuen Node.js-Version noch nicht passen.

Hattest Du Node-RED per npm installiert (also ohne das Skript), genügt für das Update ein normales Install:

sudo npm install -g --unsafe-perm node-red

Über diesen Blog

Ein Sammelsurium an Denkanstößen.

Hier sammle ich Wissen, Argumente und Links zu allem, was mich beschäftigt — von Technik über Küche bis Nachhaltigkeit. Beruflich berate ich zu Cybersecurity.