Node-RED: Setup
Introduction
Node-RED is an low-code platform for writing automation tasks. It can communicate with Brewblox APIs using MQTT and REST.
This tutorial show how to add a Node-RED service to an existing Brewblox system. It assumes a basic familiarity with YAML and Docker Compose.
Create the local data directory
We want the flows created by Node-RED to be persistent. To do this, we'll mount a node-red directory as volume.
In the Brewblox directory, run:
mkdir -p ./node-red
sudo chown -R 1000:1000 ./node-redAdd the service
Edit your docker-compose.yml file, and add the following service:
node-red:
image: nodered/node-red:latest-minimal
restart: unless-stopped
volumes:
- type: bind
source: ./node-red
target: /data
- type: bind
source: /etc/localtime
target: /etc/localtime
read_only: trueFix service routing
Brewblox services share the same http and https ports. To distinguish between them, the traefik proxy looks at the URL path prefix. This prefix should match the service name. Here, want the path to the editor UI to be prefixed with /node-red.
To do this, we'll edit the automatically generated configuration.
First, start the service to generate the default configuration files:
brewblox-ctl upThen, edit the configuration file to set the /node-red prefix for the web UI:
sudo sed -i 's#//httpAdminRoot:.*#httpAdminRoot: "/node-red",#g' ./node-red/settings.js
sudo chown 1000:1000 ./node-red/settings.jsRestart the service to apply the setting:
brewblox-ctl restart node-redNow, when you visit {BREWBLOX_ADDRESS}/node-red in your browser, it will load the Node-RED web UI.