Deutsch
Loslegen

← Alle Vorlagen · Automatisierung

Node-RED mit einem Klick deployen

Low-Code-Flows, die APIs, Geräte und Onlinedienste miteinander verbinden

Eine selbst gehostete Alternative zu Zapier und IFTTT.

Was ist Node-RED?

Node-RED ist ein Open-Source-Tool zur Low-Code-Programmierung ereignisgesteuerter Anwendungen, oft im Einsatz statt Zapier oder IFTTT. In seinem Editor im Browser ziehst du Nodes auf eine Arbeitsfläche und verbindest sie zu Flows: Eine Nachricht kommt von einem HTTP-Request, einem MQTT-Topic, einem Webhook oder einem Timer, läuft durch Nodes, die sie ändern, filtern oder weiterleiten, und geht an eine Datenbank, eine API oder einen Chat. Wo kein Node passt, führt ein Function-Node dein eigenes JavaScript aus, und die Community-Bibliothek bietet mehr als 6.000 Nodes, die du direkt im Editor installierst.

Node-RED entstand 2013 bei IBM und ist heute ein Projekt der OpenJS Foundation. Genutzt wird es für die Heimautomatisierung, oft neben Home Assistant, für IoT- und Industriedaten und als Bindeglied zwischen Webdiensten, und viele hosten es selbst, damit ihre Automatisierungen rund um die Uhr laufen, ohne Kosten pro Ausführung. Diese Vorlage öffnet den Editor nur für den angegebenen Benutzernamen mit Passwort. Der Haken: Die Routen von HTTP-In-Nodes sind öffentlich, ein Endpunkt, der privat bleiben soll, braucht also httpNodeAuth in settings.js oder eine eigene Prüfung.

Node-RED-Hosting auf Pethost

  1. Du meldest dich bei Pethost an, mit Passkey, GitHub oder Google. Noch keine Maschine? Du wählst einen Tarif, und der Link wartet, bis sie bereit ist.
  2. „Neues Projekt“ öffnet sich bei Node-RED. Du füllst aus, was die App braucht, und klickst auf „Projekt erstellen“: Benutzername, Admin-Passwort.
  3. In ein, zwei Minuten läuft Node-RED unter eigener Adresse mit HTTPS. Die Secrets werden zufällig erzeugt, und die Daten sind im nächtlichen Backup.
  4. Es ist ein Projekt wie jedes andere: Du oder dein Agent könnt es ändern, zurückrollen oder wiederherstellen.

Fragen zu Node-RED

Ist Node-RED kostenlos?

Ja. Node-RED ist Open Source unter der Apache-2.0-Lizenz und kostet nichts, unabhängig von der Zahl der Flows oder Nachrichten. Es ist ein Projekt der OpenJS Foundation.

Wie installiere ich weitere Nodes in Node-RED?

Öffne das Hauptmenü, wähl „Palette verwalten“ und such im Tab „Installation“, der die Nodes der Community-Bibliothek auflistet. Installierte Nodes liegen im Daten-Volume und überstehen so Neustarts und neue Deploys.

Funktioniert Node-RED mit Home Assistant?

Ja. Die Nodes aus node-red-contrib-home-assistant-websocket sprechen über die WebSocket- und REST-APIs mit Home Assistant, reagieren auf dessen Ereignisse und rufen dessen Dienste auf. Dein Home Assistant muss von der Maschine aus erreichbar sein, auf der Node-RED läuft.

Wie erstelle ich ein Dashboard in Node-RED?

Installiere @flowfuse/node-red-dashboard über „Palette verwalten“: Die Nodes des Pakets zeichnen Buttons, Diagramme und Formulare auf eine Seite, die Node-RED ausliefert. Das ältere node-red-dashboard gilt seit Juni 2024 als veraltet.

Wie sichere ich die HTTP-Endpunkte meiner Flows ab?

Der Editor von Node-RED verlangt eine Anmeldung, die Routen von HTTP-In-Nodes antworten aber allen. Setz httpNodeAuth mit einem Benutzer und einem bcrypt-Hash in /data/settings.js, um alle mit einem gemeinsamen Passwort zu schützen, oder prüf im Flow selbst ein Token.

Wie viel RAM und Speicherplatz braucht Node-RED?

Node-RED ist leicht: etwa 100 MB RAM; Flows brauchen ein paar KB, die installierten Nodes je ein paar MB. Auf Pethost reicht dafür der Tarif Starter, mit Platz für weitere Apps daneben.

Node-RED: die Docker-Compose-Datei

Die Vorlage ist diese compose.yaml und die Variablen, die beim Erstellen in die .env des Projekts geschrieben werden. Pethost führt die Datei so aus, wie sie geschrieben ist.

Container: node-red (nodered/node-red:5).

Volumes, im nächtlichen Backup: data.

services:
  node-red:
    image: nodered/node-red:5
    restart: unless-stopped
    environment:
      TZ: ${TZ:-UTC}
      ADMIN_USERNAME: ${ADMIN_USERNAME}
      ADMIN_PASSWORD: ${ADMIN_PASSWORD}
    # The editor would be open to anyone with the address. Node-RED starts with the settings of
    # /data/settings.js, which are yours to edit, and with the username and password of the
    # project's .env as its only sign-in, unless settings.js sets adminAuth itself.
    entrypoint: ["/bin/bash", "-c"]
    command:
      - |
        # The first start: settings.js to edit, and no flow, where the image's would warn of a
        # missing volume, which the project has.
        if [ ! -f /data/settings.js ]; then
          cp node_modules/node-red/settings.js /data/settings.js
          rm -f /data/flows.json
        fi
        cat > /tmp/settings.js <<'END'
        const { createHash, timingSafeEqual } = require("node:crypto");
        const settings = require("/data/settings.js");
        const digest = (text) => createHash("sha256").update(String(text)).digest();
        const user = (username) => (username === process.env.ADMIN_USERNAME ? { username, permissions: "*" } : null);
        settings.adminAuth ??= {
          type: "credentials",
          users: async (username) => user(username),
          authenticate: async (username, password) =>
            timingSafeEqual(digest(password), digest(process.env.ADMIN_PASSWORD)) ? user(username) : null
        };
        module.exports = settings;
        END
        exec ./entrypoint.sh --settings /tmp/settings.js
    volumes:
      - data:/data

volumes:
  data:

Mehr in Automatisierung