From 44b0268defad4bd628dde484bac3bc0aea31ff4c Mon Sep 17 00:00:00 2001 From: Mitchell R Date: Wed, 13 May 2026 02:00:40 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20nodered=20settings.js=20nodesDir=20?= =?UTF-8?q?=E2=86=92=20/usr/src/betterframe-nodes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Node-RED only scans userDir/node_modules by default. Setting nodesDir explicitly tells it to also scan our baked-in path, which survives the /data volume mount. --- deploy/docker/Dockerfile.nodered | 18 ++++++++---------- deploy/docker/nodered-settings.js | 2 ++ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/deploy/docker/Dockerfile.nodered b/deploy/docker/Dockerfile.nodered index 11574ca..daa3843 100644 --- a/deploy/docker/Dockerfile.nodered +++ b/deploy/docker/Dockerfile.nodered @@ -1,21 +1,19 @@ # BetterFrame Node-RED image with bundled BF nodes preinstalled. # # Extends official nodered/node-red, installs the workspace nodered/ -# package into Node-RED's module tree. Rebuilding the image -# (docker compose up --build) picks up any node changes. +# package at /usr/src/betterframe-nodes. settings.js points nodesDir +# there so Node-RED scans it on boot. Survives /data volume mount. FROM nodered/node-red:latest USER root -# Copy our nodes into a build dir -COPY nodered /tmp/betterframe-nodes +# Copy our nodes into a path outside /data (which is volume-mounted) +COPY nodered /usr/src/betterframe-nodes -# Install into Node-RED's own node_modules so they're found at runtime. -# Survives /data volume mounts because /usr/src/node-red is image-level. -RUN cd /usr/src/node-red && \ - npm install --omit=dev /tmp/betterframe-nodes && \ - rm -rf /tmp/betterframe-nodes && \ - chown -R node-red:root /usr/src/node-red/node_modules +# Install deps for the nodes +RUN cd /usr/src/betterframe-nodes && \ + npm install --omit=dev && \ + chown -R node-red:root /usr/src/betterframe-nodes USER node-red diff --git a/deploy/docker/nodered-settings.js b/deploy/docker/nodered-settings.js index 16375cf..0097706 100644 --- a/deploy/docker/nodered-settings.js +++ b/deploy/docker/nodered-settings.js @@ -4,4 +4,6 @@ module.exports = { httpAdminRoot: "/nrdp", httpNodeRoot: "/", functionGlobalContext: {}, + // Extra search paths for custom nodes. BF nodes baked into image at this path. + nodesDir: ["/usr/src/betterframe-nodes"], };