RPi 3 installation

I followed

This installation
https://nodered.org/docs/getting-started/raspberrypi
I trying to make it secure following this link:
https://nodered.org/docs/user-guide/runtime/securing-node-red#user-permissions

I Cann't run the following command:'

node-red-admin hash-pw

or

node -e "console.log(require('bcryptjs').hashSync(process.argv[1], 8));" your-password-here

Hopefully some one can help me out?

I installed Node Red on a RPi3 (headless installation).
Working on a Mac and command line tool installing.

Thank you for your time!
Robert

Hi @Robert126 - welcome to the forum.

The Pi install script does not install node-red-admin (perhaps it should... @dceejay)

So you should first run:

sudo npm install -g node-red-admin

Then you should be able to run the node-red-admin hash-pw command.

Hi knolleary,

First of all thank you for your quick response!
If I do that I get the following:
pi@raspberrypi : ~ $ sudo npm install -g node-red-admin

[sudo] password for pi:

npm WARN deprecated request@2.88.2: request has been deprecated, see Request’s Past, Present and Future · Issue #3142 · request/request · GitHub

/usr/bin/node-red-admin -> /usr/lib/node_modules/node-red-admin/node-red-admin.js

bcrypt@3.0.8 install /usr/lib/node_modules/node-red-admin/node_modules/bcrypt

node-pre-gyp install --fallback-to-build

node-pre-gyp WARN Using request for node-pre-gyp https download

node-pre-gyp WARN Pre-built binaries not installable for bcrypt@3.0.8 and node@12.16.1 (node-v72 ABI, glibc) (falling back to source compile with node-gyp)

node-pre-gyp WARN Hit error EACCES: permission denied, mkdir '/usr/lib/node_modules/node-red-admin/node_modules/bcrypt/lib'

gyp WARN EACCES current user ("nobody") does not have permission to access the dev dir "/root/.cache/node-gyp/12.16.1"

gyp WARN EACCES attempting to reinstall using temporary dev dir "/tmp/.node-gyp"

gyp ERR! configure error

gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/lib/node_modules/node-red-admin/node_modules/bcrypt/build'

gyp ERR! System Linux 4.19.97-v7+

gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--module=/usr/lib/node_modules/node-red-admin/node_modules/bcrypt/lib/binding/bcrypt_lib.node" "--module_name=bcrypt_lib" "--module_path=/usr/lib/node_modules/node-red-admin/node_modules/bcrypt/lib/binding" "--napi_version=5" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v72"

gyp ERR! cwd /usr/lib/node_modules/node-red-admin/node_modules/bcrypt

gyp ERR! node -v v12.16.1

gyp ERR! node-gyp -v v5.1.0

gyp ERR! not ok

node-pre-gyp ERR! build error

node-pre-gyp ERR! stack Error: Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/usr/lib/node_modules/node-red-admin/node_modules/bcrypt/lib/binding/bcrypt_lib.node --module_name=bcrypt_lib --module_path=/usr/lib/node_modules/node-red-admin/node_modules/bcrypt/lib/binding --napi_version=5 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v72' (1)

node-pre-gyp ERR! stack at ChildProcess. (/usr/lib/node_modules/node-red-admin/node_modules/node-pre-gyp/lib/util/compile.js:83:29)

node-pre-gyp ERR! stack at ChildProcess.emit (events.js:311:20)

node-pre-gyp ERR! stack at maybeClose (internal/child_process.js:1021:16)

node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5)

node-pre-gyp ERR! System Linux 4.19.97-v7+

node-pre-gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/node-red-admin/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"

node-pre-gyp ERR! cwd /usr/lib/node_modules/node-red-admin/node_modules/bcrypt

node-pre-gyp ERR! node -v v12.16.1

node-pre-gyp ERR! node-pre-gyp -v v0.14.0

node-pre-gyp ERR! not ok

Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/usr/lib/node_modules/node-red-admin/node_modules/bcrypt/lib/binding/bcrypt_lib.node --module_name=bcrypt_lib --module_path=/usr/lib/node_modules/node-red-admin/node_modules/bcrypt/lib/binding --napi_version=5 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v72' (1)

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: bcrypt@3.0.8 (node_modules/node-red-admin/node_modules/bcrypt):

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: bcrypt@3.0.8 install: node-pre-gyp install --fallback-to-build

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

  • node-red-admin@0.1.5

updated 1 package in 16.637s

pi@raspberrypi : ~ $

Despite all those warnings, it has actually installed.

You should now be able to run the node-red-admin command.

Rather than add something we had to maintain just for that one command (it really bloated the dpkg install size) - I offered this PR a while back.. https://github.com/node-red/node-red/pull/1917

the node-red-admin hash-pw works now!
Thank you.

But when I they to create a password for an other user
node-red-john hash-pw
I get the following
pi@raspberrypi : / $ node-red-john hash-pw

-bash: node-red-john: command not found

I created the John user in the settings.js file

The command is node-red-admin hash-pw regardless of the username.

Thank you. Sorry for my stupidity.

When I start node-red-start

I'm receiving the following error
Starting as a systemd service.
Error loading settings file: /home/pi/.node-red/settings.js
/home/pi/.node-red/settings.js:222
functionGlobalContext: {
^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Unexpected identifier
at wrapSafe (internal/modules/cjs/loader.js:1072:16)
at Module._compile (internal/modules/cjs/loader.js:1122:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
at Module.load (internal/modules/cjs/loader.js:1002:32)
at Function.Module._load (internal/modules/cjs/loader.js:901:14)
at Module.require (internal/modules/cjs/loader.js:1044:19)
at require (internal/modules/cjs/helpers.js:77:18)
at Object. (/usr/lib/node_modules/node-red/red.js:119:20)
at Module._compile (internal/modules/cjs/loader.js:1158:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
nodered.service: Succeeded.

The usually means you've missed off the comma , between functionGlobalContext and whatever setting is immediately before it.

Thank Knolleary for your help it is working!

Let's get started with Node Red :wink:

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.