Walkthrough : Roon in a Docker container on Synology DSM 7

Hi, folks.

Synology recently released a DSM upgrade which introduced compatibility problems with the Roon package a number of community members, including me, run. I’m using this opportunity to switch to running Roon in a Docker container. I put together this walkthrough to hopefully help anyone else considering going down the same path.

This walkthrough utilizes the container image produced by @Steef_de_Bruijn, who I want to thank for his work. That work made this possible, and it’s sincerely appreciated.

My setup is quite simple - no plugins, no complex network shares, one music folder. That’s what I cover here.

Let’s get started.

If you are already running Roon on your Synology NAS, and you would like to maintain your settings and usage history, start by making a current backup at Roon > Settings > Backups > Backup now. Make a note of where your backups are stored.

If you are currently running Roon as a Synology package, go to Package Center and uninstall the Roon Server package.

While you’re in Package Center, install the Docker package if you don’t already have it installed.

In File Station, decide where you want to store the folders that your Roon docker image will interact with. These are “app”, “data”, and “backup” folders which are specific to Roon. Don’t worry about your music folder(s) at this point.

I created a top-level folder called “docker” and a subfolder called “roon” which contains the app, backup, data folders. When you’re done, it should look something like this:

Screen Shot 2021-07-07 at 12.07.23 PM

If you have previous Roon backups, now is a good time to move them over into the new “backup” folder you created. Locate the old backups and either move or copy them into the new backup folder. There should be a folder with a unique identifier for its name and a file called “roon_backup_root”. Both of those just go into the new backup folder.

Next, run Docker from the app launcher. Select “Image” in the left navigation bar, and the click Add > Add from URL

Enter “steefdebruijn/docker-roonserver” in the Hub Page box, and click “Add”. Should look like this:

Screen Shot 2021-07-07 at 12.09.56 PM

You’ll be asked to choose a release tag. Choose “latest” and click “Select”:

Screen Shot 2021-07-07 at 12.10.26 PM

You should now have steefdebruijn’s docker image in your Image list. Select that image and click “Launch”. This will launch the container creation wizard.

In the first screen, give your container whatever name you like.

In the first screen, give the container whatever name you like. I called mine “roon”. Then click “Advanced Settings”. We’ll go through Advanced Settings tab by tab. Don’t click “Apply” until you’ve applied the correct settings in each tab.

Advanced Settings - I didn’t change either of the settings here.
Volume - Here’s where we’re going to map the folders you made earlier. You can also map your personal music folders at this time.

For each of the folders you created, click “Add Folder” then choose the folder on your NAS and set the mount path to be either /app, /backup, or /data as appropriate. Do not make them read only.

Depending on where you placed the folders on your NAS, your “File/Folder” paths may not look the same as mine, but your Mount paths should always look the same as mine for these three folders.

If you want Roon to scan music on your NAS, then you need to map your music folders in as well. You can use whatever mount paths you like for your music - you’re going to select these manually from within Roon later. I have one music folder and I just map it into “/music”.

Here’s what that tab looks like for me:

Now switch to the “Network” tab. Check the checkbox called “Use the same network as Docker Host”.

Ignore the Port Settings and Links tabs. Switch to Environment. Click the + sign and add a new row where the “variable” is “TZ” and the value is the the standard TZ name of your timezone. A list can be found in the TZ database name column of the table here: List of tz database time zones - Wikipedia

I’m on the west coast of the United States, so I enter “America/Los_Angeles” as:

You’re now done with Advanced Settings, so click “Apply”. You’ll be returned to the Create Container wizard, where you can now click “Next”.

Review your settings. “Run this container after the wizard is finished” will be checked by default. Leave it checked and click “Apply”

Your container is now running. In Docker, you can switch to the Container section and confirm that it’s up.

On the Mac, PC, or whatever of your choice, run Roon. You may need to tell it to pick a new Core. You should see your Docker container running as “roon”.

Connect to your new Core and login. If you were previously running Roon, and uninstalled to go through his walkthrough, you’ll need to Unauthorize your previous core. Just click “Unauthorize”.

You’ll be asked to Add your music. If you mapped one or more music folders into the container earlier, you can now click “Add Folder” and navigate to them. You’ll probably have to click the up arrow next to the words “Folder listing” to be able to find them. Because I mapped my music folder into “/music”, I just picked that.

Set up Audio devices (or postpone that until later).

Once you’re done with the preceding steps, you can now restore a backup if you made one. You should be able to figure that part out on your own :).

I hope you found this useful. I’m sure I omitted something and made mistakes - please feel free to supplement and correct in comments.

Thanks again to the community for such fantastic support!

7 Likes

Dear Greg,

Thank you for your great explanation. This could be the solution for me going to dsm 7.
One question left: how is updating going to work in docker? Just like I have now with Roon updating itself from the app / synology, or do you have to make a new docker with “latest” after each Roon update?

Hi, @Ramon_Laponder.

The brief answer is that you will not have to download a new container to get Roon updates.

The longer answer is that the docker image I’m using, which I referenced in my walkthrough, was created by @Steef_de_Bruijn and is discussed in depth in other threads on the forum. On first run, the container will download the latest Roon version. Subsequent Roon updates will happen within the container and will respect the Roon’s update settings which you can adjust in the Roon app under Settings > About.

@Steef_de_Bruijn’s image runs Debian and if/when he updates the image to, for example, pick up a new Debian version, you will have to update the container image. When you do that, Roon and all of its settings, backups, databases, etc. will carry over to the new image.

Realistically, you probably won’t have a pressing need to ever update the image itself.

Hope that helps.

[Edit : changed mentions of “Ubuntu” to “Debian” - thanks @Steef_de_Bruijn for the correction]

1 Like

Hi @Greg_Friedman thank you for your fast reply and further explanation. Totally make sense.
Great to know that the updating of Roon is the same as I have now.
And it sounds very logic that when @Steef_de_Bruijn updates the image we have to update the container.

Sounds even more solid than the current https://roononnas.org/en/roon-on-nas/
I am using.

Maybe it is an idea for admin/roon to add this docker solution to their page https://help.roonlabs.com/portal/en/kb/articles/roon-server-on-nas

I will test it this weekend, and when up and running, go for dim 7 :slight_smile: :smiley:

Thank you for bringing this docker option here!

1 Like

Hi Greg,

The image is based on Debian but otherwise well explained.

You have created a nice and understandable guide.

Steef

3 Likes

Thanks for your comments, correction, and for producing the image in the first place. You made this easy!

Hi, I just found out about watchtower:

sudo docker run --name=“watchtower” -d --restart=always -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower

With the above from terminal on Synology NAS, you have installed watchtower in the background running and updating your dockers automatically :slight_smile:

found this (with the option of adding Portainer) here:
https://mariushosting.com/how-to-install-watchtower-on-your-synology-nas/

I found it awesome being able to keep the Roon docker image being updated automatically also

Just little update to say thank you, I migrated to DSM7 and running Roon flawlessly!!

Question @Steef_de_Bruijn : how secure is Debian in this docker?
I found this on google with some vulnerabilities. Maybe not a big issue, but I do not know:
https://snyk.io/test/docker/debian%3A10.9-slim

thanks for your help and answer in advance

Hi I use plain Debian slim image. I did not harden it in any way.

I suppose no services are running by default so only Roon server should be reachable.

But again I did not check this…

Steef

1 Like

@Steef_de_Bruijn thanks for your fast reply and sounds logic.
Maybe some other forum member has knowledge and time to test it.
I am glad I have a working Roon on DSM 7

Hi, many thanks for this tutorial, which is also usable for me as a newbie. However, I do not have a backup file available (dropbox screwed up)… I have only the original server data which Roon left after me installing DSM7. That means I do not have the app, backup and database folders as outlined here, but the RAATServer, RoonGoer and RoonServer folders. Can I use these as well, and how?

Those folders belong in the roon/data folder. Mine is pictured below. I also see a file called “.rmembid” there which you might also have, though it might be invisible in MacOS Finder or Windows Explorer. If you don’t see it, you might need to use either a command shell or enable hidden files in Mac/Windows to see it (Google can help with that :slight_smile:)

Hopefully you can just copy those folders and that file into your data folder and things will work. No promises, though.

image

Thank you very much for your reply. Unfortunately, I do not have a .rmembid file (I do not think the IE will hide any file extension of my NAS) so let’s see how this goes. I’ll report.

can’t seem to download image file. Is there an issue? it appears, and disappears immediately.

1 Like

I’ve tried Edge, Brave, Safari on MacOS and all images load fine in each browser. Perhaps try a different browser than what you’re using?

Thank you. I found some others with a similar problem related to dns setting. I’ll keep working the problem. ( a bid over my head though).
Regards.
Ron

1 Like

I assumed you meant images on this forum aren’t loading. Is that correct or are you having issues with getting the docker image to load on the NAS?

I am unable to download images to docker
The image appears momentarily and then I receive a notice that the download failed on my Synology NAS.

have you tried rebooting the NAS and try again?

gave it a try. No luck. After putting in image file name, and hitting latest, I get the dialog box " no image downloaded.Go to the registry tab to download.