Platform Login

« back to blog overview

Manage Node-RED and UIbuilder deployments with Github

A combination of Node-RED and the alternative Node-RED dashboard UIbuilder is a powerful combination to rapidly build IoT solutions. However, this leaves one key question unanswered:

How do I deploy my Node-RED application into production on a large number of edge devices?

This can be easily achieved using the device management and automation platform and combining this with a Github based workflow. This workflow is a continuous integration / continuous delivery pipeline. The overall process then works as follows:

  • develop your Node-RED flow on your local machine
  • develop your UIbuilder UI on your local machine
  • push these as one or two repositories to Github master / production
  • use Github runner Actions to automatically handle the files and push them to through the available API
  • then will distribute the files to all edge devices (this is is basically a full CI/CD pipeline)
  • log messages about successful deployments will be reported back

Let’s look at some of the advantages with this solution:

Deploy both flow files as well as credential and setting files. This allows to use Node-RED blocks with credentials and have them auto-deployed. Any committed change will be automatically delivered to all relevant edge devices and log information confirming a successful roll-out is collected. This way the combination of qbee and Github enables a continuous integration / continuous deployment (CI/CD) toolchain that allows to control the installed flows of Node-RED and UIbuilder files at the edge. Roll-backs are possible by just rolling back in Github. Managing flows and UI is possible on a fleet level, but can also be achieved on a group level allowing different devices to run with different Node-RED flows (for example if you want to run specific MQTT setups). The details are in the tutorials below:

Manage Node-Red and UIbuilder with Github

Remote headless Node-RED installation

Simple Flow distribution without Github

Interested to know more?