Macbook loses Roon Server connection after Docker restart (ref#R45AB7)

Hi! What’s not quite right with Roon?

· None of the above quite fits

None of the above quite fits

· None of these quite match

Tell us what's going on

· Hi, I have Roon on Docker with the following setup:

Minipc (Nukbox) with Linux Mint - Docker version of Roon

Synology Ds425+ with my local files

and a Macbook where I use Roon (remote?)

Everything works perfectly until I shut Roon down on the Docker-mini pc. When I restart it (docker compose up) my Mac can't find the server - so I have to connect to a new one (on the Mac) and restore from a backup. That works (thankfully) but why would my Mac lose track of the server every time I restart the docker?

I'm quite new to both docker and Roon so maybe I'm missing something.

Thanks
Martin

Tell us about your home network

· I have this router: Asus ZenWIFI AX
and I use Tailscale on my minipc and MacBook, also there is a gluten vpn on the minipc (docker) but it shouldn't be affecting Roon (the VPN is just activated on certain docker applications).

Hey @Martin_Nilsson,

Thanks for writing in and for sharing your report! Good news first: your server and library are completely fine. The logs show your Server keeps the same identity across restarts, so nothing is actually being lost, and you don’t need to restore from a backup each time. What’s happening is that your Mac is losing the path to the server after a restart, not the server itself.

Here’s the cause. Your NucBox has several network interfaces active at once, your LAN (192.168.50.y), Tailscale (100.x), and a couple of Docker bridge networks created by your other containers (the 172.18.x / 172.19.x ranges, including the gluetun stack). Roon announces the server on all of them, and in the logs your remotes are connecting two different ways: sometimes over the LAN, and sometimes over Tailscale. When you bring the container back up with docker compose up, Tailscale and those Docker networks re-initialize in a different state, so if your Mac had been talking to the server over its Tailscale address, that path is no longer valid and the app can’t re-find it.

A few things to try:

  1. When the Mac can't find the server, don't set up a new one and restore. Instead, on the "choose a server" screen, use the option to connect by IP address and enter 192.168.50.2. Your existing server and library will come right back.
  2. Reserve a fixed IP for the NucBox in your Asus ZenWiFi router settings so its LAN address never changes.
  3. Test with Tailscale turned off on the Mac. Since both the Mac and the server run Tailscale, the app may be pairing over the Tailscale address, which is the part that breaks on restart. For use at home on the same network, the LAN connection is what you want. If you need Roon while away from home, use Tailscale deliberately and consistently rather than mixing it with local use.
  4. Use docker compose restart (or stop/start) instead of down then up when you just want to bounce Roon. down tears down the Docker networks and recreates them in a different state; restart reuses the existing container and keeps things stable.
Give those a go and let us know how the Mac behaves after your next restart, in particular whether connecting by IP (step 1) brings your server straight back without a restore. That'll confirm we're on the right track. 👍

Hi, thanks for your reply!

I already had a reserved fixed IP for the NucBox. Didn’t change anything else so far but
I tested the docker compose restart and it worked perfectly. That is great! But I guess

Will test without Tailscale when it is time to update the next time.

Hi @Martin_Nilsson,

That is great news! I am glad to hear that using the restart command did the trick and kept your server connection intact.

Just a quick tip for the future, especially when it comes time to update or if you ever just need to bounce Roon again: instead of restarting your entire Docker stack, you might want to try restarting only the Roon container.

When you run a blanket docker compose restart, it bounces everything in your compose file. If you only want to affect Roon (and leave your VPN and other containers running completely uninterrupted), you can specify the service name at the end of the command.

Assuming your service is named roon in your configuration file, you would just use: docker compose restart roon

Alternatively, you can target the specific container directly: docker restart <container_name>

This is a great habit to get into, as it isolates the restart to just Roon and prevents your other containers from unnecessarily resetting their network bridges.

Let us know how it goes the next time you update!