chrisns / docker-node-sonos-http-api

Docker wrapper for https://github.com/jishi/node-sonos-http-api
MIT License
68 stars 25 forks source link

Error: Cannot find module './settings.json'] code: 'MODULE_NOT_FOUND' #109

Closed DeltaNu1142 closed 2 years ago

DeltaNu1142 commented 3 years ago

I'm attempting to get my newly-created settings.json file recognized on startup, to no avail. I have a directory on my main Synology volume mapped, with the settings.json file located in it... Folder is /docker/sonos/settings, and Mount Path is /app/settings. Type is rw. Presets, clips, and cache folders are also mapped. I've tested the container and it works great. Specifically, I've added a VoiceRSS API key to the settings.json folder and I'm trying to get the SAY command working. Instead, I'm getting the missing_api_key.mp3 each time.

Any help would be appreciated.

chrisns commented 2 years ago

hard to guess at what the synology config is, could you try providing some screenshots maybe?

DeltaNu1142 commented 2 years ago

Yes, definitely... here you go:

Docker: Docker1

Folders: Synology

Log (screen shot seems about as useful as a CSV): Log

I have the bare settings.json file in the settings folder:

{ "voicerss": "myapikeyxxxxxxx" }

Thanks for having a look.

mhoogenbosch commented 2 years ago

You made the same mistake as I did. You mounted /settings as a complete folder, you need to mount the settings.json file.

DeltaNu1142 commented 2 years ago

You made the same mistake as I did. You mounted /settings as a complete folder, you need to mount the settings.json file.

I see, thanks! I did mount those folders, as folders, individually... so what is the mount path for the settings.json file, and does it matter where the file resides?

EDIT: as I recall, I attempted to mount the file... but during startup, the log still shows, Error: Cannot find module './settings.json'.

I've just tried it again with this mounting scheme and encountered the same error: Error

mhoogenbosch commented 2 years ago

You made the same mistake as I did. You mounted /settings as a complete folder, you need to mount the settings.json file.

I see, thanks! I did mount those folders, as folders, individually... so what is the mount path for the settings.json file, and does it matter where the file resides?

EDIT: as I recall, I attempted to mount the file... but during startup, the log still shows, Error: Cannot find module './settings.json'.

I've just tried it again with this mounting scheme and encountered the same error: Error

honestly i don't know how synology works. I always created my dockers when running on syno trough cli. Nowdays i'm using docker-compose on a pi4? Within the container it is /app/settings.json , so not /app/settings/settings.json.. so maybe you just need to get rit of the additional settings folder.

DeltaNu1142 commented 2 years ago

I believe I tried that when setting up, but just for kicks I just moved the settings file to my "root" (sonos) folder and mounted it as app/settings.json. No dice, unfortunately.

On Wed, Nov 17, 2021 at 10:17 AM Martijn Hoogenbosch < @.***> wrote:

You made the same mistake as I did. You mounted /settings as a complete folder, you need to mount the settings.json file.

I see, thanks! I did mount those folders, as folders, individually... so what is the mount path for the settings.json file, and does it matter where the file resides?

EDIT: as I recall, I attempted to mount the file... but during startup, the log still shows, Error: Cannot find module './settings.json'.

I've just tried it again with this mounting scheme and encountered the same error: [image: Error] https://user-images.githubusercontent.com/77296070/142222295-0b7d5dfb-b0d8-4b93-b476-63517a598a55.png

honestly i don't know how synology works. I always created my dockers when running on syno trough cli. Nowdays i'm using docker-compose on a pi4? Within the container it is /app/settings.json , so not /app/settings/settings.json.. so maybe you just need to get rit of the additional settings folder.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/chrisns/docker-node-sonos-http-api/issues/109#issuecomment-971680639, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASNXDRUDTYXEHKDX4FIA6WLUMPBSHANCNFSM5H3AQBQA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

mhoogenbosch commented 2 years ago

Can you post another screenshot?

DeltaNu1142 commented 2 years ago

Can you post another screenshot?

Certainly! Thanks for having a look: Settings

mhoogenbosch commented 2 years ago

Seems right but where did the probeert folders go?

DeltaNu1142 commented 2 years ago

Seems right but where did the probeert folders go?

Oh, I deleted them because I thought they might be redundant. I've just added them back and... same result. Can't find settings.json module.

Screen shot: Settings

mhoogenbosch commented 2 years ago

It is /app/settings.json on the right part

DeltaNu1142 commented 2 years ago

It is /app/settings.json on the right part

Ah, thanks. Still not finding it during startup, though: Settings

mhoogenbosch commented 2 years ago

Mmmm only thing different is the settings folder, you don’t need that. But can’t imagine that’s responsible for this. But you could try that

DeltaNu1142 commented 2 years ago

Done... with the same bad result, unfortunately. I think I've tried every permutation at this point...!

chrisns commented 2 years ago

can you try ssh'ing in and start with the commandline? i'm wondering how the synology gui is mapping volumes with its normal annotation of /volumeN/share

DeltaNu1142 commented 2 years ago

I'm pretty terrible at Linux, but this is what I'm seeing: SSH

chrisns commented 2 years ago
docker pull chrisns/docker-node-sonos-http-api
docker run \
  --net=host \
  --name sonos \
  --restart=always \
  -d \
  -v /volume1/docker/sonos/settings.json:/app/settings.json \
  -v /volume1/docker/sonos/clips:/app/static/clips \
  -v /volume1/docker/sonos/cache:/app/cache \
  -v /volume1/docker/sonos/presets:/app/presets \
  chrisns/docker-node-sonos-http-api
DeltaNu1142 commented 2 years ago

On the very first command, I got: Using default tag: latest Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/create?fromImage=chrisns%2Fdocker-node-sonos-http-api&tag=latest": dial unix /var/run/docker.sock: connect: permission denied

chrisns commented 2 years ago

prefix the docker commands with sudo so

sudo docker pull chrisns/docker-node-sonos-http-api
sudo docker run \
  --net=host \
  --name sonos \
  --restart=always \
  -d \
  -v /volume1/docker/sonos/settings.json:/app/settings.json \
  -v /volume1/docker/sonos/clips:/app/static/clips \
  -v /volume1/docker/sonos/cache:/app/cache \
  -v /volume1/docker/sonos/presets:/app/presets \
  chrisns/docker-node-sonos-http-api
DeltaNu1142 commented 2 years ago

Thanks! That worked. I was concerned because the network tab doesn't have IP addresses discretely defined as before, but I've done a SAY test, and it's working well. Looks like the UI does something wonky with mapping... I appreciate your help with this.