Docker Image for Roon Server

hi, i’ve been trying for a while to get roon server working on my docker that runs on mac silicon, i’ve tried various containers (many are not compatible with my cpu). i can start it but it is not seen on the network, i created an opposite subnet that gives it an ip that i can’t reach even with ping… can you tell me where i’m going wrong?
Screenshot 2025-05-19 alle 21.36.14

i’m attaching my current compose.

version: “3.7”
services:
docker-roonserver:
image: steefdebruijn/docker-roonserver:latest
container_name: docker-roonserver
hostname: docker-roonserver
network_mode: roon-lan
privileged: true
cap_add:
- SYS_ADMIN
- DAC_READ_SEARCH
security_opt:
- apparmor:unconfined

environment:
  TZ: "Europe/Amsterdam"
volumes:
  - /Volumes/NVME-2TB/Docker/roon/app:/app
  - /Volumes/NVME-2TB/Docker/roon/data:/data
  - /Volumes/NVME-2TB/Docker/roon/music:/music
  - /Volumes/NVME-2TB/Docker/roon/backups:/backup
restart: always

volumes:
roon-app:
roon-data:
roon-music:
roon-backups:

the docker inspect command gives me:
“NetworkSettings”: {
“Bridge”: “”,
“SandboxID”: “269777214f61c927acf89ec4c899af0b64b82342b8a481e47e2d131156d59931”,
“SandboxKey”: “/var/run/docker/netns/269777214f61”,
“Ports”: {},
“HairpinMode”: false,
“LinkLocalIPv6Address”: “”,
“LinkLocalIPv6PrefixLen”: 0,
“SecondaryIPAddresses”: null,
“SecondaryIPv6Addresses”: null,
“EndpointID”: “”,
“Gateway”: “”,
“GlobalIPv6Address”: “”,
“GlobalIPv6PrefixLen”: 0,
“IPAddress”: “”,
“IPPrefixLen”: 0,
“IPv6Gateway”: “”,
“MacAddress”: “”,
“Networks”: {
“roon-lan”: {
“IPAMConfig”: null,
“Links”: null,
“Aliases”: null,
“MacAddress”: “e2:58:05:75:21:04”,
“DriverOpts”: null,
“GwPriority”: 0,
“NetworkID”: “59d7c5b6cc3f0e9b1fbb710a64fdffcd6d4e4711966a64bad19970351c78681e”,
“EndpointID”: “4a5140da64129701f34bb5ca5dbc48ac80d5715fcda842c3943095a1dadc9571”,
“Gateway”: “192.168.2.1”,
“IPAddress”: “192.168.2.240”,
“IPPrefixLen”: 24,
“IPv6Gateway”: “”,
“GlobalIPv6Address”: “”,
“GlobalIPv6PrefixLen”: 0,
“DNSNames”: [
“docker-roonserver”,
“131bff26f92f”

Why are you running in Docker on a Mac? You’ll get much better performance running RoonServer native which is already compiled for Apple Silicon.

I don’t run it in docker, I try… :joy:
Pure spirit of experimentation.

Best to use a Linux host.

The problem is that I use a mac? I use other containers without problems…

Is it running in host mode?

I tried all the configurations even host

“Networks”: {
“host”: {
“IPAMConfig”: null,
“Links”: null,
“Aliases”: null,
“MacAddress”: “”,
“DriverOpts”: null,
“GwPriority”: 0,
“NetworkID”: “b8f14a473e07cf657ea6fad2f2dcc2cbb06a224ed2782bb94636b105a81e6201”,
“EndpointID”: “6c6dcc7c198e5a3d6c1349c6931a63d9f34bb587dedcb7a21013b3129acf4c86”,
“Gateway”: “”,
“IPAddress”: “”,
“IPPrefixLen”: 0,
“IPv6Gateway”: “”,
“GlobalIPv6Address”: “”,
“GlobalIPv6PrefixLen”: 0,
“DNSNames”: null
}
}

I’m a little confused here… my understanding is that Roon Server only runs on Linux x86. Source: Installing Roon on Linux

Roon Desktop will run natively on Mac with Apple Silicon, and that will also act as a server. That package is not likely to run in Docker.

So I’m not sure how you’re even getting these images to run unless you’re running them with emulation? I’m not sure how that will work with the networking stack, or if Docker on OSX will support mutlicast which is required for RAAT discovery.

Roon includes both client and server installs for Windows and MacOS. Previously you could just download server only for those OSs.

Do you mind pointing me to the installers for these? I’m looking and don’t see the installs you’re mentioning.

From https://roon.app/en/downloads:

  • Roon which is a graphical application that can act as both a client and a server on OSX (x86 and arm64) and Windows, and a client on Linux / NAS.
  • Roon Bridge a headless service that connects a node to Roon via RAAT and runs on OSX, Windows, and Linux

Confirming that the Roon app works as both a client and a server:

Installing the Roon app on your Mac is the easiest way to run Roon Server on your computer. Roon for Mac bundles everything you need in a single install package.

From https://roon.app/en/core:

  • Windows and OSX link back to the Roon app
  • The Linux pane refers to a “headless Server” which supports x86 only

Unless I’m missing something else, this covers anything that would act as a Roon Server. My understanding is that the only headless way to run a Roon server is the standalone headless server package for Linux x86.

The point is dockerizing Roon on macOS makes ZERO sense and even if it doesn’t work through emulation it’s going to run like garbage. Docker is really best on Linux hosts (it’s even terrible on Windows). Just use the native package compiled for the architecture OR run RoonServer in Docker on a Linux based server.

I have used a dedicated intel nuc for years, then on qnap nas, a distro dedicated to audio and now simply with its app for mac the same one where docker runs with other containers. I want to try how it would run on containers… so instead of saying in advance that it will work badly I would like to understand why it simply does not work! thanks…

I don’t know, I’ve never ran docker desktop on a Mac. I would assume most people run Docker on x86 Linux.

At least one of your issues is the fact that you are trying run an amd64 container on an Apple M series machine, which is ARM based. Docker supports running containers across architectures using QEMU for emulation. So what you are trying to do is to get Docker to emulate an amd64 architecture.

At a minimum, you’ll probably have to tell Docker you want to emulate a different platform with a “platform:” directive in your yaml. That may get you to the next functional or performance problem that you’ll have to debug. This may help:

I suspect you aren’t going to get this working but I don’t want to discourage you from trying because, if you do get it working, it might be interesting to someone.

I’ll start by saying that I’m not very familiar with Docker but other containers like immich are also made for Linux and work perfectly for me

I don’t know immich but I just looked at their docker-immich project on github (GitHub - imagegenius/docker-immich: Monolithic (Single) Docker Container for Immich) and it has this table:

image

It’s the “arm64” row that matters. As far as I’m aware, that immich arm64 container should run without emulation on a Mac with an M-series processor.

The Roon container you’re trying to use is an amd64 container. It’s not possible to build an arm64 container because Roon doesn’t make arm64 server bits available in an way that would work for your use case. Even if they did, someone would have to explicitly make an arm64 linux container with those bits.

If you want to get Roon to run in Docker on a Mac, you’re going to have to figure out how to run it in emulation. If you don’t want to do that, then now would be a good time to stop trying to make it work :slight_smile:

even joplin which i use regularly is made for amd

Screenshot 2025-05-23 alle 20.48.25

Awesome! If you’re already convinced that emulation has nothing to do with your issues, then I won’t bother you any more.

Just a tip for the future - when people take the time to try to help point you in the right direction, whether you think they’re right or wrong, it’s often a nice gesture to say, “Thank you.”

1 Like

Hence why I stopped trying to help. It’s also a pointless idea when a native, Roon Labs supported alternative exists. I run Docker because it’s the best option for my environment. If your environment consists of an ARM Mac trying to run an AMD64 container in Docker is senseless. If you want to do it for giggles that’s one thing, but then you need to do some research to debug it.

1 Like

I’m sorry if I offended you, I wanted to point out that other containers for amd work, it might not work at its best but if the operating system starts as I showed in the screenshot the problem will be somewhere else… thanks anyway for your suggestion