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…
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.
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.
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.