Docker Image for Roon Server

I’m actively maintaining an unofficial Roon Server docker image for Ubuntu. Supports local libraries and cache persists across restarts. Directly connected USB DACs are discoverable and streamable, and native sound output is supported. The container can run unprivileged and without host networking. Healthcheck verifies availability of Roon Display.

The build as of the time of this posting is Roon Server 1.8 build 846 on Ubuntu 20.04.

I also published an Ansible playbook to deploy the image to an Ubuntu server.

The Dockerfile is published to github and open-sourced… so Roon Labs if y’all want to create an official docker image, it’s free for the taking…

https://hub.docker.com/repository/docker/elgeeko/roon-server

10 Likes

Nice setup, especially the networking and user setup.

Do know however the license terms of Roon.

https://roonlabs.com/termsandconditions

There were others before you having a similar setup leading to this comment from Roon official

I made an image too a couple of years ago avoiding this problem.

Happy listening!

Thanks Steef. If Roon Labs asks, I will remove the image from dockerhub.

One way to distribute a docker image without violating the license agreement is to move the curl request to a startup script inside of the docker image. The script will download and extract Roon if it is not present in /opt/RoonServer. /opt/RoonServer could persist across container restarts, and if the end user so chose, any upgrades prompted from within RoonServer would persist. Since this script runs on container creation, RoonServer is never distributed and is not baked into the image.

Alternately, but still similar to above, /opt/RoonServer can simply be mapped into the docker container as a volume, leaving it up to the end user to download and extract RoonServer. This would give all of the benefits of docker while following the exact steps any end user would use to install locally.

Again, happy to discuss with any staff from Roon Labs.

And of course if the image does come off of dockerhub, it should be easy enough for anyone familiar with docker to simply build the dockerfile locally.

Exactly what my image does :slight_smile:

Combining our stuff into an official image would be nice

5 Likes

Hello,
Thks for your work. It’s perfect…
I used a nuc with roon rock, but leaving a machine running just for that was a shame.
I just deployed your docker and it’s perfect for my use!

Thanks again for sharing this !

1 Like

Yay! Thanks for letting me know!

Hey there,

I am currently running roonserver on a windows machine, but plan to build a unraid server soon.
I guess I will be able to use your docker container on unraid OS, right ?

Also, how fast are you updating Roon once a new update comes out ? This is quite important as I am loosing the connection to the metadata identifier each time they decide to update Roon, which currently happens every few days.

Thanks !!!

I haven’t tried this with unraid (nor am I familiar with unraid), but at first glance it appears to support Linux so there’s a good chance it will work.

On first instantiation, the Docker container will download the latest Roon if it has not already been installed in the container. This was to comply with the Roon software license agreement, which does not allow for binary distribution. Upgrading the Roon version is up to the user via the Roon interface.

1 Like

There is already a great docker image on unraid.

steefdebruijn/docker-roonserver

1 Like

I also build an image using PhotonOS instead of Debian, for a lighter and less vulnerable app.

https://hub.docker.com/r/davindisko/roon-photon

I’m running without any problem.

3 Likes

Hi David – I tried your container and it seems to work as well as Steef’s, with a bit less RAM utilisation (1.7-1.8GB vs. 2.3GB at steady-state for my library). Thank you to you both! I hope Roon will release a supported container.

1 Like

Don’t think that will happen. Running RoonServer in a VM is an unsupported environment. So, if you do so, the Tinkering section is where you should post your questions.

Hi, @David_Ferreira.

Do you happen to have a github project for this container? I build my own container based on debian-slim based on the work @Steef_de_Bruijn did but I’d like to see what you’re doing with Photon. Thanks!

Hi, the link I posted is the Github project, where you can find the Dockerfile.

1 Like

That was silly of me. Thanks. I saw the docker hub link and thought the second link was an expansion of the first.

Looking at it, it’s a drop-in replacement for the debian-slim based approach I’ve been using. I’ll give it a shot. Thanks!

1 Like

Thanks again, @David_Ferreira for sharing your Photon-based project and image.

Photon does appear to run a bit leaner than debian slim. Here’s a graph of what I see with debian slim and photon. These are using the same /app, /data, /music directories. What you see is a start of the debian slim followed by a start of photon:

image

The filled portion is memory, the yellowish line is CPU. Photon is using about 300mb less than debian slim. As is typical with Roon, it’s safe to assume that both will grow over time :slight_smile:

This is a view of a grafana dashboard I use created using a combination of grafana, influxdb2, and glances.

I don’t see any obvious downsides to using Photon versus debian slim or alternatives now that you’ve solved the challenge of getting ffmpeg installed given that there is no tdnf package.

Thanks very much for this contribution. It’s good work!