Roon Server stuck in 'loading' state on Asustor NAS after move (ref#49NWOQ)

You’re assuming I have knowledge of how to open up a terminal on an Asustor nas. That’s kinda been the issue all along. You guys say just do this then just do that, but no information as to HOW. I’m not an it guy, nor am I a Linux guy. You throw around do this and that like you’re talking to someone who is.

I bought, configured and upgraded the nas, installed Roon and have been using for over a year now. All that was well within my level of experience and familiarity. Now you’re throwing a whole new level of knowledge required to continue using the platform I’ve invested in. I’m fairly well versed in the technology, but this is going beyond what I am comfortable with. I need instruction that assumes I have limited knowledge, not that assumes I’m an expert.

I’ve gotten as far as finding my way through to opening a terminal session on my asustor via shell-in-a-box. The instructions I’ve been trying to follow though, are confusing and sometimes seem to contradict themselves. I’ve tried to “deploy” the docker-compose file and the cli file. Nothing is working as clearly, there’s a bit of information missing from the “instructions”. Once more, knowledge/experience on my part is being assumed. When you instruction says to “deploy” a file, just what does that mean? The command line every time comes back with not found.

If you’re going to require your customer to follow this path, you really need to fill in ALL the blanks, and not assume we work with this stuff every day!

the log line is not turning up. I typed exactly what you show “docker logs portainer 2>&1 | grep setup_token” and nothing comes back.

I went into file explorer, realized the portainer folder was auto named ‘PortainerCE’, so I substituted that for portainer in your command, still nothing.

btw, ran docker ps, reply:

permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.49/containers/json": dial unix /var/run

/docker.sock: connect: permission denied

Hey @William_Cheadle,

First, I want to acknowledge the frustration. You’re right that these instructions assume you already live in this world, and that’s on us. Let me fill in the blanks. The good news is that all three problems you hit come from a single cause, and it’s an easy fix, and once you’re past it, the rest happens in a web page, not the command line.

The key is the last error you posted:

“permission denied while trying to connect to the Docker daemon socket”

On your Asustor, Docker commands have to be run with administrator (root) privileges, and the account your terminal logs in as doesn’t have that permission on its own. That one thing explains everything you saw:

  • docker ps → “permission denied” (it’s being blocked)
  • docker logs … | grep setup_token → “nothing comes back”, that command was actually blocked too, but the way that line is written, the error got hidden, so it just looked empty. Nothing was wrong with the container name, and you didn’t need to switch to “PortainerCE.”

The fix is to put sudo in front of each Docker command. sudo just means “run this as administrator.” It’ll ask for a password the first time, use your Asustor ADM admin password (the same one you log into the NAS’s web page with). You won’t see anything on screen as you type the password; that’s normal, just type it and press Enter.

Step 1, get the Portainer setup token:

  1. Run: sudo docker ps
    Enter your admin password when asked. You should now see a list of running containers instead of the permission error. Look at the column headed NAMES, that’s the real name of your Portainer container. (The “PortainerCE” you found in File Explorer is the app’s folder name, which can be different from the container name.)
  2. Grab the token using that real name. If NAMES shows portainer, run:
    sudo docker logs portainer 2>&1 | grep setup_token
    If it shows a different name, swap it in. This should now print a line containing the token.
  3. That token is only good for about 5 minutes. If step 2 is still empty even with sudo, the window has closed, restart Portainer and try again immediately:
    sudo docker restart portainer
    then repeat step 2. Copy the token value and paste it into the Portainer setup page in your browser to finish creating your login.

Step 2, what “deploy” actually means:

That word has been tripping you up, understandably. “Deploy” is not a command you type (that’s why the terminal keeps saying “not found”). It just means “start the container from these settings.” And you don’t have to do it in the terminal at all, Portainer gives you a web page for it. This is the easy part:

  1. Open Portainer in your browser and log in.
  2. On the left, click Stacks, then Add stack.
  3. Give it a name, e.g. roonserver.
  4. In the big text box (the “web editor”), paste the file below.
  5. Click the Deploy the stack button at the bottom. That button is what “deploy” means.

The file to paste:

services:
  roonserver:
    image: ghcr.io/roonlabs/roonserver:latest
    container_name: roonserver
    network_mode: host
    restart: unless-stopped
    environment:
      - TZ=America/Los_Angeles
    volumes:
      - /volume1/Roon:/Roon
      - /volume1/Music:/Music

You only need to adjust two lines, the ones under volumes. On each of those lines, the part before the colon is a real folder on your NAS, and the part after the colon must stay exactly as written:

  • /volume1/Roon → change this to the folder where you want Roon’s database to live. It must be on your actual disk (on Asustor that means a path starting with /volume1/), because some NAS systems keep other folders in temporary memory that gets wiped on reboot, you don’t want your Roon database there.
  • /volume1/Music → change this to the folder that holds your music.

Leave everything else exactly as shown, network_mode: host is what lets Roon find your audio devices, so don’t remove it.

If you’d rather not edit the file by hand, Roon has a tool that writes it for you: go to RoonServer Docker Configuration Generator, pick your platform, type in those two folder paths, and it prints the exact file to paste into the Stacks box in step 4.

Let’s get Portainer open first with the sudo steps, then we’ll do the Stacks screen together, one step at a time. You don’t need to know any of this in advance; I’ll walk you through each screen.

Thanks for sticking with us, William! :folded_hands:

Thanks for that Benjamin. I’ve programmed in a multitude of languages over 50+ years - from GW Basic through GFX graphical objects - most vertical market propriety languages, but many you’d recognize even today. I stopped programming a few years ago and now just do some system design. But mostly, I just want to know enough to keep my music playing.

OK, got after it again this morning. I get the “sudo” thing, and got different results using it - was able to restart portainer, and ‘sudo docker ps’ returned the list. Then getting the logs got me. No possible name combination I could come up with returned the setup token. Here’s what I entered:

Hopefully you can enlarge and read this. basically nothing was returned until I used ‘/portainer’ for the name, but then just ‘{’ came back.

Can you see what I’m doing wrong here?