New add-on: Node-RED Plus

I had an external Node-RED setup that I was looking forward to migrating into Home Assistant, only to discover several limitations in the Node-RED community add-on that made this nearly impossible. Consequently I created a new add-on to avoid these limitations and make some further improvements, and I offer it here.

Node-RED Plus

Currently providing Node-RED v4.1.0, this add-on has the following improvements over the existing Node-RED add-on:

  • Works with FlowFuse Dashboard (aka Dashboard 2.0) out-of-the-box, replacing the deprecated Node-RED dashboard. The latter can still be installed separately if needed. Dashboard 2.0 elements such as UI LED and UI iframe that don’t work properly with the community add-on do work with this add-on.
  • The /endpoint path prefix (httpNodeRoot) is now customizable, and is eliminated by default. This means your dashboard is accessible from e.g. /dashboard or /ui instead of /endpoint/ui.
  • The Node-RED projects feature can now be enabled directly from within the add-on’s configuration.
  • The direct access port now supports IPv6 as well as IPv4.
  • English translations have been added to the configuration options for friendliness and convenience.

The add-on otherwise works much the same as the existing add-on. Several internal bits have also been improved and optimized to support the above changes.

Installation

To install, first add the MARS add-on repository to your Home Assistant:

Add this repository to your Home Assistant instance

Then you should be able to install the Node-RED Plus add-on.

Please let me know if you encounter any difficulty installing or using the add-on, or if you would like to provide additional translations for the configuration options.

3 Likes

what does the subscription cost per month? :joy:

fault : Docker build failed for 2f15fade/aarch64-addon-node-red-plus:20.0.0-plus-37 (exit code 1). Build output: #0 building with “default” instance using docker driver #1 [internal] load build definition from Dockerfile #1 transferring dockerfile: 2.48kB done #1 DONE 0.0s #2 [internal] load metadata for Package base · GitHub #2 DONE 0.2s #3 [internal] load .dockerignore #3 transferring context: 2B done #3 DONE 0.0s #4 [1/5] FROM ghcr.io/hassio-addons/base:18.1.0@sha256:90f3b27a296bf5603a1113943199815a19d45f829adfe1c28e7a24e0b4faaee5 #4 DONE 0.0s #5 [internal] load build context #5 transferring context: 33.27kB 0.0s done #5 DONE 0.1s #6 [2/5] COPY package.json /opt/ #6 CACHED #7 [3/5] WORKDIR /opt #7 CACHED #8 [4/5] RUN apk add --no-cache --virtual .build-dependencies build-base=0.5-r3 linux-headers=6.14.2-r0 py3-pip=25.1.1-r0 python3-dev=3.12.11-r0 && apk add --no-cache git=2.49.1-r0 icu-data-full=76.1-r1 nginx=1.28.0-r3 nodejs=22.16.0-r2 npm=11.3.0-r0 openssh-client=10.0_p1-r7 && npm install --no-audit --no-fund --no-update-notifier --omit=dev --unsafe-perm && npm rebuild --build-from-source @serialport/bindings-cpp && npm cache clear --force && echo -e “StrictHostKeyChecking no” >> /etc/ssh/ssh_config && apk del --no-cache --purge .build-dependencies && rm -fr /etc/nginx /root/.cache /root/.npm /root/.nrpmrc /tmp/* #8 0.523 fetch https://dl-cdn.alpinelinux.org/alpine/v3.22/main/aarch64/APKINDEX.tar.gz #8 0.993 fetch https://dl-cdn.alpinelinux.org/alpine/v3.22/community/aarch64/APKINDEX.tar.gz #8 2.774 ERROR: unable to select packages: #8 2.798 python3-dev-3.12.12-r0: #8 2.798 breaks: .build-dependencies-20251029.174152[python3-dev=3.12.11-r0] #8 2.798 .build-dependencies-20251029.174152: #8 2.798 masked in: cache #8 2.798 satisfies: world[.build-dependencies=20251029.174152] #8 ERROR: process "/bin/bash -o pipefail -c apk add --no-cache --virtual .build-dependencies build-base=0.5-r3 linux-headers=6.14.2-r0 py3-pip=25.1.1-r0 python3-dev=3.12.11-r0 && apk add --no-cache git=2.49.1-r0 icu-data-full=76.1-r1 nginx=1.28.0-r3 nodejs=22.16.0-r2 npm=11.3.0-r0 openssh-client=10.0_p1-r7 && npm install --no-audit --no-fund --no-update-notifier --omit=dev --unsafe-perm && npm rebuild --build-from-source @serialport/bindings-cpp && npm cache clear --force && echo -e "StrictHostKeyChecking no" >> /etc/ssh/ssh_config && apk del --no-cache --purge .build-dependencies && rm -fr /etc/nginx /root/.cache /root/.npm /root/.nrpmrc /tmp/" did not complete successfully: exit code: 2 ------ > [4/5] RUN apk add --no-cache --virtual .build-dependencies build-base=0.5-r3 linux-headers=6.14.2-r0 py3-pip=25.1.1-r0 python3-dev=3.12.11-r0 && apk add --no-cache git=2.49.1-r0 icu-data-full=76.1-r1 nginx=1.28.0-r3 nodejs=22.16.0-r2 npm=11.3.0-r0 openssh-client=10.0_p1-r7 && npm install --no-audit --no-fund --no-update-notifier --omit=dev --unsafe-perm && npm rebuild --build-from-source @serialport/bindings-cpp && npm cache clear --force && echo -e “StrictHostKeyChecking no” >> /etc/ssh/ssh_config && apk del --no-cache --purge .build-dependencies && rm -fr /etc/nginx /root/.cache /root/.npm /root/.nrpmrc /tmp/: 0.523 fetch https://dl-cdn.alpinelinux.org/alpine/v3.22/main/aarch64/APKINDEX.tar.gz 0.993 fetch https://dl-cdn.alpinelinux.org/alpine/v3.22/community/aarch64/APKINDEX.tar.gz 2.774 ERROR: unable to select packages: 2.798 python3-dev-3.12.12-r0: 2.798 breaks: .build-dependencies-20251029.174152[python3-dev=3.12.11-r0] 2.798 .build-dependencies-20251029.174152: 2.798 masked in: cache 2.798 satisfies: world[.build-dependencies=20251029.174152] ------ Dockerfile:15 -------------------- 14 | # Setup base 15 | >>> RUN \ 16 | >>> apk add --no-cache --virtual .build-dependencies \ 17 | >>> build-base=0.5-r3 \ 18 | >>> linux-headers=6.14.2-r0 \ 19 | >>> py3-pip=25.1.1-r0 \ 20 | >>> python3-dev=3.12.11-r0 \ 21 | >>> \ 22 | >>> && apk add --no-cache \ 23 | >>> git=2.49.1-r0 \ 24 | >>> icu-data-full=76.1-r1 \ 25 | >>> nginx=1.28.0-r3 \ 26 | >>> nodejs=22.16.0-r2 \ 27 | >>> npm=11.3.0-r0 \ 28 | >>> openssh-client=10.0_p1-r7 \ 29 | >>> \ 30 | >>> && npm install \ 31 | >>> --no-audit \ 32 | >>> --no-fund \ 33 | >>> --no-update-notifier \ 34 | >>> --omit=dev \ 35 | >>> --unsafe-perm \ 36 | >>> && npm rebuild --build-from-source @serialport/bindings-cpp \ 37 | >>> \ 38 | >>> && npm cache clear --force \ 39 | >>> \ 40 | >>> && echo -e “StrictHostKeyChecking no” >> /etc/ssh/ssh_config \ 41 | >>> \ 42 | >>> && apk del --no-cache --purge .build-dependencies \ 43 | >>> && rm -fr \ 44 | >>> /etc/nginx \ 45 | >>> /root/.cache \ 46 | >>> /root/.npm \ 47 | >>> /root/.nrpmrc \ 48 | >>> /tmp/* 49 | -------------------- ERROR: failed to build: failed to solve: process “/bin/bash -o pipefail -c apk add --no-cache --virtual .build-dependencies build-base=0.5-r3 linux-headers=6.14.2-r0 py3-pip=25.1.1-r0 python3-dev=3.12.11-r0 && apk add --no-cache git=2.49.1-r0 icu-data-full=76.1-r1 nginx=1.28.0-r3 nodejs=22.16.0-r2 npm=11.3.0-r0 openssh-client=10.0_p1-r7 && npm install --no-audit --no-fund --no-update-notifier --omit=dev --unsafe-perm && npm rebuild --build-from-source @serialport/bindings-cpp && npm cache clear --force && echo -e "StrictHostKeyChecking no" >> /etc/ssh/ssh_config && apk del --no-cache --purge .build-dependencies && rm -fr /etc/nginx /root/.cache /root/.npm /root/.nrpmrc /tmp/*” did not complete successfully: exit code: 2

Same here.

Looks like some version skew began to cause problems. Try the latest update (20.0.0-plus-57) and see if that helps.

This add-on is now synchronized with the latest version of the upstream add-on (20.2.1). In addition, the add-on is now installed from pre-built images so there should never be any further problems like were encountered above, and both installation and updates are now much quicker.