Lots of Q's on QNAP Docker RoonServer setup & rolling back to the old Roon Server to make a backup (ref#3A9EX2)

Hi All, so this morning I logged in as Admin (again) and looked at the status of Container Manager. The Docker Roonserver was still running and the App Roonserver would not run. The Logs showed a long history of failures. The relevant logs were, I think:

Level Time Category User Message
Error 2026/06/05 10:48:14 Container admin Failed to do background task (application_custom, roon)
Error 2026/06/05 10:48:14 Container admin Background task error for application_custom roon: ERROR: for roonserver Cannot create container for service roonserver: logger: no log driver named ‘local’ is registered ERROR: for roonserver Cannot create container for service roonserver: logger: no log driver named ‘local’ is registered Encountered errors while bringing up the project.
Info 2026/06/05 10:47:59 Container admin Start to do background task (application_custom, roon)

It would appear that my YAML file is pointing to log driver that does not exist?

When I create a Docker container, in the Advanced Settings there is one parameter that stood out but do not know whether it is relevant: Lock File (Oplocks) - this is checked by default?

So close but yet so far… :slight_smile:

Hey @Ado,

Thanks for the screenshots and the updates! From what I can see, lets see if the below help:

  1. The logging: driver: local Error (Primary Issue)

    The error “no log driver named ‘local’ is registered” is the main blocker for your App (docker-compose) container. The local log driver isn’t available in QNAP’s Container Station environment.

    I would try to remove the logging section entirely from your YAML, or switch to json-file:

version: '3'
services:
 roonserver:
 image: ghcr.io/roonlabs/roonserver:latest
 container_name: roonserver
 network_mode: host
 environment:
 - ROON_INSTALL_BRANCH=earlyaccess
 - TZ=Europe/London
 volumes:
 - /Container/container-station-data/lib/docker/volumes/Roon:/Roon
 - /Multimedia/RoonMusic:/Music
 - /Container/container-station-data/lib/docker/volumes/RoonBackups:/RoonBackups
 restart: unless-stopped
Simply delete lines 15–16 (logging: and driver: local).
  1. Docker Container vs. App, you only need one.

    You do not need both the Docker container and the App running simultaneously. They are two ways of defining the same thing. Having both creates a conflict since they share container_name: roonserver and network_mode: host.

    I’d choose one, the App (YAML) approach is cleaner. Stop and remove the standalone Docker container first, then start just the App.

  1. No entries under Volume tab: This is expected and normal. Because your YAML uses bind mounts, Docker doesn't create named volumes, it just mounts existing folders directly. Named volumes only appear in the Volume tab if you use Docker-managed volumes (e.g., roon_data:/Roon without a leading /). Your setup is fine.
  2. Privileged Mode Requirement. Your finding is correct, the container needs "Run containers in privileged mode" checked. For the App, you can add this via the privileged flag in YAML:
 privileged: true
Add that line under container_name: roonserver. This means you don't have to manually set it in the GUI after creation.

So the full recommended yaml file looks like:

version: '3'
services:
 roonserver:
 image: ghcr.io/roonlabs/roonserver:latest
 container_name: roonserver
 network_mode: host
 privileged: true
 environment:
 - ROON_INSTALL_BRANCH=earlyaccess
 - TZ=Europe/London
 volumes:
 - /Container/container-station-data/lib/docker/volumes/Roon:/Roon
 - /Multimedia/RoonMusic:/Music
 - /Container/container-station-data/lib/docker/volumes/RoonBackups:/RoonBackups
 restart: unless-stopped

To apply it:

  1. Stop and Remove the standalone roonserver Docker container
  2. Edit the App's YAML (remove logging lines, add privileged: true)
  3. Validate YAML → Apply
  4. Start the App
  5. Wait ~30 seconds, then try connecting from your Roon client on Mac
Re: Oplocks, leave that at its default (checked). It's unrelated to this issue.

I hope this helps, @Ado! :folded_hands:

Thank you! All makes sense and followed your steps.
I cut and pasted the suggested text into docker compose and I now receive a new error (see attached pic)

In file ‘./docker-compose.yml’. service ‘network_mode’ must be a mapping not a string.

I tried to simply delete the network_mode: host entry - and get the same error message but the “image:” then becomes the subject of the error. I stopped Container Manager and Restarted my QNAP. Tried again with the some error in relation to the ‘network_node’.

Your support is greatly appreciated…

@benjamin Further to my last post - repasted the YAML text, it validated and it created the App. Now under the App is the linked Docker container. I then started the App and it appeared to start (utilisation gauges working and “idling” away.

Looked in Docker roonserver settings to look at the Console entries, there was a tsunami of log entries. For each executed step, the result was insufficient disk space (or words to the effect). It repeatedly tried to set-up the server (I presume on the SSD). I have loads of SDD (200GB)and RAID disk capacity. (see screenshot). Looking at the Console entries it appeared to re-try the set-up sequence. But now I get the following messages after restarting/starting the Roon App:

Detected existing RoonServer install (branch: earlyaccess).                                                                                    
Resolved ROON_INSTALL_BRANCH='earlyaccess'.                                                                                                    
Installed branch 'earlyaccess' matches requested branch; no reinstall needed.                                                                  
Image:   1.0.6                                                                                                                                 
Branch: earlyaccess                                                                                                                            
Roon:    2.67 (build 1662) earlyaccess                                                                                                         
/Roon/app/RoonServer/start.sh: line 34: kill: (25) - No such process 

I tried with a Roon client on my Mac and iPhone to access the server - no joy.

Disturbingly under File Station the 2 volumes appear but cannot see file structure below each volume.

Is “early access” the best version for me to use?

Making progress of a kind… thank you for your continued assistance.

That is an indication the first share path of the script is not accessing the correct folder named /Container, the latter is not mounted correctly as a shared folder under the SSD volume, or Container Station has insufficient rights to write into this one. Has nothing to do with storage space, I had this error message when I tried to write on an exFAT formatted SSD (which would not work) or when remnants of previous container installations were preventing Container Station to write into it.

The FS screenshots indicates the top-level folders have not been properly mounted on your volumes. You need /Container and /Music in your case to be appearing under Control Panel > Shared Folders, /Container being mounted on the RoonSysDrive (which is a SATA SSD, I assume?) and /Music on the magnetic disc. It will also show these top-level folder in FS hierarchy linked to the volume in question.

The classification “Legacy volume” for the latter indicates this has been initiated using an older version of QTS, so not really sure how it would work with shared folders in this case. You might have to figure out the volume name on system level, for creating the correct second path.

Early Access just means your machine updates to beta versions in case there is a new one available. If you don´t want to be testing new features and patches, I suggest to install production build.

@Arindal Thank you. These were not problems a day ago/a week ago. From what I have read, I need to fully back-up my NAS (about 5TB) and then recreate the RAID. Painful… Until fixed, the Roon Docker app won’t function…

Hi all you kind people helping me. In the process of installing Container Manager, Docker etc. on my 10+ years old NAS with QTS4.3, I have decided I need to replace my TS-670 Pro with a newer model with a better spec (TS-464-8G). Hopefully also using the latest version/generation of Docker will make this easier. I have certainly had a Docker education! :wink: Currently backing-up over 15,000 tracks. I guess having an SSD drive for RoonServer is still advisable?

Thank you for all for your kind assistance. Greatly appreciated. Best, Ado

In terms of CPU single-core speed, not really an improvement, but quad core and a more modern QTS are both a good idea.

Yes. The TS-464 offers additional M.2 slots. So having a decently fast M.2 volume for system, mounted /Container folder and roon in the container, is in my experience the fastest solution.

Hi! I am up and running with my new NAS. Now using QTS 5.2.4 and Container Manager Version 3.1.2.1742 (2025/11/26).
Have created new SystemSSD volume (m.2 card with 1TB) and a Data volume (about 7.75TB available). Have created Shared Folders (see pics attached) with R/W permissions. Did not create /Roon as a Shared Folder as thought Docker would create that share - please let me know if that is a wrong assumption - but the error log (way below) indicates it is within the Container folders that there are space issues).

Copied across all my Roon music to the Data volume. Used the YAML which validated with this:

services:
  roonserver:
    image: ghcr.io/roonlabs/roonserver:latest
    container_name: roonserver
    network_mode: host
    privileged: true
    environment:
      - ROON_INSTALL_BRANCH=earlyaccess
      - TZ=Europe/London
    volumes:
      - /Container/container-station-data/lib/docker/volumes/Roon:/Roon
      - /share/Music:/Music
      - /share/RoonBackups:/RoonBackups
    restart: unless-stopped
    logging:
      driver: local

The Docker container is created and runs. When I look at the log I see this repeatedly:

Roon Docker image 1.0.7 starting.
VERSION file at /Roon/app/RoonServer/VERSION is empty — treating as no existing install.
Resolved ROON_INSTALL_BRANCH='earlyaccess'.
No install present; installing branch 'earlyaccess'.
Downloading from https://download.roonlabs.net/builds/earlyaccess/RoonServer_linuxx64.tar.bz2...
Extracting to /Roon/app...
tar: RoonServer/Appliance/Roon.Audio.Signal.dll: Wrote only 2560 of 10240 bytes
tar: RoonServer/Appliance/Roon.Audio.UPnP.dll: Cannot write: No space left on device

##Deleted a bunch of log lines as reply too large##

tar: RoonServer/Server/RoonApp.PlatformTools.dll: Cannot write: No space left on device
tar: RoonServer/Server/RoonApp.dll: Cannot write: No space left on device
tar: RoonServer/Server/RoonBase.dll: Cannot write: No space left on device
tar: RoonServer/Server/RoonServer: Cannot write: No space left on device
tar: RoonServer/Server/RoonServer.deps.json: Cannot write: No space left on device
tar: RoonServer/Server/RoonServer.dll: Cannot write: No space left on device
tar: RoonServer/Server/RoonServer.runtimeconfig.json: Cannot write: No space left on device
tar: RoonServer/Server/Sentry.dll: Cannot write: No space left on device
tar: RoonServer/Server/System.CodeDom.dll: Cannot write: No space left on device
tar: RoonServer/Server/System.Management.dll: Cannot write: No space left on device
tar: RoonServer/Server/System.Security.Permissions.dll: Cannot write: No space left on device
tar: RoonServer/Server/System.Windows.Extensions.dll: Cannot write: No space left on device
tar: RoonServer/Server/VERSION: Cannot write: No space left on device
tar: RoonServer/Server/libleveldb.so: Cannot write: No space left on device
tar: RoonServer/Server/libroonbase.so: Cannot write: No space left on device
tar: RoonServer/Server/processreaper: Cannot write: No space left on device
tar: RoonServer/Server/relaunch: Cannot write: No space left on device
tar: RoonServer/VERSION: Cannot write: No space left on device
tar: RoonServer/check.sh: Cannot write: No space left on device
tar: RoonServer/start.sh: Cannot write: No space left on device
tar: Exiting with failure status due to previous errors

I then Stop the roonserver application and return here in the hope for some further assistance!

One more log screen

This indicates your first path in which the roon container is meant to be installed and extracted, is not properly defined, or pointing to a folder where this is not permitted. I assume your path:

/Container/container-station-data/lib/docker/volumes/

is an internal system folder, used exclusively by Container Station app. Alter this to:

/Container/Roon

And it should work.

Your second path, pointing to the music files, might need alteration as well, as you don´t have any shared folder named /Music so this will be a dead end. I suggest to alter it to:

/share/RoonMusic

Good luck!

Thank you @Arindal I made the changes suggested and recreated the YAML which validated. Re-ran it and got similar error messages (see below). Looking at the logs, should the volumes entry for /Roon be:

- /Container/RoonServer:/Roon
services:
  roonserver:
    image: ghcr.io/roonlabs/roonserver:latest
    container_name: roonserver
    network_mode: host
    privileged: true
    environment:
      - ROON_INSTALL_BRANCH=earlyaccess
      - TZ=Europe/London
    volumes:
      - /Container/Roon:/Roon
      - /share/RoonMusic:/Music
      - /share/RoonBackups:/RoonBackups
    restart: unless-stopped
    logging:
      driver: local
roonserver  | Roon Docker image 1.0.7 starting.
roonserver  | VERSION file at /Roon/app/RoonServer/VERSION is empty — treating as no existing install.
roonserver  | Resolved ROON_INSTALL_BRANCH='earlyaccess'.
roonserver  | No install present; installing branch 'earlyaccess'.
roonserver  | Downloading from https://download.roonlabs.net/builds/earlyaccess/RoonServer_linuxx64.tar.bz2...
######################################################################## 100.0%
roonserver  | Extracting to /Roon/app...
roonserver  | tar: RoonServer/Appliance/Base.dll: Cannot write: No space left on device
roonserver  | tar: RoonServer/Appliance/BouncyCastle.Crypto.dll: Cannot write: No space left on device
roonserver  | tar: RoonServer/Appliance/Broker.Messages.Core.dll: Cannot write: No space left on device
roonserver  | tar: RoonServer/Appliance/Chaos.NaCl.dll: Cannot write: No space left on device
roonserver  | tar: RoonServer/Appliance/ClosedXML.dll: Cannot write: No space left 

##Deleted multiple logs lines##

roonserver  | tar: RoonServer/Server/libroonbase.so: Cannot write: No space left on device
roonserver  | tar: RoonServer/Server/processreaper: Cannot write: No space left on device
roonserver  | tar: RoonServer/Server/relaunch: Cannot write: No space left on device
roonserver  | tar: RoonServer/VERSION: Cannot write: No space left on device
roonserver  | tar: RoonServer/check.sh: Cannot write: No space left on device
roonserver  | tar: RoonServer/start.sh: Cannot write: No space left on device
roonserver  | tar: Exiting with failure status due to previous errors

Could you please check if there are any traces of folders and files in /Container/Roon/app/RoonServer/Appliance?

Error messages indicate that Container Station unsuccessfully tried to extract the parts of the application into that folder. I don´t quite understand the reason for this. It might be insufficient permission to write a lot of files on that volume, restriction on the number of files/storage space on that volume, or the shared folder /Container is not properly mounted. Just a wild guess from my side, but this volume is named “SystemSSD”, so restrictions might originate from the fact this is not meant as a data volume. You might have to create another volume on that M.2 bar, and move the shared folder /Container to that one.

@Arindal Thanks for your reply. Yes it is annoying that it does not simply work - but I really appreciate the support.

I searched and found this (3yr old) thread:

https://www.reddit.com/r/qnap/comments/13qnu9h/qnap_docker_directory_permissions/

I am using the Docker GUI and Command Line.  Some extracts below:

But the directories underneath this directory (image, volumes etc) are owned by admin:administrators with mostly 700 privileges (see screenshot), so no-one can get into these directories except the admin user. Even being in the administrators group won't work:

Yep, container station still creates containers and docker files with 700 permissions and admin as owner.

I also get this error warning from QTS, which seems to validate this problem:

Warning	2026-06-14	19:01:47	Adrian	192.168.0.25	---	Web Desktop	Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Safari/605.1.15	HTTP	[File Station] /Container/container-station-data/lib/docker	Read

So I have gone into Control Panel/Privileges/Users and viewed my User account and looked at Edit Shared Folders Permissions. There was a line for Container which was RO and I changed it to RW. I also activated the Admin account and set a new password and User Shared Folders Permissions. Logged out my User account and entered via Admin account. Went into Container Station and went into the existing roonserver app - edit - recreate. Validated the existing YAML. App still did not build but the error message is different (ie now “Cannot write: No Space left on device”).

roonserver  | Roon Docker image 1.0.7 starting.
roonserver  | VERSION file at /Roon/app/RoonServer/VERSION is empty — treating as no existing install.
roonserver  | Resolved ROON_INSTALL_BRANCH='earlyaccess'.
roonserver  | No install present; installing branch 'earlyaccess'.
roonserver  | Downloading from https://download.roonlabs.net/builds/earlyaccess/RoonServer_linuxx64.tar.bz2...
                                                                     #####                                                                #############                                                        #################                                                    ####################                                                 #######################                                              #########################                                            ############################                                         ###############################                                      ##################################                                   #####################################                                #######################################                              ##########################################                           ############################################                         ###############################################                      ##################################################                   #####################################################                #######################################################              ##########################################################           ##############################################################       #################################################################    #################################################################### ############################################################################################################################################# 100.0%
roonserver  | Extracting to /Roon/app...
roonserver  | tar: RoonServer/Appliance/NotoSansCJKjp-Regular.otf: Wrote only 9216 of 10240 bytes
roonserver  | tar: RoonServer/Appliance/NotoSansDevanagariUI-Bold.ttf: Cannot write: No space left on device
roonserver  | tar: RoonServer/Appliance/NotoSansDevanagariUI-Medium.ttf: Cannot write: No space left on device
##Extra lines not added##

I then made 2 changes to the YAML file (still logged in as Admin) adding:

adding line: Version '3'
In volumes added /share to :/Roon definition
version: '3'
services:
  roonserver:
    image: ghcr.io/roonlabs/roonserver:latest
    container_name: roonserver
    network_mode: host
    privileged: true
    environment:
      - ROON_INSTALL_BRANCH=earlyaccess
      - TZ=Europe/London
    volumes:
      - /share/Container/Roon:/Roon
      - /share/RoonMusic:/Music
      - /share/RoonBackups:/RoonBackups
    restart: unless-stopped
    logging:
      driver: local
roonserver  | Roon Docker image 1.0.7 starting.
roonserver  | No existing RoonServer install found under /Roon/app/RoonServer.
roonserver  | Resolved ROON_INSTALL_BRANCH='earlyaccess'.
roonserver  | No install present; installing branch 'earlyaccess'.
roonserver  | Downloading from https://download.roonlabs.net/builds/earlyaccess/RoonServer_linuxx64.tar.bz2...
#=#=#                                                                ##                                                                   #######                                                              ########                                                             ############                                                         #################                                                    ####################                                                 ########################                                             ############################                                         ################################                                     #####################################                                #########################################                            #############################################                        ##################################################                   ######################################################               ###########################################################          ###############################################################      ###################################################################  ############################################################################################################################################# 100.0%
roonserver  | Extracting to /Roon/app...
roonserver  | RoonServer installed successfully.
roonserver  | Image:   1.0.7
roonserver  | Branch: earlyaccess
roonserver  | Roon:    2.70 (build 1665) earlyaccess
roonserver  | 00:00:00.001 Info:  get lock file path: /tmp/.rnsgem0-
roonserver  | 00:00:00.005 Info:  GetLockFile, fd: 74
roonserver  | 00:00:00.005 Info:  GetLockFile, res: 0
roonserver  | 00:00:00.005 Trace: Nope, we are the only one running
roonserver  | Initializing
roonserver  | Started
roonserver  | [Sentry] Initialized for RoonServer (appliance), release: roonserver@207001665+earlyaccess
roonserver  | aac_fixed decoder found, checking libavcodec version...
roonserver  | has mp3float: 1, aac_fixed: 1
roonserver  | Running
roonserver  | Roon Docker image 1.0.7 starting.
roonserver  | Detected existing RoonServer install (branch: earlyaccess).
roonserver  | Resolved ROON_INSTALL_BRANCH='earlyaccess'.
roonserver  | Installed branch 'earlyaccess' matches requested branch; no reinstall needed.
roonserver  | Image:   1.0.7
roonserver  | Branch: earlyaccess
roonserver  | Roon:    2.70 (build 1665) earlyaccess
roonserver  | 00:00:00.001 Info:  get lock file path: /tmp/.rnsgem0-
roonserver  | 00:00:00.004 Info:  GetLockFile, fd: 74
roonserver  | 00:00:00.005 Info:  GetLockFile, res: 0
roonserver  | 00:00:00.005 Trace: Nope, we are the only one running
roonserver  | Initializing
roonserver  | Started
roonserver  | [Sentry] Initialized for RoonServer (appliance), release: roonserver@207001665+earlyaccess
roonserver  | aac_fixed decoder found, checking libavcodec version...
roonserver  | has mp3float: 1, aac_fixed: 1
roonserver  | Running

So it finally created the roonserver App. Not a lot of NAS resources usage (eg CPU utilisation and Memory utilisation are both low). Do I have to figure out Guest user privileges? I then started the Roon app on my Mac and iPhone. It now sees the newly created NAS roonserver (and notes Upgrade Required).

I click on that newly created roonserver - then nothing happens save for the screen changing to “Waiting for your Roon Server… Roon is still trying to connect, but it’s taking longer than normal etc etc.” I left my Mac app and the NAS on overnight. I have a similar experience when I try to use my iPhone to bring up Roon. All devices and NAS are on the same network. When I use Finder to see the NAS drives on the network, I need to login with my User account - so how to the Roon apps login? Do I need to figure out Guest user privileges for the Roon apps to connect?

I was expecting to see a lot of usage of the roonserver app in the Container Manager app status functions.

FYI I do not have a backup of my old roonserver (although I still have the old SDD card drive where the version of roonserver was installed).

Closer and closer…

Final Edit - changed to production from earlyaccess, as Roon clients were production version and not earlyaccess version. Now all up and running. Thank you all.