Headless Roon Core, CD Ripper

Hey all, I am setting up my first “serious” HiFi rig at home and I wanted to get some feedback on what I’m planning on the streaming side of things. I’m writing this also to gather my thoughts so I apologize for the length [Edit: If I ever accomplish this I will write a tutorial to try and help the community in case anyone else has similar goals]:

  • System76 Meerkat that I had leftover from an old project, running Ubuntu Server 20.04 LTS
  • Roon Core installed on the boot drive, a 500 GB NVMe formatted as ext4 (I know that’s unnecessarily huge for my purposes, but it’s what I have on the Meerkat so I’m going with it)
  • Secondary internal 2.5” 2TB HDD formatted as ext4 holding the actual music library consisting of FLACs
  • External 2TB USB 3.0 HDD formatted as exFAT (for compatibility with Mac/Windows) for nightly (and upon mount) rsync with the internal 2TB music library
  • 64 GB Micro SD formatted ext4 inserted directly in the Meerkat for nightly backup of the Roon database
  • External USB DVD-R/W drive connected to Meerkat for (hopefully) automatic FLAC ripping of CDs to the internal 2TB drive using abcde upon CD insertion, ejecting on completion
  • Will be using a separate Pi 3B+ with touchscreen running Ropieee as a “now playing” display. Another room will have a Pro-ject Stream Box S2 Ultra as an endpoint
  • Will be controlling the Core via iPad Pro, iPhone, iMac, and/or MacBook Pro

Other software:

  • Will likely run Cockpit on the server for web based admin
  • Docker for Roon Extension Manager (on this note I debated using the CD ripper extension instead of abcde but I would prefer the ripping to be automatic)
  • Some web interface for Cron jobs (crontab-ui?) or I could use systemd instead of cron for my backup stuff and manage that with Cockpit
  • Cockpit Docker plugin for managing containers in Cockpit
  • Maybe (?) xubuntu-desktop in case I want to run dbPoweramp in Wine for ripping HDCDs… and just so I have a GUI in case there’s any other random non-CLI stuff I want to run
  • System76 Drivers (I guess I need to install these per System76 website)

Some explanation. In my mind, it works like this…

  • My Roon Core database is backed up nightly to MicroSD using Roon
  • My music library on the 2.5” internal 2TB HDD will rsync nightly and upon mounting of the USB external 2TB drive, for 2 purposes: One being backup so I always have a mirror, and second so that if I disconnect the external drive, hook it up to a Mac/PC and add some music, when I reconnect to the Meerkat, the new music will automatically get transferred to the internal music library.
  • On CD insertion, it rips to FLAC in the best possible way (whatever that may be) using abcde, fetching appropriate metadata and album art and saving it all to the internal 2.5” HDD. I might also have this trigger an rsync to the external HDD. Then ejects the CD.

What can go wrong and what am I not 100% sure of how to do?

  • Don’t fully comprehend the best way to auto mount all of these drives via CLI on boot or media insertion (fstab? usbmount?)
  • Still reading various tutorials on automating the CD ripping with abcde… not sure what settings to use for the config file to get the job done properly once the ripping actually begins… have looked at some premade scripts like “ARM” (automatic ripping machine), but it does a lot of things I don’t need (like ripping movies)
  • Still debating whether to just use the CD ripper extension for Roon (seems like less of a nightmare to setup), in which case I assume I would just have to insert the CD and manually rip using the Roon app on my iPad
  • Regarding the backup of my music, I think rsync is what I want, and I think a cron job makes sense for how to do it… I don’t care about having multiple backups or being able to go back in time on the library, I literally just want a mirror, where I can add music, reconnect the external drive and have new additions move to the actual internal library.
  • If I use rsync (or any other backup utility) I anticipate running into issues because the internal library is ext4 and the external HDD is exFAT - among them, issues with time stamps (there’s a way to compensate for this by only looking at file size or reducing the sensitivity of the timestamp comparison), case sensitivity (not sure how much of an issue), and special characters (theoretically a “munge” function in abcde script should fix those)… I’m wondering if this is still workable.
  • I also read that 20.04 has kernel support for exFAT which I assume means that I won’t need the usual fuse packages installed to work with exFAT. Just not sure how robust the kernel support for exFAT is…
  • Do I need to worry about the ufw firewall, and if so, which ports will I need to open for all this to work…?
  • Might make the internal HDD a samba share for giggles…

I’m sure there are a million and one other issues that I’ll run into. If you read this far, I would greatly appreciate any input regarding my overall plan. If you think the whole concept is dumb, but have a workable solution that uses the same hardware and accomplishes the same goals, I would love to hear it. I’ve been reading my butt off about all of the pieces of this puzzle, but each tutorial I’ve found differs slightly from what I’m planning in some way or another, so I really don’t know if I can get all of this working. I’m a Linux beginner but I am not afraid of the command line and I consider myself fairly tech-savvy. Thanks!!!

Most of that I cannot contribute to.
You need to use the inbuilt backup manager in roon to.back up your roon library (database). It can go to any drive that roon can see and has its own scheduler.

1 Like

Use Vortexbox OS instead of Ubuntu, it’s light weightnkinuz built with audio in mind has an inbuilt CD ripper in the os that’s fully automatic, simple web GUI for some operations and cli for the rest. It will work flawlessly I used it for many years before switching to Roons OS.

1 Like

Um - I’ll probably get flak for saying this, but if you’re a Linux beginner, and want a Roon appliance instead of a Linux computer running Roon, why not try and install ROCK on the Meerkat first? If it runs, then you would have a MOCK system running the Roon core as an appliance.

You could use the built-in CD ripper in ROCK for your rips.

The only thing you might miss is that you can’t install the Extension Manager into a ROCK/MOCK system, nor into Ropieee - if that’s a must, then you could use a second RPi with DietPi (which has the Extension Manager and Docker as standard installable software).

1 Like

Thanks for the suggestions!

  • I considered ROCK but it makes me a little nervous that it’s only supported for NUCs, so it could theoretically quit working properly for me at any time on the Meerkat and I’d be SOL. The CD ripper is somewhat basic on ROCK and I’m not keen on having all my rips have filenames like “Track01, Track02, etc.”
  • I looked into Vortexbox and I will definitely give it some more thought. It makes me a little nervous that it’s been “dormant” in terms of development since 2014. Roon Core might run great on it now, but it’s possible that a future Roon update will not. Still, I appreciate the suggestion and I may end up using it…
  • As far as being a Linux beginner, maybe beginner was not the best choice of words. I’ve installed and used Linux on multiple machines in the past and I have a fair amount of familiarity with the command line interface. I’m just at the stage where you’re not going to find me writing shell scripts from scratch or immediately knowing off the top of my head how to setup what I described above without following a tutorial with some slight modifications.
  • As far as backing up the Roon database, yes that part will be done with Roon directly - I might not have been clear that the rsync stuff would just be for the music library.

Yup, very understandable, there’s always a risk with a MOCK system. But just a small clarification of your comment:

Having basic filenames and folders with timestamps as names is not an issue in Roon, and if you ever want to move to something else, Exporting the library from Roon will use its basic metadata to create a copy of your Library using Artist/Album folder structures and tracks renamed with disc, track number and title…

1 Like

Meercat seems a little overpriced. There’s nothing special about it. It’s just an Intel NUC.

Here’s almost the same from Amazon that will come in about $300 cheaper -

BTW- not sure if GEN10 is, as yet, officially sanctioned by Roon.

It’s not - the new ethernet driver for Gen 10 is not yet in ROCK/Roon OS…

I already had the Meerkat leftover from an old project otherwise I totally agree that it’s overpriced.

1 Like

Thank you for the clarification - I didn’t realize that on exporting the library from Roon it would properly rename the files and folders.

By the way, (in response to everybody) please don’t think I’m just arbitrarily shooting down ideas. This is exactly why I posted here - to make sure I was considering every possibility. I will definitely keep mulling this over and it’s 100% possible I could end up using ROCK or Vortexbox, etc.

1 Like

Oooh,… I just found something else that may be perfect for my project:

Whipper Unattended Ripping

Found in this list of CD ripping utilities for Linux CLI

It can be set up in a Docker container and does exactly what I want… leaning heavily towards this at the moment.

As long as you don’t create this Frankenstein, attach the electrodes and it turns on you…

I forgot the pedants in the audience, yes I know Frankenstein was the doctor not the monster.


That’s a huge wast of a 500 gb SSD if you are running ROCK.

Yeah probably not going the ROCK route since I’d like to be able to potentially use the system for other home server tasks. Again though, I didn’t go out and configure this to be my Roon server. It was purchased a couple of years ago and I’d rather not shell out more money for a NUC when I have this available and currently unused.

So right now, leaning towards Ubuntu Server 20.04 LTS with the Roon Core, and the Whipper unattended ripping Docker container I linked a few posts up. I’ll run the Roon extension manager in its own Docker. Nightly backups of Roon database to SD, and rsync of the music library to the USB drive nightly and when mounted. All of that I’m fairly comfortable setting up. Currently debating between Cockpit and Webmin for web-based admin of the server. Cockpit looks a little prettier but Webmin seems to have more modules out there (Samba management for example, in case I want to share the library over SMB).

1 Like

The CD Ripper extension also makes use of Whipper, it’s a pretty complete tool.

It would be a nice addition for the extension to have an auto rip function but I don’t know (yet) if this can work within a container.

1 Like

@Jan_Koudijs thank you so much for making the CD Ripper Extension!!

I may end up using it after all if the autorip project goes south. It’s actually the main reason why I want to make sure I install the Extension Manager in case I need to pivot to using that.

As far as working within a container, that Whipper Unattended Ripping script linked above apparently runs in a Docker container (unless you meant something else as far as “work within a container”).

To be honest, it’s not like I’m going to be ripping a library of thousands of CDs, so the unattended part is less crucial for me. It may make sense to just use your extension and save myself some heartache. :slight_smile:

Not dormant. The dev released a beta for the next version last year. Tbh you don’t need much more from it anyway it just works and pretty flawlessly when I used it . I still use it to Run Plex and it’s rock solid.

1 Like

Good to know. I guess I saw on this website that it was dormant but it’s good to know it’s still actively being developed. And you’re right, if it’s doing everything properly and accomplishes what you need, who cares either way. I’ll keep it in mind.

I would endorse the vortexbox suggestion except that support for it does seem to be waning. It is several versions behind the latest Fedora release and the CD ripper used to use freedb for metadata but this has just closed down, so metadata is not added automatically any longer. But I’m still running my Roon core on top of a Vortexbox installation and apart from CD metadata it is a good trouble free and audio optimised Linux solution. Daphile, Volumino and Snakeoil are other Linux based potential alternatives as well.

For the record same guy who wrote it also maintains the os for SGC sonic transporters and Sonore Rendu products and AudioStore Products in the UK. I guess this takes a lot of his time and likely pays. It has been a long time coming for an update, I only updated to the beta as Plex no longer support that version of Fedora it’s based on.