Roon Server On QNAP Container Station

I just started my 11 week trial for Roon, added a SSD like recommended to my NAS (QNAP TS-451D2) and installed Roon Server from these instructions:

I have no experience with Docker.

I’m stuck at Step 3 - how can I make sure that the database will be located on the SSD, which has been mounted as /DEV3302_2

?

As far as I can see this should be configured in this section from the docker-compose.yml

volumes:
- /share/Container/roon:/Roon
- /share/Musik/MP3:/Music
- /share/Container/roon-backups:/RoonBackups

You need to go to QNAP´s desktop, under Systemsteuerung > Berechtigung > Freigabeordner it will tell you under which volume the top-level folder /Container is mounted. You can alter this and move the folder to the SSD-based volume, if necessary.

The first share path in docker compose will install Roon Server under the /Container folder, and this automatically means having the database in there as well:

/share/Container/roon:/Roon

Thanks for your reply.

This is how it looks like:

The blue information bubble is saying that this shared folder cannot be changed or removed.

So I should change the first share path in cocker compose from

/share/Container/roon:/Roon to /share/Roon?

Is it possible that you don´t have any internal SSD volume formatted and mounted correctly? Can you route other shared folders than /Container, to internal SSD volume? It would not work on an external volume such as a USB drive.

/share/Roon:/Roon

That is one possibility that should work (having Container Station data and roon container separated). Note that in this case containerized Roon Server application plus its internal database is sitting on an external volume connected via USB, which is not as snappy as internal SSD. You might want to make sure that the flashdrive is really really fast, and watch for future degradation as roon is writing a lot into the same sectors where the database resides.

Correct. In

it says:

If your NAS does not have a free slot for an SSD, you can use an SSD via an external enclosure connected via eSATA or USB 3.0.

So what’s true now?

You can install Roon Server plus its internal database in a container on an external USB volume. You just have to create this folder, which you apparently did, named /Roon on external volume Dev1Partition2.

Note that you cannot mount the /Container folder, as used by Container Station, on an external USB volume! Container station data and roon container exist separately in this case, which I can confirm that it is working.

That is the reason why the share folder path beginning with /share/Container does not work in your case. You need to adjust the first share path in docker compose to the folder on the USB volume, try:

/share/Dev1Partition2/Roon:/Roon

or

/Share/Roon:/Roon

(The latter works solely if the mounted folder sharable)

Good luck!

Thank you, it looks like it worked, there are several new folders and subfolders in the Roon source folder now - but the stauts of the application keeps changing from “Running” to “Others” every minute.

Of course I cannot find the server in the Roon app under these circumstances.

EDIT: From the log:

Roon Docker image 1.0.6 starting.
Detected existing RoonServer install (branch: production).
Resolved ROON_INSTALL_BRANCH=‘production’.
Installed branch ‘production’ matches requested branch; no reinstall needed.
Image: 1.0.6
Branch: production
Roon: 2.66 (build 1658) production
/entrypoint.sh: line 148: /Roon/app/RoonServer/start.sh: Permission denied
Roon Docker image 1.0.6 starting.
Detected existing RoonServer install (branch: production).
Resolved ROON_INSTALL_BRANCH=‘production’.
Installed branch ‘production’ matches requested branch; no reinstall needed.
Image: 1.0.6
Branch: production
Roon: 2.66 (build 1658) production
/entrypoint.sh: line 148: /Roon/app/RoonServer/start.sh: Permission denied
Roon Docker image 1.0.6 starting.
Detected existing RoonServer install (branch: production).
Resolved ROON_INSTALL_BRANCH=‘production’.
Installed branch ‘production’ matches requested branch; no reinstall needed.
Image: 1.0.6
Branch: production
Roon: 2.66 (build 1658) production
/entrypoint.sh: line 148: /Roon/app/RoonServer/start.sh: Permission denied

ls -lsa

total 48
4 drwxr-xr-x 5 admin administrators 4096 2026-05-01 14:34 ./
4 drwxr-xr-x 3 admin administrators 4096 2026-05-26 01:02 ../
20 drwxr-xr-x 3 admin administrators 20480 2026-05-01 14:34 Appliance/
4 -rwxr-xr-x 1 admin administrators 2681 2026-05-01 14:34 check.sh*
4 drwxr-xr-x 4 admin administrators 4096 2026-05-26 01:02 RoonDotnet/
4 drwxr-xr-x 2 admin administrators 4096 2026-05-01 14:34 Server/
4 -rwxr-xr-x 1 admin administrators 1336 2026-05-01 14:34 start.sh*
4 -rw-r–r-- 1 admin administrators 49 2026-05-01 14:34 VERSION

This, together with the “Premision denied” sounds unhealthy to me.

Could you pls check the overview page of Container Station? If roon application is running in the container on flashdrive, it should show some RAM utilization on this page.

No RAM utilization there.

An indication that something went wrong before the application in the container could start up.

Could you share the volume lines of your .YML docker script please, and what happened in the /Roon folder on the drive? It would also be helpful to check which volume names the USB drive might have on system level, in case the shared folder mount did not work properly. On QTS desktop top menu line is an icon dedicated to external volumes, which gives you the name more accurately than Shared Folders or File Station.

Two more things:

  • Did you format the external USB drive under Linux/QTS? It must be EXT4 system. Any other, like exFAT or FAT32, would not do (not sure about EXT3, though, if it permits sufficiently complex folder hierarchy for roon´s database)
  • could you check the permission properties in Control Panel > Shared folders pls? The folder /Roon must allow read and write, preferably for all users

Don´t loose hope, we will solve it!

Okay, that was it!
The drive was NTFS, I reformatted it, removed the application and created a new one - it’s working now!