Home Server Cluster: How best to run roon server?

First, these forums are great. I have learned a lot reading various threads.

I am setting up my home infrastructure using VMWare ESXi personal edition on an i7 NUC (in a passively cooled case).

This way I can set up a rasberian instance (for pi hole), and a nas (running freenas)… and an instance for roon

The question is: What OS should I run roon on?

  • A full Windows VM?
  • A ubuntu VM?
  • A minimal image (ROCK)
  • or ?

I am super comfortable with Windows, and can get around fine on nix.

Thanks for input!

A couple things I’ve run across, but have not yet tried -


Audiolinux + Roon core, or Roon ROCK.

AFAIK, Running ROCK (or Roon) in a VM is not a supported or tested environment. But, if you really want to VM, I’d go with a Windows or Linux VM.

3 Likes

I’d go with a headless Linux VM, I suspect it’ll be a little leaner than the other options. Something ROCK based might be leaner, though I’m not convinced it’s that much slimmer than a tuned Debian instance. On top of that it’d be a bit trial and error on a hypervisor. A Linux VM will leave you with more in the way of free host resources IMHO. I’d also back it to be the most stable option.

2 Likes

While people have gotten ROCK to work in a VM, it is not optimized for it, does not include things like the virtio drivers, etc. Don’t do it.

Install your choice of Linux Server OS in a VM, with virtio for disk and network drivers. Then download and install the Roon Server (==Core) package from Roon and install it in the VM. It will work fine. But you have to manage the OS; it will not be the “appliance” that ROCK is.

2 Likes

ROCK, while not supported, if you can make it work is my recommendation. It’s super-clean and works very well. ROCK is Linux based. I ran it on ESXi without issue for over a year. Recently retired ESXi and moved it to another hypervisor.

1 Like

Docker is the only way to go. I have no idea why you’d use anything else for this purpose here. You do not need to host a full VM for that. Dockerize it and save yourself the headache. You’ll pick an OS to run (I’d go with Debian since its easy and getting support is pretty much just knowing how to google) and can put pihole, roon and any other services you want in dockers.

docker run -d \
  --net=host \
  -e TZ="Europe/Amsterdam" \
  -v roon-app:/app \
  -v roon-data:/data \
  -v roon-music:/music \
  -v roon-backups:/backup \
  steefdebruijn/docker-roonserver:latest

Should take you minutes to get up and running.

2 Likes

You make an excellent point.

The reason is that I have used vmware in production, and have a lot of experience with it. While I have tinkered with docker, I have not used it for production use (though I certainly know it can).

Your post is making me reconsider my approach to this infrastructure, and I really appreciate it. I agree that docker is a superior way to approach this. (I just need to manage the number of hours I spend tinkering with it all!)

Thank you!

Having used both, for something like roon, I think docker is the way to go. I run a large number of them to handle my media acquisition, organization and serving. The headaches it’s saved me over the years is totally worth the tiny learning curve / paradigm shift. Docker has also allowed me access to software that’s particularly hard to install (complex dependencies, workarounds etc) with ease. Instead of spending possibly an hour to get something new up and running on baremetal or a vm I can spin up a docker after reading documentation for a minute.

Hit me up with any questions. I just moved roon from my desktop to a dockerized install on my server and it works great. Roon was the last media service running on my main computer and I had held out over 2 years since I’ve moved everything to local and cloud servers.

1 Like

Well, this thread isn’t 100% about “how to do roon.” It is more like “I am setting up home infrastructure (roon being one central piece of that), and am considering approach _____.”

You helped me think outside my experiential box (a good thing!). I see that the things I want to run can all run under docker no problem. So there is the tinker factor (to figure out docker enough to see how to manage each of the pieces I plan to run in a docker environment). It is possible I will start with ESXi because it is all forward motion (no tinkering), and play with docker.

I think I will try to get docker to work for my other needs (NAS and pihole), and if I feel that is going well, I will then run that way with roon also.

An interesting place to take all this is in the direction of a standard docker yaml (or portainer project) that has the pieces home infrastructure is likely to need.

Thanks again for the engagement. (This forum is a constructive community for a noob, a great, rare, thing.)

I would not use a VM at all. Why complicate something that should be kept simple. Roon does not support running in a VM anyway…even if you get it to work fine.

I highly recommend you use FreeNAS, Unraid or OMV for the NAS side of things, they both support parity and will serve you much better than trying to setup dockers with bare disks. However, if you say, want a Google drive / icloud type interface to manage files on your NAS, by all means use a docker image for that part of it. The actual disks are handled best by something like I mentioned.

Out of all the things you listed Roon is actually the easiest and most suited to a purely dockerized approach.

It’s as simple as looking at that little ‘docker run’ command I posted before, and replacing those paths before each colon with the relevant paths on your NAS. So for me my command looks like

docker run -d
–net=host
-e TZ=“Europe/Amsterdam”
-v /mnt/disk1/appdata/roon:/app
-v /mnt/disk1/appdata/roon:/data
-v /mnt/disks/Music_I/Music:/music
-v /mnt/disks/Music_II/Music:/music
-v /mnt/disks/Music_III/Music:/music
-v /mnt/disk1/appdata/roon/RoonBackups:/backup
steefdebruijn/docker-roonserver:latest

To migrate, I backed up my roon database, copied said backup to my server under /mnt/disk1/appdata/roon/RoonBackups
Took my HDDs from my desktop, plugged them into my server
Ran that docker command, imported the backup, disabled each drive in storage, changed their path, re-enabled and everything worked.
Took me about 3 minutes not including the time to create / restore the backup.
I have hundreds of thousands of tracks and had no issues to get back up and running.

1 Like

Moving to the thread to Tinkering which is where it belongs.

Cheers.

1 Like

Please don’t mount /app and /data to the same host folder.

I strongly suspect it will unveil problems when the Roon core updates itself. See issues others have on unraid installs.

See https://github.com/steefdebruijn/docker-roonserver/issues/8

Steef

What is the effect of this duplicate mounting of host folders to the same container folder /music?

I would suspect the container sees only the last one, or is something magical going on here?

Thanks for popping in Steef, this is a big help. Just before I start playing, can I change the /app path and re spin up the docker or do I need to expect to rebuild my roon database from the backup?

P.s. nice catch on the path mappings, I typed that here wrong. For reference on my server it’s ’ -v /mnt/disks/Music_X:/music/Music_X ’

Dunno exactly. I would say try to change app path, keep data unchanged. On respin app will be downloaded again and started. The app stuff in data path is effectively garbage but let it be for now.

Please report back.

Worked without a hitch
Let me know if there’s any other unraid quirks you want me to explore. I’m happy to help.

Also check your PMs, I’m forwarding you some log output