Anybody Installed MSR on unRaid Docker
-
Greetings,
I'm not a Docker expert hence the choice of using unRaid but I would like to install MSR in a Docker and I'm looking for details on the settings used as I have not installed one manually yet.
I have installed MSR on Windows Server 2019 but I'm receiving (3 vulnerabilities (1 low, 2 high)) error messages with 'npm' and the audit fix breaks it ('npm').
Thanks for any help you can provide.
David
-
On the Windows side, try doing
npm i --no-save --omit dev
... it looks like a couple of the development dependencies are the cause of the audit warnings. -
I ran that and now the Reactor Windows Service Terminates unexpectedly.
*** I was able to install MSR in a Docker on unRaid so the details below are for your reference only as I plan on uninstalling Reactor in Windows. ***
Event Log Shows - ''Child process [7664 - C:\Program Files\nodejs\node.exe C:\reactor\node_modules\node-windows\lib\wrapper.js --file C:\reactor\app.js --scriptoptions= --log "Reactor wrapper" --grow 0.25 --wait 1 --maxrestarts 3 --abortonerror n --stopparentfirst undefined] finished with 1''
''C:\reactor>npm i --no-save --omit dev
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jsdoc@0.0.0',
npm WARN EBADENGINE required: { node: '~v0.4.10' },
npm WARN EBADENGINE current: { node: 'v16.13.1', npm: '8.1.2' }
npm WARN EBADENGINE }removed 5 packages, and audited 90 packages in 1s
12 packages are looking for funding
runnpm fund
for details1 high severity vulnerability
To address all issues (including breaking changes), run:
npm audit fix --forceRun
npm audit
for details.'' -
If anyone else is running Dockers on unRaid and wants instructions for Installing Reactor, see below.
Installing Multi-system Reactor in a unRaid Docker Notes. 01/22/22
unRaid Version 6.9.2
Preparation:
Based on Generic Notes from:
Typically for Generic (modify with username below):
docker run --name reactor -d --restart on-failure -p 8111:8111
-v /home/username/reactor:/var/reactor
--mount type=bind,src=/etc/localtime,target=/etc/localtime
toggledbits/reactor:latest-generic-amd64Create a Share called "reactor" and use "Prefer Cache" if cache drive is available.
Under SMB settings - Export = Yes so that you can edit config files. Set security per your needs.Go to the Docker tab click Add Container and click Advanced View for additional settings.
Enter:
Name = reactorOverview = Reactor (Multi-system, aka MSR) is an automation engine for multiple home automation systems. It allows you to develop automations that respond to and control devices across platforms. For example, you could have a motion sensor on a Hubitat controller used as a trigger for set of lights, some of which are connected through a VeraPlus and some through HomeAssistant.
Please see https://reactor.toggledbits.com/docs for more information.
Repository = toggledbits/reactor:latest-generic-amd64
For Latest otherwise choose a specific versionDocker Hub URL = https://hub.docker.com/r/toggledbits/reactor
No icon path has been found
WebUI = http://[IP]:[PORT:8111]/
CPU Pinning as you see fit.
Network Type = Bridge
Console shell command = ShellWebGUI = http://[IP]:[PORT:8111]/
Extra Parameters = --restart=on-failure
Click Add another Path, Port, Variable, Label or Device.
Choose Path -
Name = data
Container Path = /var/reactor
Host Path = /mnt/user/reactor (previous share path)
Access = Read/Write
Display = Always
Required = No
Password Mask = NoClick Add another Path, Port, Variable, Label or Device.
Choose Port -
Name = Host Port 1
Container Port = 8111
Host Port = 8111
Default Value = 8111
Type = TCP
Description will auto populate with "Container Port: 8111" once Saved
Display = Yes
Required = Yes
Password Mask = No
SaveClick Add another Path, Port, Variable, Label or Device.
Choose Variable -
Name Key 1
Key = UMASK
Val and Default = 100
Description will auto populate
Display = Yes
Required = No
Password Mask = No
Save and repeat adding Variables for below:
Key 2: Container Variable: PUID = 99
Key 3: Container Variable: PGID = 100Click Apply
Script should look similar to:
root@localhost:# /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker create --name='reactor' --net='bridge' -e TZ="America/Chicago" -e HOST_OS="Unraid" -e 'UMASK'='000' -e 'PUID'='99' -e 'PGID'='100' -p '8111:8111/tcp' -v '/mnt/user/reactor/':'/var/reactor':'rw' --restart=on-failure 'toggledbits/reactor:latest-generic-amd64'
The command finished successfully!
Notes:
- The docker manager script will add the Time Zone based on unRaid's config.
- If variables (uid/gid <> 99/100) then you must run the "New Permissions" script under Tools
and select the User Share reactor otherwise the Reactor files will be R/O except for the Docker container. - WebUI Access = "http://[your NAS IP]:8111"
- Follow the reactor configuration documentation for your Hub(s).
Regards
-
If you're getting an error mentioning
jsdoc
when usingnpm
with--omit dev
, I'm wondering if you are trying to install the latest version (22021) or something older? -
It was the latest version (22021). It was running fine but doing "npm audit fix --force" and the command you requested broke it.
To get it running again I reinstalled node.js and ran the Reactor setup scripts but I didn't like having the audit issues so I'm off of Windows now, deleted the Service and moved to a Docker.Thanks for your quick replies but you can pass on my Windows install issue.
-
It was the latest version (22021). It was running fine but doing "npm audit fix --force" and the command you requested broke it.
To get it running again I reinstalled node.js and ran the Reactor setup scripts but I didn't like having the audit issues so I'm off of Windows now, deleted the Service and moved to a Docker.Thanks for your quick replies but you can pass on my Windows install issue.
@droy said in Anybody Installed MSR on unRaid Docker:
npm audit fix --force
This broke my bare metal install on Ubuntu as well. Downgraded and did npm update -- no-save and then upgraded and ran npm i --omit dev then MSR started fine but the vulnerability warning is present. Don't know how to get all packages up to date and have MSR running...
Edit: Definitely not trying to hijack, just a FYI. Will do more troubleshooting tomorrow and report in an appropriate topic.
-
Make sure you also remove any lockfile (
package-lock.json
) created by any previous attempts at the command without--no-save --omit dev
as well.I've got one of them resolved. Working on the other.
-
Greetings,
I'm not a Docker expert hence the choice of using unRaid but I would like to install MSR in a Docker and I'm looking for details on the settings used as I have not installed one manually yet.
I have installed MSR on Windows Server 2019 but I'm receiving (3 vulnerabilities (1 low, 2 high)) error messages with 'npm' and the audit fix breaks it ('npm').
Thanks for any help you can provide.
David
Yes - I have been running my MSR in my unRAID docker for a long time now. Great details you have noted above @droy. And since a picture is worth a thousand words, I thought I would share my docker setup/UI view. This is the basic view. The only thing I have added within the advance view was an Icon URL. I also run my Reactor on it's own IP and not my unRAID, hence the br0 Network Type.
For my Icon URL: I put the following
https://smarthome.community/assets/uploads/profile/9-profileavatar.png
I suppose if @toggledbits changes his profile icon, my Reactor Docker icon will update too. -
Yes - I have been running my MSR in my unRAID docker for a long time now. Great details you have noted above @droy. And since a picture is worth a thousand words, I thought I would share my docker setup/UI view. This is the basic view. The only thing I have added within the advance view was an Icon URL. I also run my Reactor on it's own IP and not my unRAID, hence the br0 Network Type.
For my Icon URL: I put the following
https://smarthome.community/assets/uploads/profile/9-profileavatar.png
I suppose if @toggledbits changes his profile icon, my Reactor Docker icon will update too.@3rdstng Thanks for the feedback and link to an icon. I'll save that off and put it local.
One note - I try to avoid “privileged” mode for containers. It allows it to run containers with (almost) all the capabilities of their host machine, regarding kernel features and device access.Regards
-
@3rdstng Thanks for the feedback and link to an icon. I'll save that off and put it local.
One note - I try to avoid “privileged” mode for containers. It allows it to run containers with (almost) all the capabilities of their host machine, regarding kernel features and device access.Regards
@droy said in Anybody Installed MSR on unRaid Docker:
I try to avoid “privileged” mode for containers
Yeah. I don't remember why I set it that way. I'll disable it and see if anything breaks.