Roon Extension Manager v0.11.9 [Obsolete]

My version is

7.3.0

And the OS is

DietPi v6.34.3
gen 02 13:37:15 roon systemd[1]: Started Roon Extension Manager.
gen 02 13:37:15 roon roon-extension-manager.sh[777]: /home/roon/.RoonExtensions/bin/roon-extension-manager.sh: riga 20: cd: node_modules/roon-extension-manager: File o directory non esistente
gen 02 13:37:16 roon roon-extension-manager.sh[787]: internal/modules/cjs/loader.js:638
gen 02 13:37:16 roon roon-extension-manager.sh[787]:     throw err;
gen 02 13:37:16 roon roon-extension-manager.sh[787]:     ^
gen 02 13:37:16 roon roon-extension-manager.sh[787]: Error: Cannot find module '/home/roon/.RoonExtensions/bin'
gen 02 13:37:16 roon roon-extension-manager.sh[787]:     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
gen 02 13:37:16 roon roon-extension-manager.sh[787]:     at Function.Module._load (internal/modules/cjs/loader.js:562:25)
gen 02 13:37:16 roon roon-extension-manager.sh[787]:     at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
gen 02 13:37:16 roon roon-extension-manager.sh[787]:     at startup (internal/bootstrap/node.js:283:19)
gen 02 13:37:16 roon roon-extension-manager.sh[787]:     at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
gen 02 13:37:16 roon systemd[1]: roon-extension-manager.service: Succeeded.
gen 02 13:37:16 roon systemd[1]: roon-extension-manager.service: Scheduled restart job, restart counter is at 1.
gen 02 13:37:16 roon systemd[1]: Stopped Roon Extension Manager.
gen 02 13:37:16 roon systemd[1]: Started Roon Extension Manager.
gen 02 13:37:16 roon roon-extension-manager.sh[1050]: /home/roon/.RoonExtensions/bin/roon-extension-manager.sh: riga 20: cd: node_modules/roon-extension-manager: File o directory non esistente
gen 02 13:37:17 roon roon-extension-manager.sh[1053]: internal/modules/cjs/loader.js:638
gen 02 13:37:17 roon roon-extension-manager.sh[1053]:     throw err;
gen 02 13:37:17 roon roon-extension-manager.sh[1053]:     ^
gen 02 13:37:17 roon roon-extension-manager.sh[1053]: Error: Cannot find module '/home/roon/.RoonExtensions/bin'
gen 02 13:37:17 roon roon-extension-manager.sh[1053]:     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
gen 02 13:37:17 roon roon-extension-manager.sh[1053]:     at Function.Module._load (internal/modules/cjs/loader.js:562:25)
gen 02 13:37:17 roon roon-extension-manager.sh[1053]:     at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
gen 02 13:37:17 roon roon-extension-manager.sh[1053]:     at startup (internal/bootstrap/node.js:283:19)
gen 02 13:37:17 roon roon-extension-manager.sh[1053]:     at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
gen 02 13:37:17 roon systemd[1]: roon-extension-manager.service: Succeeded.
gen 02 13:37:17 roon systemd[1]: roon-extension-manager.service: Scheduled restart job, restart counter is at 2.
gen 02 13:37:17 roon systemd[1]: Stopped Roon Extension Manager.
gen 02 13:37:17 roon systemd[1]: Started Roon Extension Manager.
gen 02 13:37:17 roon roon-extension-manager.sh[1242]: /home/roon/.RoonExtensions/bin/roon-extension-manager.sh: riga 20: cd: node_modules/roon-extension-manager: File o directory non esistente
gen 02 13:37:17 roon roon-extension-manager.sh[1243]: internal/modules/cjs/loader.js:638
gen 02 13:37:17 roon roon-extension-manager.sh[1243]:     throw err;
gen 02 13:37:17 roon roon-extension-manager.sh[1243]:     ^
gen 02 13:37:17 roon roon-extension-manager.sh[1243]: Error: Cannot find module '/home/roon/.RoonExtensions/bin'
gen 02 13:37:17 roon roon-extension-manager.sh[1243]:     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
gen 02 13:37:17 roon roon-extension-manager.sh[1243]:     at Function.Module._load (internal/modules/cjs/loader.js:562:25)
gen 02 13:37:17 roon roon-extension-manager.sh[1243]:     at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
gen 02 13:37:17 roon roon-extension-manager.sh[1243]:     at startup (internal/bootstrap/node.js:283:19)
gen 02 13:37:17 roon roon-extension-manager.sh[1243]:     at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
gen 02 13:37:17 roon systemd[1]: roon-extension-manager.service: Succeeded.
gen 02 13:37:17 roon systemd[1]: roon-extension-manager.service: Scheduled restart job, restart counter is at 3.
gen 02 13:37:17 roon systemd[1]: Stopped Roon Extension Manager.
gen 02 13:37:17 roon systemd[1]: Started Roon Extension Manager.
gen 02 13:37:17 roon roon-extension-manager.sh[1317]: /home/roon/.RoonExtensions/bin/roon-extension-manager.sh: riga 20: cd: node_modules/roon-extension-manager: File o directory non esistente
gen 02 13:37:18 roon roon-extension-manager.sh[1318]: internal/modules/cjs/loader.js:638
gen 02 13:37:18 roon roon-extension-manager.sh[1318]:     throw err;
gen 02 13:37:18 roon roon-extension-manager.sh[1318]:     ^
gen 02 13:37:18 roon roon-extension-manager.sh[1318]: Error: Cannot find module '/home/roon/.RoonExtensions/bin'
gen 02 13:37:18 roon roon-extension-manager.sh[1318]:     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
gen 02 13:37:18 roon roon-extension-manager.sh[1318]:     at Function.Module._load (internal/modules/cjs/loader.js:562:25)
gen 02 13:37:18 roon roon-extension-manager.sh[1318]:     at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
gen 02 13:37:18 roon roon-extension-manager.sh[1318]:     at startup (internal/bootstrap/node.js:283:19)
gen 02 13:37:18 roon roon-extension-manager.sh[1318]:     at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
gen 02 13:37:18 roon systemd[1]: roon-extension-manager.service: Succeeded.
gen 02 13:37:18 roon systemd[1]: roon-extension-manager.service: Scheduled restart job, restart counter is at 4.
gen 02 13:37:18 roon systemd[1]: Stopped Roon Extension Manager.
gen 02 13:37:18 roon systemd[1]: Started Roon Extension Manager.
gen 02 13:37:18 roon roon-extension-manager.sh[1375]: /home/roon/.RoonExtensions/bin/roon-extension-manager.sh: riga 20: cd: node_modules/roon-extension-manager: File o directory non esistente
gen 02 13:37:18 roon roon-extension-manager.sh[1376]: internal/modules/cjs/loader.js:638
gen 02 13:37:18 roon roon-extension-manager.sh[1376]:     throw err;
gen 02 13:37:18 roon roon-extension-manager.sh[1376]:     ^
gen 02 13:37:18 roon roon-extension-manager.sh[1376]: Error: Cannot find module '/home/roon/.RoonExtensions/bin'
gen 02 13:37:18 roon roon-extension-manager.sh[1376]:     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
gen 02 13:37:18 roon roon-extension-manager.sh[1376]:     at Function.Module._load (internal/modules/cjs/loader.js:562:25)
gen 02 13:37:18 roon roon-extension-manager.sh[1376]:     at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
gen 02 13:37:18 roon roon-extension-manager.sh[1376]:     at startup (internal/bootstrap/node.js:283:19)
gen 02 13:37:18 roon roon-extension-manager.sh[1376]:     at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
gen 02 13:37:18 roon systemd[1]: roon-extension-manager.service: Succeeded.
gen 02 13:37:19 roon systemd[1]: roon-extension-manager.service: Scheduled restart job, restart counter is at 5.
gen 02 13:37:19 roon systemd[1]: Stopped Roon Extension Manager.
gen 02 13:37:19 roon systemd[1]: roon-extension-manager.service: Start request repeated too quickly.
gen 02 13:37:19 roon systemd[1]: roon-extension-manager.service: Failed with result 'start-limit-hit'.
gen 02 13:37:19 roon systemd[1]: Failed to start Roon Extension Manager.

Does this mean I will have to use a previous npm release? If so, Iā€™d better switch to Ubuntu (or Debian) as I hadnā€™t heard of DietPi prior to looking at Extension Managerā€¦

This looks like a broken installation, based on the non-existence of the /home/roon/.RoonExtensions/bin/roon-extension-manager.sh script. Can you run the setup script once more and capture the output of it?

You can also work around it by running the Extension Manager in a Docker container. For that you run the docker run command, as specified here, in the DietPi shell. You donā€™t have to specify a tag.

The npm 7 issue needs more investigation, I donā€™t know yet when an update becomes available.

i did a fresh install and now it works (i had to fix the path in the ā€œroon-extension-manager.shā€ script)

What was the modification you had to make to the path?

after this error:

/home/roon/.RoonExtensions/lib/roon-extension-manager.sh: riga 20: cd: node_modules/roon-extension-manager: File o directory non esistente

iā€™ve modify the path in
/usr/local/lib/node_modules/roon-extension-manager

I updated the Linux setup script. It had an issue in setting up the installation path, causing the extensions to end up at the wrong place (hence why you had to modify the path).

1 Like

npm 7 compatibilty issues resolved (v0.11.9)

The Extension Manager stopped working when the internally used npm tool got updated to version 7.x, this was for example the case on a fresh install on DietPi. The issues manifested itself by reporting an ā€œExtension query failedā€ after an extension installation and by not providing an Update action for the installed extensions.

Screen Shot 2020-12-31 at 5.08.20 PM

How to recover?

If you ran into these issues you have to update in an alternative way as the Extension Manager cannot be updated via its Settings dialog. If you are running on DietPi you can recover by running the following command:

dietpi-software reinstall 86

If you run on another Linux distribution you use:

npm update -g roon-extension-manager

@Adi_Linden, I donā€™t know if you already worked around the issue, anyway, thanks for the report.

@Jan_Koudijs Iā€™m trying to install under Windows 10 but iā€™ve this error. Can you help me?

Hi @Daniele_Piancastelli,

I have had multiple reports of a broken Windows service, the thing is that it remained working on my Windows setup and that I could not track it down.

My suggestion is to move over to a Raspberry Pi for your extensions or run your extensions in a DietPi VM on Windows. This is how I choose to move forward with the Extension Manager. You can read about it in this post:

Hello,
I have a very fundamental question:
which machine does this need to be installed?
On the Core machine or end-point?
Or any machine?
Perhaps a paragraph of its basic control/data flow would be very helpful
for the newā€¦

Hong normally a Raspberry Pi or something like a Docker container on a Synology or QNAP

I think these days the extensions are Linux only and I run mine on Raspberry Pi 4 devices and find it very reliable. DietPi is a good starting point for this and I have used it for years and only log on once or twice a year to perform updates.

I hope this helps.

thanks Michaelā€¦
so RPI4 does not have to be a Roon Bridge or anything?
it just runs the Extension Manager and extensions?
can it be installed on the machine that runs the Core?
i guess iā€™m missing the basic design of Core and its extensionsā€¦

Hong it depends on your Core.
If running Rock then no, and while I am not 100% positive, I donā€™t think it runs natively on Mac or Windows either.

If you run Core on Linux then yes it can run Extension manager.

If you run something like DietPi then it can act as an endpoint and an extension manager server. I used this for a while and it worked well.

OK, I have it installed on the Core Linux machine and managed to install the Web Controller!
And it is enabled.
Now what? How do I see it?

UPDATE: ip_addr:8080 did the trick.

1 Like

Great news :+1:

hi michael
since youā€™ve been so helpful, here goes another dumb one:
when iā€™m ready to update an extension like Web Controller,
the instruction simply states On the node server, do a ā€œgit pullā€

so my questions is:
exactly where on the node server?
~/.RoonExtensions or some subdirectory?

thanks again for your guidanceā€¦

I donā€™t do much with Docker or Git, but I have installed and updated a number of modules away from Roon Extension Manager (which does itā€™s own updates through the Roon interface) and I have gone into the folder a level below and run the installer or updater from there which has been successful (but donā€™t follow my advice on this).

This one is probably best answered by someone like @Jan_Koudijs