Hi all sorry for the totally newb question. I know just enough to be dangerous, but not enough to “fix” my issues.
I’m running Roon on TrueNas in Portainer and the container deploys fine. I’ve been able to connect Qobuz and I can play my Qobuz music on my Win11 PC without any issues at all.
BUT…
I have a lot of music stored on my NAS (/mnt/DataStore/Multimedia/Music) and I’m able to add that path in Roon Storage, but as far as Roon in concerned that folder is “empty” (There’s roughly 170Gb/25,000 files).
I suspect I’m missing something very simple, but I don’t know where to look to fix it.
Thanks for any help on it.
Maybe this is helpful? Here is the YAML I used to configure the container
services:
docker-roonserver:
container_name: docker-roonserver
environment:
TZ: America/Washington
hostname: docker-roonserver
image: steefdebruijn/docker-roonserver:latest
network_mode: host
privileged: True
restart: always
volumes:
- roon-app:/app
- roon-data:/data
- roon-music:/mnt/DataStore/Multimedia/Music
- roon-backups:/mnt/DataStore/Share/Scott/Music/backup
version: ‘3.7’
volumes:
roon-app: Null
roon-backups: Null
roon-data: Null
roon-music: Null
In the default config, that Steef provided, these volumes are declared without the null assignment as, for example:
volumes:
roon-app:
Adding “: Null” may actually be an issue.
Personally, I would remove the entire second “volumes:” section. It is unnecessary and could be causing the issue.
@Scott_Nelson - I don’t think you should follow @mjw’s example and attempt to switch to Podman. You’ve very close to getting this working using Portainer and YAML. Many of us do that.
I would start by guaranteeing that the mount paths you’re using are correct and I would remove that second volumes section.
Also, you’re app and data paths are probably not right. Roon is going to put its app and data files there when it installs. I think you may have specified the root of your NAS instead of a dedicated folder.
Here’s a link to a now outdated walkthrough I wrote on how to get Roon working in a container on Synology. This pre-dates the ability to use a YAML file (which Synology added later) but the parts that are probably helpful to you are the parts that explain how to set up app and data directories. The model I like is to create a top-level folder/share on the NAS called “docker” or something like that and create a subfolder for each container or project. That’s where you’d want your app and data directories to go.
So…do this:
delete the second “volume” section. Test. That may fix your issue but your paths are still in need of being fixed
Fix the rest of your paths. Create a docker folder with a subfolder called Roon. Create app, data, backup(s) inside of there. Point your YAML at those paths
Thanks @gTunes, I’ll give your tips a shot when I get off work. One question for now, are you recommending I created a Roon folder in one of the NAS datasets? (then App/data/backup subfolders)
Sorry, I don’t fully understand the way Docker works with the main system and vdevs etc…
Somehow forgot to include the link to the walkthrough. I do think it’s worth a read because it illustrates the file hierarchy I’m recommending:
Close. When you create a Docker container, you typically need to provide mappings from the host system into the container. A good pattern for this is to create a top-level folder on your NAS called Docker or docker and then create a subfolder for each container you create. Roon may be your first container but you should look ahead and assume that you may want others in the future.
So…create a share/folder/whatever on TrueNAS called “Docker”. Then create a folder in there called “Roon” and, within that, create app, data, backup folders. Map those into the Roon container using the “volume:” section of your YAML file.
I’m not recommending that you put Music in there because you already have a Music folder. Just map that one in as you’ve been doing, but verify that the path is correct.
The walkthrough I created a few years ago explains how to do this in the Synology UI and, even though that’s not what you’re using, it shows the file hiearchy that I recommend you create.
I see. I thought you were recommending he move to Podman. He has those volumes declared but he’s done it twice, which could be the problem. When you specify a volume’s value as “: Null” you’re telling Docker that you want to create the volume with default settings. I’m not sure what impact that has when, in same service definition, you’ve already declared those volumes with explicit values. Certainly it’s not going to help anything
As far as I can tell the last set of
volumes:
roon-app:
roon-data:
roon-music:
roon-backups:
Can’t be modified or deleted. I tried, both and got a “FAILED [EFAULT] Failed ‘down’ action for ‘roon’ app. Please check /var/log/app_lifecycle.log for more details”
SO…
I killed the image, and deleted everything. I manually built the container using my volume paths:
volumes:
- roon-app:/DataStore/Docker/Roon/App
- roon-data:/DataStore/Docker/Roon/Data
- roon-music:/DataStore/Multimedia/Music
- roon-backups:/DataStore/Docker/Roon/Backup
and after I deployed the container, those “extra” ones were there again. So I killed that container too, and re-deployed it through YAML.
This is what it looks like now
Let’s ignore the issue with the duplicates for the moment.
When you write this in a volume specification:
roon-music:/DataStore/Multimedia/Music
You’re telling Docker to create a volume in the container at “/roon-music” that is a mapping of the host’s /DataStore/Multimedia/Music. So, from within the container, you don’t want to be referencing /DataStore/MultiMedia/Music, you want to be referencing “/roon-music”.
In the picture you shared, you’re trying to find music in DataStore/Multimedia/Music. I’m actually not sure why DataStore is visible but I do know that isn’t where you want to point Roon.
Here’s a picture of my Storage folder in Roon. My server is roonTrinity, the / is the root and “music” is what I mapped my music folder into. From within this setting in Roon, you should navigate up to the root by clicking on the slash in this:
Once you’re looking at the root, you should see roon-music, and that’s what you want to pick. I hope that makes sense.
It makes sense (maybe not entirely, but it’s a great start).
I’ve gotten Roon pointed to /music like you have shown in your image. Although mine shows the directory to be “empty”. Which tells me I haven’t corrected the “link” (I guess you could call) of the /music to my /DataStore/Multimedia/Music (host music volume).
I really appreciate your help with this, it’s been bugging me for about a year now
The second line there is a command to Docker. You are telling Docker "Make it seem like there is a folder at the root of the containers drive called “/roon-music”. Make the contents of that folder be the contents of /DataStore/Multimedia/Music.
So when you go to configure Roon, you should be looking for the folder /roon-music at the root of the drive.
In my example, you see me using the folder “/music” at the root of my drive. This is because, in my yaml file, I did something like:
volumes:
- music:/{path to my music}
In my last message, I said you needed to look for /roon-music at the root. Instead, I think you used /music. Trying looking for /roon-music.
Oh boy. You’re right but we’re giving him confusing, contradictory info. He’s trying to follow Steef’s example YAML which is why I’ve been trying to stick with roon-* but you’re right that the container expects him to be using /app and /data. The container’s run.sh doesn’t care what he uses (or if he uses anything) for music and backups. @mjw - take a look at the yaml here to see the template he’s following : GitHub - steefdebruijn/docker-roonserver: RoonServer downloading Roon on first run. This is what’s creating the confusion because of its use of roon-*.
Sorry about my brevity earlier, which probably lead to some of the confusion.
IIRC, the template confused me when I setup my container. The roon-* entries would be clearer if real paths were used, or something like <host path>. They are on the host not the container.
Holy crap… @gTunes and @mjw you are both AMAZING!!! It took a little tweaking to your YAML gTunes. It wouldn’t deploy until I added “/mnt” to the beginning. So it looks like this now
Glad we figured it out! Sorry for the confusion earlier but we got there
I’m not sure what you mean when you say “the duplicates”. Do you mean the second “volumes” block where you declare roon-music and the rest of them?
If so, that block should be removable at this point. It’s declaring a set of logical volumes that you haven’t defined and aren’t using. Personally, I’d delete it to avoid any confusion in the future.
Oh no problem at all!!!
Yes, the duplicates are the 2nd set of “volumes”. I’ll play with it this evening and see it it’ll allow me to remove that section.
I’m so happy to finally have it running in TrueNAS, it’s been a pain point for me for a long time. Again thank you both for the help. I very much appreciate you taking the time to hand hold me through it