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.
Los cuatro roles de FlowFuse
Sección titulada «Los cuatro roles de FlowFuse»FlowFuse asigna a cada usuario un rol a nivel de equipo, con la opción de anularlo a nivel de aplicación.
| Rol | Editar flujos | Deploy | Gestionar equipo | Acceso al dashboard |
|---|---|---|---|---|
| 👑 Owner (Propietario) | ✓ | ✓ | ✓ (completo) | ✓ |
| ⚙️ Member (Miembro) | ✓ | ✓ | ✗ | ✓ |
| 👁️ Viewer (Observador) | Solo lectura | ✗ | ✗ | ✓ |
| 📊 Dashboard Only | ✗ | ✗ | ✗ | ✓ (solo) |
Ejemplo de alcance por aplicación
Sección titulada «Ejemplo de alcance por aplicación»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 editorModo 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)»Paso 1: Crear el docker-compose.yml
Sección titulada «Paso 1: Crear el 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/logPaso 2: Iniciar y configurar
Sección titulada «Paso 2: Iniciar y configurar»docker compose up -dEspera ~30 segundos, luego abre http://localhost:3000.
Paso 3: Configuración inicial (first-run)
Sección titulada «Paso 3: Configuración inicial (first-run)»- Crea tu cuenta de administrador — este usuario se convierte en el Owner principal
- Crea un Team (equipo) — agrupa tus instancias de Node-RED
- Dentro del equipo, crea una Application (agrupa instancias por entorno)
- Dentro de la aplicación, crea una Instance — FlowFuse lanza un contenedor Node-RED automáticamente
- Haz clic en Open Editor — el editor de flujos aparece normalmente
- El broker MQTT sigue siendo
mosquitto:1883dentro de los flujos, sin cambios
Gestión de usuarios y roles
Sección titulada «Gestión de usuarios y roles»Invitar un miembro al equipo
Sección titulada «Invitar un miembro al equipo»- Ve a Team → Members → Invite member
- Ingresa el email del usuario
- Asigna su rol: Owner / Member / Viewer / Dashboard Only
- El usuario recibe un email de invitación y crea su cuenta
Aplicar override de rol por aplicación
Sección titulada «Aplicar override de rol por aplicación»- Ve a la Application específica
- Members → Change role para el usuario
- Selecciona el rol de override — anula el rol de equipo solo en esta aplicación
Habilitar el Modo Protección de Instancia
Sección titulada «Habilitar el Modo Protección de Instancia»Para evitar deploys accidentales a producción:
- Ve a la Instance de producción
- Settings → Security → Instance Protection Mode → Activar
- Ahora solo un Owner puede desactivar la protección antes de un deploy
Importar flujos existentes de Node-RED
Sección titulada «Importar flujos existentes de Node-RED»Si tenías flujos en una instalación anterior de Node-RED:
- En tu instalación anterior: ☰ → Export → Download all flows → guarda el JSON
- En FlowFuse, abre el editor de la nueva instancia
- ☰ → Import → Clipboard → pega el JSON → Import
Referencia de URLs
Sección titulada «Referencia de URLs»| URL | Servicio |
|---|---|
http://localhost:3000 | Panel de administración de FlowFuse |
http://localhost:3000/app/{equipo}/{instancia} | Editor de flujos Node-RED |
http://localhost:3000/app/{equipo}/{instancia}/ui | Dashboard de la instancia |
localhost:1883 | Broker MQTT (Mosquitto) |
¿Todavía evaluando si FlowFuse es necesario? Consulta la comparativa vanilla vs FlowFuse en la guía de autenticación.