Walkthrough : Roon in a Docker container on Synology DSM 7

Hi, all.

This walkthrough relies on a Docker image produced by @Steef_de_Bruijn. Steef is aware of the Roon change coming on Nov. 3 that introduces a requirement for a specific library. He’s investigating whether or not an updated Docker image will be required. If an update is required, I’ll likely share notes on how to go about updating the underlying image.

No ETA yet on this.

1 Like

Hey, I have the same question.

I tried to access my synology with ssh then

sudo docker ps
sudo docker exec -it NAME_OF_MY_ROONCORE_IMAGE /bin/bash
cat /etc/os-release
apt update
apt search 

But I got only libicu version 63 labeled as oldstable version. then i got stuck : libicu version 63 instead of libicu66 is enough ? if not how to install version 66?

You’re not going to want to do this manually in your current Docker image. You’re going to want to wait until an updated image - which adds the dependencies if necessary - is available.

The best thing we can do at this point is to allow for time to investigate. Thanks.

2 Likes

Investigation done.

4 Likes

Thanks, @Steef_de_Bruijn!

I have followed this guide to migrate my existing roon server from a Synology package to running under docker and I after restoring the backup there is no music in my library.

Further investigation enunciates that the roon docker container does not have permission to my media folders that I have setup.

I am not sure what user the docker container runs under or whether you can configure the container to run as a particular user. So I don’t know what user to grant permissions to.

Given no one else has mentioned this issue i am wondering if I missed a step.

Thanks to Greg and Steef for the docker image and guide.

Hoping somebody might be able to help me out with the permission issue.

Thank you, @Steef_de_Bruijn! That’s great news!

Did you remember to add your media folder to the Docker image? Suspect that’s the key.

The alternative may be to enable Guest login, no password, on the folder from Synology. Haven’t tried this though, as the above worked perfectly for me.

Hi, @Greg_Perrott.

Your issue will end up being something like what @Roger_Lonsberry suggests.

These are the key steps:

  1. Map your music folder(s) into the container. This is explained in setup where I show how I map NAS folder at Music/HiRes into a folder in the container at /music. This causes a logical /music folder to appear within the sandboxed container’s file system which the services in the container have access to. In other words, it makes content outside the sandbox visible inside the sandbox while eliminating the need to permission the content explicitly.

  2. Once Roon is up and running, you need to tell Roon about the folder(s) you mapped into your container. In Roon > Settings > Storage, select “Add Folder” and find the mapped in folder at the path you mapped into. You may have to click the “/” icon to get up to the root of your container’s file system in order to find them.

If you think you need to revisit #1, you’ll need to stop the container before you adjust your mapped paths.

Hope this helps!

I had done both steps as documented.

And at the end I restored by last backup. But of course the Storage folder then reverted to he old paths when the backup was restored.

So all I needed to do was to edit the storage path and change them to the appropriate paths mapped via the volume in the container.

Everything appears to be working as expected now. I am able to stream music as before.

Would be nice to able to run the container as a particular user that has access to the music folders. I assume that the container is currently running as root.

Thanks for the responses @gTunes and @Roger_Lonsberry. Thank you @Steef_de_Bruijn for providing the container image.

Glad you got it working!

Docker does support rootless mode, though I’ve not seen mention of it being supported on Synology with the packaged integration. Running in rootless mode wouldn’t eliminate the need to map external folders into the docker container’s sandbox, though.

If you are motivated to figure out if rootless mode is possible for this use case, please do and let us know what you learn!

Hi, all.

For those following this thread - @Steef_de_Bruijn has now confirmed that the required dependencies are present in the current image and has further confirmed that the Roon beta release, which exercises these dependencies, works fine.

This means that Roon will update itself in place and will continue to operate with the image we’re all using.

Thanks @Steef_de_Bruijn!

2 Likes

Just have to say that I devoted many hours to getting Roon set up in a docker container on DSM6, and was very annoyed to have to get this working again via migration. This walkthrough was magic. Started again from scratch, and it’s like clockwork. Mere minutes. Muchas gracias.

2 Likes

Thank you for this wonderful contributions, I have installed following your guide on a synology ds1019+ (with nvme cache) and everything works perfectly enough to have convinced me to remove my dedicated NUC.

1 Like

Thanks to you both, Greg and Steef, marvellous!
I have one question though… I just ordered an external SSD for my Synology NAS to migrate the Roon Core/Database on, do you have any idea how I should do this within this Debian/Docker construction?

Bas

Hi, Bas.

I don’t have experience using Synology with external drives, but I assume that once you set up an external drive, you can simply place whatever files and folders you want on it, and then select from the external volume when doing the mapping of folders I describe in the walkthrough. In other words, just put your “docker” folder that contains your data, backup, and app folder on your external drive and map into the mount paths from there. Or just put some of those folders on the external drive (for example, just the data folder) and leave the rest on an internal drive.

I suspect this will be very straightforward once you have the external volume set up.

Hope that helps!

Hi Greg, thank you for your prompt reply.

I will try & error (hopefully not too much of the latter) and will report back to share my findings, once the setup is complete. My database is new, so no harm done if I had to start over again.

All the best,

Bas

1 Like

Brilliant, just finished- took all of 10 minutes.

  • Made a backup of existing data via roon app
  • Set up same folder structure on NAS as before but now on USB SSD
  • Moved backup from ‘backup’ folder on HDD to ‘backup’ folder on SSD
  • Deleted old ‘roon’ folder with ‘app’, ‘backup’ and ‘data’ folder
  • Ran the docker config fields as described by you
  • Started roon and directed to new core, installed backup via roon app
  • Presto!

This thread has been very useful, many thanks!

Bas

1 Like

I guess this tutorial should be on the RoonOnNAS /Synology homepage … I believe that suffering ended for many people like me who were disappointed with the roon …synology …mac mini M1 … and also with the app for PS audio (none anymore) - DirectStream is complete thanks the Roon only :ok_hand:

I followed these instructions quite carefully and setup this ‘docker’ solution succesfully on about 20 October. Well about two week ago it just died - my roon core was no more :frowning:

I’m by no means an expert on all this NAS wizardry; what do I need to check to work outr what has gone wrong.

As a stop gap, I’ve installed another core on my PC.
Cheers
blairy