Node-RED

Cómo instalar Node-RED en Windows, Linux y Raspberry Pi

Una guía práctica para instalar Node-RED en Windows, Linux, Raspberry Pi y Docker, arrancarlo automáticamente con el sistema, proteger el editor y crear un primer flujo que se suscribe a un broker MQTT real.

Ilustración de cómo instalar Node-RED con equipos Windows, Linux y Raspberry Pi ejecutando el editor de Node-RED conectado a un broker MQTT
Pruébalo en tu propio broker MQTTConsigue un broker MQTT privado y gestionado con el plan Free y empieza con ejemplos de código listos para usar.
Pruébalo gratis Ejemplos de código Sin tarjeta

Puedes instalar Node-RED en pocos minutos en casi cualquier máquina, desde un portátil con Windows hasta una Raspberry Pi en una estantería de la fábrica. Esta guía recorre cada plataforma, muestra cómo ejecutar Node-RED como servicio, protege el editor y termina con un primer flujo funcional que se suscribe a un broker MQTT real para que veas llegar mensajes de verdad.

Qué necesitas antes de empezar

Node-RED es una aplicación Node.js, así que el único requisito real es una versión de Node.js compatible. Node-RED 4.x requiere Node.js 18 o posterior, y las versiones más recientes pueden subir ese mínimo, así que usa la versión LTS actual de Node.js siempre que puedas. También necesitas:

  • Una cuenta de usuario con permiso para instalar software (administrador en Windows, sudo en Linux).
  • Acceso de red a npm (el registro de paquetes de Node.js) durante la instalación.
  • Un navegador para abrir el editor en el puerto 1880.
Plataforma Método recomendado Arranca con el sistema Uso típico
Windows 10/11 Instalador de Node.js + npm Con PM2 o un wrapper de servicio Desarrollo, PC de edge
Debian / Ubuntu Script de instalación oficial Sí (systemd) Servidores, gateways
Raspberry Pi OS Script de instalación oficial Sí (systemd) Gateways de edge, laboratorios caseros
Cualquier SO con Docker Imagen nodered/node-red Sí (política de reinicio) Despliegues reproducibles

Instalar Node-RED en Windows

  1. Descarga el instalador LTS de Node.js (.msi) desde nodejs.org y ejecútalo con las opciones por defecto. Acepta la opción que añade Node.js a tu PATH.
  2. Abre una nueva ventana de PowerShell y comprueba las versiones:
node --version
npm --version
  1. Instala Node-RED de forma global:
npm install -g --unsafe-perm node-red
  1. Arráncalo:
node-red

El log termina con una línea como Server now running at http://127.0.0.1:1880/. Abre esa dirección en el navegador y aparecerá el editor. Tus flujos y ajustes se guardan en C:\Users\<you>\.node-red.

Para que Node-RED siga funcionando después de cerrar el terminal y arranque con el sistema, un enfoque habitual es PM2:

npm install -g pm2
pm2 start "$env:APPDATA\npm\node_modules\node-red\red.js" --name node-red
pm2 save

En Windows, PM2 necesita un ayudante adicional como pm2-installer o un wrapper de servicio de Windows para arrancar con el sistema; sigue sus instrucciones o usa el Programador de tareas para ejecutar pm2 resurrect al iniciar sesión.

Instalar Node-RED en Linux y Raspberry Pi

En Debian, Ubuntu y Raspberry Pi OS, el proyecto Node-RED ofrece un script de instalación que instala una versión adecuada de Node.js, instala Node-RED y configura un servicio systemd. Ejecútalo como usuario normal con permisos sudo, no como root:

bash <(curl -sL https://github.com/node-red/linux-installers/releases/latest/download/update-nodejs-and-nodered-deb)

El script hace algunas preguntas, como si quieres sustituir una instalación existente de Node.js y si quieres instalar los nodos específicos de la Pi. Cuando termine, arranca Node-RED y actívalo al inicio:

node-red-start                      # arranca el servicio y muestra el log
sudo systemctl enable nodered.service

Comandos útiles a partir de entonces:

node-red-stop
node-red-restart
node-red-log

Después abre en el navegador http://<device-ip>:1880. Para averiguar la dirección de la Pi, ejecuta hostname -I. El mismo script es la forma más sencilla de actualizar más adelante: vuelve a ejecutarlo y actualizará Node.js y Node-RED en su sitio. Los detalles completos y las opciones están en la documentación oficial de primeros pasos de Node-RED.

En otras distribuciones, instala Node.js LTS desde tu gestor de paquetes o NodeSource, ejecuta sudo npm install -g --unsafe-perm node-red y crea tu propia unidad systemd.

Instalar Node-RED con Docker

Si ya usas contenedores, Docker es la opción más limpia, porque las actualizaciones y las vueltas atrás son simples etiquetas de imagen:

docker volume create node_red_data
docker run -d --name nodered --restart unless-stopped \
  -p 1880:1880 -v node_red_data:/data nodered/node-red:latest

El volumen /data contiene tus flujos, credenciales y nodos instalados, así que sobreviven a las actualizaciones del contenedor. Para fijar una versión, sustituye latest por una etiqueta concreta. Nuestra guía de Node-RED con Docker cubre Docker Compose, las variables de entorno y las copias de seguridad.

Protege el editor antes de exponerlo

Por defecto, el editor no tiene login. No pasa nada en 127.0.0.1, pero en una Raspberry Pi o un servidor cualquiera en la red puede abrir el puerto 1880 y ejecutar código arbitrario mediante un nodo Function o Exec. Antes de usar Node-RED en una red compartida:

  1. Genera un hash de contraseña:
node-red admin hash-pw
  1. Edita settings.js en tu directorio de usuario (~/.node-red/settings.js) y activa adminAuth:
adminAuth: {
    type: "credentials",
    users: [{
        username: "admin",
        password: "PASTE_THE_BCRYPT_HASH_HERE",
        permissions: "*"
    }]
},
  1. Define un credentialSecret en el mismo archivo para que las credenciales almacenadas se cifren con una clave que controlas y reinicia Node-RED.

Para HTTPS, proxies inversos y más medidas de refuerzo, consulta cómo proteger Node-RED.

Tu primer flujo MQTT después de instalar Node-RED

Ahora conecta Node-RED a un broker real. El servidor MQTT público gratuito en broker.connectmq.com acepta conexiones anónimas, así que puedes probar sin crear una cuenta. Usa un prefijo de topic único y recuerda que el área pública la puede ver todo el mundo: es para pruebas y prototipos, no para datos de producción.

En el editor, abre el menú (arriba a la derecha), elige Import, pega el JSON de abajo y haz clic en Import:

[
  {
    "id": "c0a1b2c3d4e5f601",
    "type": "mqtt-broker",
    "name": "ConnectMQ public",
    "broker": "broker.connectmq.com",
    "port": "1883",
    "clientid": "nodered-first-4d9e",
    "autoConnect": true,
    "usetls": false,
    "protocolVersion": "4",
    "keepalive": "60",
    "cleansession": true,
    "autoUnsubscribe": true
  },
  {
    "id": "c0a1b2c3d4e5f602",
    "type": "inject",
    "name": "Send test reading",
    "props": [{ "p": "payload" }, { "p": "topic", "vt": "str" }],
    "repeat": "",
    "once": false,
    "topic": "connectmq/demo/4d9e/sensor",
    "payload": "{\"temperature\":21.5}",
    "payloadType": "json",
    "x": 160,
    "y": 80,
    "wires": [["c0a1b2c3d4e5f603"]]
  },
  {
    "id": "c0a1b2c3d4e5f603",
    "type": "mqtt out",
    "name": "Publish",
    "topic": "",
    "qos": "0",
    "retain": "false",
    "broker": "c0a1b2c3d4e5f601",
    "x": 380,
    "y": 80,
    "wires": []
  },
  {
    "id": "c0a1b2c3d4e5f604",
    "type": "mqtt in",
    "name": "Subscribe demo topics",
    "topic": "connectmq/demo/4d9e/#",
    "qos": "0",
    "datatype": "auto-detect",
    "broker": "c0a1b2c3d4e5f601",
    "nl": false,
    "rap": true,
    "rh": 0,
    "inputs": 0,
    "x": 180,
    "y": 160,
    "wires": [["c0a1b2c3d4e5f605"]]
  },
  {
    "id": "c0a1b2c3d4e5f605",
    "type": "debug",
    "name": "Show message",
    "active": true,
    "tosidebar": true,
    "console": false,
    "complete": "true",
    "targetType": "full",
    "x": 410,
    "y": 160,
    "wires": []
  }
]

Sustituye 4d9e por tus propios caracteres aleatorios en el client ID y en ambos topics y haz clic en Deploy. Los nodos MQTT muestran un estado verde "connected". Pulsa el botón del nodo inject y la barra lateral de depuración mostrará el mensaje completo, con el payload ya convertido en un objeto gracias al ajuste de autodetección. También puedes publicar desde otra herramienta, por ejemplo mosquitto_pub -h broker.connectmq.com -p 1883 -i cli-4d9e -t connectmq/demo/4d9e/cli -m hello, y ver cómo llega.

A partir de aquí, el tutorial de MQTT con Node-RED trata en profundidad los topics, QoS, el manejo de JSON y los dashboards.

Solución de problemas de la instalación

  • node-red no se reconoce (Windows): cierra y vuelve a abrir PowerShell para cargar el PATH actualizado, o comprueba que %APPDATA%\npm está en el PATH.
  • El puerto 1880 ya está en uso: hay otra instancia en marcha. Detenla o arranca con node-red -p 1881.
  • El editor no es accesible desde otra máquina: revisa el firewall y confirma que Node-RED no está vinculado solo a localhost mediante uiHost en settings.js.
  • Los nodos MQTT se quedan en "connecting": comprueba el acceso saliente al puerto 1883 y asegúrate de que el client ID no está vacío ni lo usa otro cliente. Nuestra guía de Node-RED MQTT no se conecta enumera más causas.
  • El script de instalación falla en una Pi antigua: los modelos muy antiguos con CPU ARMv6 pueden no ser compatibles con las compilaciones actuales de Node.js; revisa la salida del instalador para obtener orientación.

Del servidor público a producción

El servidor público es perfecto para un primer flujo, pero los flujos de producción necesitan credenciales privadas y cifrado. Pasa al puerto 8883 con TLS, que es una casilla y unos pocos campos en el nodo de configuración del broker; nuestra guía de TLS en MQTT con Node-RED lo explica paso a paso. Operar el broker tú mismo implica parches, certificados y planificación de capacidad, y por eso muchos equipos combinan Node-RED con un broker MQTT gestionado. ConnectMQ da a Node-RED un broker privado con TLS en el 8883, credenciales generadas en el portal y un explorador de topics en vivo para comprobar lo que publican tus flujos. Para una visión más amplia, consulta nuestra guía de broker MQTT en la nube.

Ejecuta tus flujos de Node-RED en ConnectMQ

Regístrate en app.connectmq.com, elige el plan gratuito Serverless sin tarjeta de crédito, crea un broker y pega el usuario, la contraseña y el client ID generados en tu nodo de configuración mqtt-broker. Tu nueva instalación de Node-RED quedará conectada a un broker de ConnectMQ privado y cifrado.

Preguntas frecuentes

¿Qué versión de Node.js necesito para Node-RED?

Node-RED 4.x requiere Node.js 18 o posterior. Usa la versión LTS actual de Node.js salvo que tu plataforma tenga alguna restricción concreta.

¿Dónde guarda Node-RED mis flujos?

En el directorio de usuario, por defecto ~/.node-red en Linux y macOS y C:\Users\<you>\.node-red en Windows, o /data dentro del contenedor Docker. Haz copia de seguridad de esta carpeta, incluido flows_cred.json.

¿Cómo actualizo Node-RED?

En Debian, Ubuntu y Raspberry Pi OS, vuelve a ejecutar el script de instalación. Con npm, ejecuta npm install -g --unsafe-perm node-red. Con Docker, descarga una imagen más reciente y vuelve a crear el contenedor con el mismo volumen.

¿Puedo instalar Node-RED sin acceso a internet?

Sí, pero debes descargar previamente Node.js y los paquetes de npm en otra máquina y transferirlos, o construir una imagen Docker en otro lugar y cargarla. Conectarse más tarde a un broker en la nube requiere, por supuesto, acceso de red saliente.

Artículos relacionados

Cliente OPC UA en Node-RED hacia MQTT con topics ISA-95

Usa node-red-contrib-opcua para suscribirte a variables OPC UA de un PLC o de un servidor de simulación, asignar los node IDs a topics MQTT de estilo ISA-95 y publicar los valores con calidad y marcas de tiempo.

10 min de lectura

Node-RED Dashboard 2.0 con MQTT: indicadores, gráficos y controles

Un tutorial práctico de Node-RED Dashboard 2.0: suscríbete a telemetría MQTT en directo, muéstrala en indicadores y en un gráfico de líneas, y controla un dispositivo con un interruptor que publica comandos y refleja el estado real.

9 min de lectura

Todos los artículos →

Tu broker MQTT privado, a unos pocos clics

Crea una cuenta, obtén las credenciales de tu broker y conecta tu primer dispositivo, sin servidores que instalar, parchear ni escalar.