Beta Apache 2.0 CI on every PR

Node-RED Control Center

One stack per Node-RED. Everything else follows.

The canonical deployment is a single Docker Compose service with one NRCC binary supervising one Node-RED process. Persistent volumes keep flows, settings, env vars, installed npm nodes, and snapshots safe across restarts. Spin up a second stack with different host ports to run a second Node-RED.

What nrcc is

One Docker stack = one Node-RED you can trust in production.

Day-to-day Node-RED operation usually means SSH-ing in, hand-editing settings.js, juggling archive files for backups, and tailing logs by hand. nrcc wraps one Node-RED per stack into a persistent control plane: JWT auth and RBAC, validated settings.js edits, persistent backups, env-var management, npm-node management, and live logs — all behind a single Go binary with an embedded React UI.

Need a second Node-RED? Add a second Compose service with different host ports and its own volumes. Each stack stays isolated: its own users, credentials, backups, and settings. No central control plane is required in MVP.

Stack

  • Go 1.25
  • Chi router
  • JWT + bcrypt
  • Cobra CLI
  • React 19
  • Vite
  • TanStack Query 5
  • Zod
  • Tailwind + daisyUI
  • Vitest

One static binary with the React UI embedded via //go:embed. Cross-compiled on every tag to Linux amd64/arm64/armv7, macOS amd64/arm64, and Windows amd64 — plus the multi-arch Docker image that is the canonical install path.

What works today

Beta · hardening phase.

MVP scope is feature-complete and the project is in a hardening phase. Everything below is shipped and exercised by the Go and Vitest suites on every PR.

One stack — one Node-RED

Persistent per-instance data

Flows, credentials, settings.js, env vars, npm node_modules, users, and snapshots all live in named volumes. The stack survives restarts without losing state.

Edit settings.js safely

Validated editor that round-trips through a real settings.js and creates a backup of the previous file before every save. Restart prompt included.

Manage env vars and secrets

Typed environment variables (string, number, boolean, secret) with encryption at rest. Changes propagate into Node-RED on the next start.

npm nodes via the UI

Install, search, and uninstall npm packages from the same panel that uses them. The package lands in the persistent node_modules volume.

Persistent backups

Manual + scheduled snapshots on a dedicated volume. Pre-restore safety backup, retention policies, and integrity checks. Restore is a single click.

Auth and RBAC

JWT login with bcrypt, admin and viewer roles, MFA support, and a last-admin guard so you can never lock yourself out of your own stack.

Operations

Live logs

Ring buffer of Node-RED stdout/stderr with level filtering and SSE streaming — read failures as they happen, not 30 seconds later.

System monitoring

CPU, memory, disk, and uptime sampled every 30 s. Plus Prometheus-compatible /metrics for external scrapers.

Future work — not in MVP

Deferred until later.

Project status

Beta · no production guarantees yet.

Quick start

One stack in three commands.

  1. 01
    Compose services: { nodered: { image: ghcr.io/fgjcarlos/nrcc:latest, ports: ["3001:3001","1880:1880"], volumes: [ nrcc_data:/data ] } }
  2. 02
    Bring it up docker compose up -d
  3. 03
    Open NRCC, create the admin, edit settings.js http://localhost:3001