---
title: "Node-RED con Docker Compose y hosting en un clic"
description: "Node-RED une APIs, dispositivos y servicios en flujos low-code desde el navegador. Autoaloja este editor de automatización de código abierto en un clic."
---

[← Todas las plantillas](https://pethost.dev/es/templates/) · [Automatización](https://pethost.dev/es/templates/automation/)

# Despliega Node-RED en un clic

Flujos low-code que conectan APIs, dispositivos y servicios en línea

Una alternativa autoalojada a Zapier e IFTTT.

[Desplegar en Pethost](https://console.pethost.dev/?template=node-red)

## ¿Qué es Node-RED?

Node-RED es una herramienta de programación low-code y de código abierto para aplicaciones orientadas a eventos, que a menudo se usa en lugar de Zapier o IFTTT. En su editor, en el navegador, arrastras nodos a un lienzo y los conectas en flujos: un mensaje entra desde una petición HTTP, un topic MQTT, un webhook o un temporizador, pasa por nodos que lo modifican, lo filtran o lo enrutan, y sale hacia una base de datos, una API o un chat. Un nodo Function ejecuta tu propio JavaScript donde ningún nodo sirve, y la biblioteca de la comunidad tiene más de 6000 nodos que se instalan desde el editor.

Node-RED nació en IBM en 2013 y hoy es un proyecto de la OpenJS Foundation. Se usa para domótica, a menudo junto a Home Assistant, para datos de IoT e industriales y como pegamento entre servicios web, y quienes lo autoalojan lo hacen para ejecutar sus automatizaciones las 24 horas sin pagar por cada ejecución. Esta plantilla solo deja entrar en el editor con el nombre de usuario y la contraseña indicados. El inconveniente: las rutas de los nodos HTTP In son públicas, así que un endpoint que deba ser privado necesita httpNodeAuth en settings.js o una comprobación propia.

## Hosting de Node-RED en Pethost

1. Inicias sesión en Pethost con una passkey, GitHub o Google. ¿Aún no tienes máquina? Eliges un plan, y el enlace espera hasta que esté lista.
2. Nuevo proyecto se abre en Node-RED. Rellenas lo que pide y haces clic en Crear proyecto: **Nombre de usuario**, **Contraseña de administrador**.
3. En un par de minutos Node-RED está en marcha en su propia dirección con HTTPS. Sus secretos se generan al azar, y sus datos entran en el backup de cada noche.
4. Es un proyecto como cualquier otro: tú o tu agente lo pueden cambiar, volver a una versión anterior o restaurar.

## Preguntas sobre Node-RED

**¿Node-RED es gratis?**

Sí. Node-RED es de código abierto bajo la licencia Apache 2.0 y no cuesta nada, sea cual sea el número de flujos o de mensajes. Es un proyecto de la OpenJS Foundation.

**¿Cómo instalo más nodos en Node-RED?**

Abre el menú principal, elige “Administrar paleta” y busca en su pestaña Instalar, que lista los nodos de la biblioteca de la comunidad. Los nodos instalados se guardan en el volumen data, así que se conservan entre reinicios y nuevos despliegues.

**¿Node-RED funciona con Home Assistant?**

Sí. Los nodos de node-red-contrib-home-assistant-websocket se comunican con Home Assistant mediante sus APIs WebSocket y REST, para reaccionar a sus eventos y llamar a sus servicios. Tu Home Assistant tiene que ser accesible desde la máquina en la que se ejecuta Node-RED.

**¿Cómo creo un dashboard en Node-RED?**

Instala @flowfuse/node-red-dashboard con “Administrar paleta”: sus nodos dibujan botones, gráficos y formularios en una página que sirve Node-RED. El antiguo node-red-dashboard está obsoleto desde junio de 2024.

**¿Cómo protejo los endpoints HTTP de mis flujos?**

El editor pide iniciar sesión, pero las rutas de los nodos HTTP In responden a cualquiera. Define httpNodeAuth con un usuario y un hash bcrypt en /data/settings.js para poner una misma contraseña a todas, o comprueba un token en el propio flujo.

**¿Cuánta memoria y disco necesita Node-RED?**

Node-RED es ligero: unos 100 MB de memoria; los flujos ocupan kilobytes, y los nodos que instales, unos pocos megabytes cada uno. En Pethost le basta el plan Starter, y queda sitio para otras apps a su lado.

## El archivo Docker Compose de Node-RED

La plantilla es este compose.yaml y las variables que se escriben en el .env del proyecto al crearlo. Pethost ejecuta el archivo tal como está escrito.

**Contenedores:** node-red (nodered/node-red:5).

**Volúmenes, en el backup de cada noche:** 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:
```

[compose.yaml](https://pethost.dev/templates/node-red/compose.yaml)[Verla en GitHub](https://github.com/pethost-dev/templates/tree/main/node-red)

## [Más en Automatización](https://pethost.dev/es/templates/automation/)

- [**n8n**Automatización de flujos de trabajo con un editor visual](https://pethost.dev/es/templates/n8n/)
- [**Jenkins**Un servidor de automatización para builds, pruebas y despliegues](https://pethost.dev/es/templates/jenkins/)
- [**Semaphore UI**Una interfaz web para Ansible, Terraform y otra automatización](https://pethost.dev/es/templates/semaphore/)
- [**Activepieces**Automatizaciones y agentes de IA hechos con cientos de piezas, sin código](https://pethost.dev/es/templates/activepieces/)
- [**Windmill**Scripts, flujos y apps en Python, TypeScript, Go, SQL o Bash, ejecutados por workers según un horario, un webhook o un botón](https://pethost.dev/es/templates/windmill/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Plantillas](https://pethost.dev/es/templates/)
- [Sobre nosotros](https://pethost.dev/about/)
- [Docs](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/es/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [Términos](https://pethost.dev/terms/)
- [Privacidad](https://pethost.dev/privacy/)
- [Reembolsos](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Bases de datos

- [Postgres](https://pethost.dev/es/postgres/)

Comparativas

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/es/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/es/blog/coolify-cloud-vs-dokploy-cloud/)
- [Precios de Railway vs Render vs Fly.io](https://pethost.dev/es/blog/railway-vs-render-vs-fly-io-pricing/)
- [Hosting gestionado para Docker Compose](https://pethost.dev/es/blog/managed-docker-compose-hosting/)

Alternativas

- [Alternativas a Railway](https://pethost.dev/es/blog/railway-alternatives/)
- [Alternativas a Heroku](https://pethost.dev/es/blog/heroku-alternatives/)
- [Alternativas a Dokploy](https://pethost.dev/es/blog/dokploy-alternatives/)
- [Alternativas a Coolify](https://pethost.dev/es/blog/coolify-alternatives/)
- [Alternativas a Render](https://pethost.dev/es/blog/render-alternatives/)
- [Alternativas a Sliplane](https://pethost.dev/es/blog/sliplane-alternatives/)
