Ir al contenido

FlowFuse CE — RBAC Completo para Node-RED

FlowFuse es la capa de gestión y RBAC para Node-RED. Envuelve los contenedores de Node-RED en una plataforma de administración que agrega control de acceso real, gestión de equipos y registro de auditoría.

FlowFuse Community Edition es gratuita y de código abierto para autoalojar.


FlowFuse asigna a cada usuario un rol a nivel de equipo, con la opción de anularlo a nivel de aplicación.

RolEditar flujosDeployGestionar equipoAcceso al dashboard
👑 Owner (Propietario)✓ (completo)
⚙️ Member (Miembro)
👁️ Viewer (Observador)Solo lectura
📊 Dashboard Only✓ (solo)
Equipo: Plataforma IoT ACME
├─ Ana → Rol de equipo: Owner → acceso completo en todos lados
├─ Bob → Rol de equipo: Member → Override nivel app: Viewer en "Producción"
│ Resultado: edita dev/staging, solo lectura en prod
└─ Carol → Rol de equipo: Viewer → Override nivel app: Dashboard Only
Resultado: solo ve dashboards, sin acceso al editor

Modo Protección de Instancia — cuando está habilitado, incluso los Members no pueden hacer deploy a una instancia hasta que un Owner lo deshabilite explícitamente. Útil como puerta de control para despliegues a producción.


Configuración autoalojada con Docker (FlowFuse CE)

Sección titulada «Configuración autoalojada con Docker (FlowFuse CE)»
docker-compose.yml
version: '3.8'
networks:
iot-net:
driver: bridge
volumes:
postgres-data:
flowfuse-data:
mosquitto-data:
mosquitto-log:
services:
# ── 1. PostgreSQL — Base de datos de FlowFuse ────────────────────────────
postgres:
image: postgres:15-alpine
container_name: postgres
restart: unless-stopped
networks: [iot-net]
environment:
POSTGRES_DB: flowfuse
POSTGRES_USER: flowfuse
POSTGRES_PASSWORD: cambia_este_password_db # ← ¡Cambia esto!
volumes:
- postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U flowfuse"]
interval: 10s
timeout: 5s
retries: 5
# ── 2. FlowFuse — Plataforma de gestión Node-RED ─────────────────────────
flowfuse:
image: flowfuse/flowfuse:latest
container_name: flowfuse
restart: unless-stopped
networks: [iot-net]
ports:
- "3000:3000"
depends_on:
postgres:
condition: service_healthy
environment:
FF_DB_HOST: postgres
FF_DB_PORT: 5432
FF_DB_NAME: flowfuse
FF_DB_USER: flowfuse
FF_DB_PASSWORD: cambia_este_password_db
FF_SECRET: cambia_este_secreto_minimo_32_chars # ← ¡Cambia esto!
FF_BASE_URL: http://localhost:3000
volumes:
- flowfuse-data:/opt/flowfuse/var
- /var/run/docker.sock:/var/run/docker.sock # gestiona contenedores NR
# ── 3. Eclipse Mosquitto — Broker MQTT (sin cambios) ────────────────────
mosquitto:
image: eclipse-mosquitto:2.0
container_name: mosquitto
restart: unless-stopped
networks: [iot-net]
ports:
- "1883:1883"
- "9001:9001"
volumes:
- ./mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf:ro
- mosquitto-data:/mosquitto/data
- mosquitto-log:/mosquitto/log
Ventana de terminal
docker compose up -d

Espera ~30 segundos, luego abre http://localhost:3000.

  1. Crea tu cuenta de administrador — este usuario se convierte en el Owner principal
  2. Crea un Team (equipo) — agrupa tus instancias de Node-RED
  3. Dentro del equipo, crea una Application (agrupa instancias por entorno)
  4. Dentro de la aplicación, crea una Instance — FlowFuse lanza un contenedor Node-RED automáticamente
  5. Haz clic en Open Editor — el editor de flujos aparece normalmente
  6. El broker MQTT sigue siendo mosquitto:1883 dentro de los flujos, sin cambios

  1. Ve a Team → Members → Invite member
  2. Ingresa el email del usuario
  3. Asigna su rol: Owner / Member / Viewer / Dashboard Only
  4. El usuario recibe un email de invitación y crea su cuenta
  1. Ve a la Application específica
  2. Members → Change role para el usuario
  3. Selecciona el rol de override — anula el rol de equipo solo en esta aplicación

Para evitar deploys accidentales a producción:

  1. Ve a la Instance de producción
  2. Settings → Security → Instance Protection Mode → Activar
  3. Ahora solo un Owner puede desactivar la protección antes de un deploy

Si tenías flujos en una instalación anterior de Node-RED:

  1. En tu instalación anterior: ☰ → Export → Download all flows → guarda el JSON
  2. En FlowFuse, abre el editor de la nueva instancia
  3. ☰ → Import → Clipboard → pega el JSON → Import

URLServicio
http://localhost:3000Panel de administración de FlowFuse
http://localhost:3000/app/{equipo}/{instancia}Editor de flujos Node-RED
http://localhost:3000/app/{equipo}/{instancia}/uiDashboard de la instancia
localhost:1883Broker MQTT (Mosquitto)

¿Todavía evaluando si FlowFuse es necesario? Consulta la comparativa vanilla vs FlowFuse en la guía de autenticación.