Français
Commencer

← Tous les templates · Automatisation

Déployez Node-RED en un clic

Des flux low-code qui relient API, appareils et services en ligne

Une alternative auto-hébergée à Zapier et IFTTT.

Qu’est-ce que Node-RED ?

Node-RED est un outil de programmation low-code et open source pour les applications événementielles, souvent utilisé à la place de Zapier ou d’IFTTT. Dans son éditeur web, vous glissez des nœuds sur un canevas et les reliez en flux : un message arrive d’une requête HTTP, d’un topic MQTT, d’un webhook ou d’un minuteur, traverse des nœuds qui le modifient, le filtrent ou l’aiguillent, puis repart vers une base de données, une API ou une messagerie. Un nœud Function exécute votre propre JavaScript là où aucun nœud ne convient, et la bibliothèque de la communauté compte plus de 6 000 nœuds à installer depuis l’éditeur.

Node-RED est né chez IBM en 2013 et c’est aujourd’hui un projet de l’OpenJS Foundation. On s’en sert pour la domotique, souvent à côté de Home Assistant, pour l’IoT et les données industrielles, et pour faire le lien entre des services web ; on l’auto-héberge pour faire tourner ses automatisations jour et nuit, sans prix par exécution. Ce template n’ouvre l’éditeur qu’avec le nom d’utilisateur et le mot de passe indiqués. Le revers : les routes des nœuds HTTP In sont publiques, donc un endpoint qui doit rester privé a besoin de httpNodeAuth dans settings.js ou de sa propre vérification.

Hébergement de Node-RED sur Pethost

  1. Vous vous connectez à Pethost avec une clé d’accès, GitHub ou Google. Pas encore de machine ? Vous choisissez une offre, et le lien attend qu’elle soit prête.
  2. Nouveau projet s’ouvre sur Node-RED. Vous remplissez ce qu’il demande et cliquez sur Créer le projet : Nom d’utilisateur, Mot de passe administrateur.
  3. En une minute ou deux, Node-RED tourne à sa propre adresse en HTTPS. Ses secrets sont créés au hasard, et ses données sont dans la sauvegarde nocturne.
  4. C’est un projet comme les autres : vous ou votre agent pouvez le modifier, revenir à une version précédente ou le restaurer.

Questions sur Node-RED

Node-RED est-il gratuit ?

Oui. Node-RED est open source sous licence Apache 2.0 et ne coûte rien, quel que soit le nombre de flux ou de messages. C’est un projet de l’OpenJS Foundation.

Comment installer de nouveaux nœuds dans Node-RED ?

Ouvrez le menu principal, choisissez « Gérer la palette » et cherchez dans son onglet Installer, qui liste les nœuds de la bibliothèque de la communauté. Les nœuds installés sont conservés dans le volume data : ils restent après les redémarrages et les nouveaux déploiements.

Node-RED fonctionne-t-il avec Home Assistant ?

Oui. Les nœuds node-red-contrib-home-assistant-websocket dialoguent avec Home Assistant par ses API WebSocket et REST, pour réagir à ses événements et appeler ses services. Votre Home Assistant doit être joignable depuis la machine où tourne Node-RED.

Comment créer un dashboard avec Node-RED ?

Installez @flowfuse/node-red-dashboard avec « Gérer la palette » : ses nœuds dessinent des boutons, des graphiques et des formulaires sur une page que sert Node-RED. L’ancien node-red-dashboard est obsolète depuis juin 2024.

Comment protéger les endpoints HTTP de mes flux Node-RED ?

L’éditeur demande une connexion, mais les routes des nœuds HTTP In répondent à tout le monde. Définissez httpNodeAuth avec un utilisateur et un hash bcrypt dans /data/settings.js pour les protéger toutes par un même mot de passe, ou vérifiez un token dans le flux lui-même.

De combien de mémoire et de disque Node-RED a-t-il besoin ?

Node-RED est léger : environ 100 MB de mémoire ; les flux pèsent quelques KB, et chaque nœud installé quelques MB. Sur Pethost, l’offre Starter lui suffit, avec de la place pour d’autres applications à côté.

Le fichier Docker Compose de Node-RED

Le template, c’est ce compose.yaml et les variables écrites dans le .env du projet à sa création. Pethost exécute le fichier tel qu’il est écrit.

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

Volumes, dans la sauvegarde nocturne : 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:

Aussi dans Automatisation