This guide explains how to run the official RoonServer Docker image on a QNAP NAS using Container Station.
Source: QNAP documentation: Container Station Quick Start Guide.
Make sure your QNAP NAS has:
Container Station installed from App Center.
x86_64 / amd64 processor. ARM is not supported.
4 GB RAM minimum.
SSD-backed storage is strongly recommended for the Roon database.
Roon Remote devices on the same local network as the QNAP NAS.
Open App Center on your QNAP NAS.
Search for Container Station.
Click Install.
Follow the setup prompts.
If QNAP asks where to install Container Station, select the storage volume where you want the Container Station data to live.

Note: depending on the QNAP storage setup, especially thick or thin volumes, Container Station may ask you to select the partition or volume where the app will be installed during setup.
After installation is complete, open Container Station.
Open Container Station.
In the top bar near the Explore button, unwind the dropdown list.
Click Create Application.
Generate the Roon Docker Configuration Generator: https://roonlabs.github.io/roon-docker/
In Platform, select QNAP from the dropdown.
In Volumes, leave the default entries as they are unless you need to add more folders.
If you need to add another folder, click the + button.
In Options, select the items you need.
Verify that the correct timezone was selected.
Do not disable the recommended options unless you understand the impact.
Click the Copy button in the upper-right corner to copy the generated Docker Compose file.
Return to Container Station.
In the Application name input field, replace the default value, usually app-1, with the name you want to use for this RoonServer container.
Recommended example: roon-server
In the YAML code section, paste the Docker Compose file you copied from the generator.
Click Validate.
If the YAML is valid, you should see a green checkmark.

If validation fails, review the YAML and confirm that the copied content is complete.
Click Create at the bottom of the modal.
Wait for the background task to finish.
You should see a task similar to:
When the task is complete, the RoonServer container should appear as running.
Open Roon on your phone, tablet, or computer.
Make sure the device is on the same local network as the QNAP NAS.
On the Choose your Roon Server screen.
Select the RoonServer.
Connect and continue setup.
If you are migrating from an existing RoonServer installation, choose Restore from Backup during setup.

The generated Compose file should include mappings for the main Roon folders:
Roon data | /Roon | Stores the Roon database, settings, identity, logs, and application files. Must be writable and persistent. SSD-backed storage is strongly recommended for the best experience. |
Music library | /Music | Points to your local music library. This can usually be mounted read-only. |
Roon backups | /RoonBackups | Optional but strongly recommended. Configure backups in Roon under Settings > Backups. |

Only edit the QNAP host paths if needed. Do not change /Roon, /Music, or /RoonBackups unless you know why you are changing them.
Make sure the generated configuration keeps the recommended settings enabled.
The most important one is host networking. Host networking is required for Roon discovery. Without it, Roon Remote may not find RoonServer, and RoonServer may not discover audio devices on your network.
Confirm that the full Docker Compose file was copied from the generator and pasted into the YAML code section.
Confirm that the container is running, host networking is enabled, and your Roon Remote device is on the same local network as the QNAP NAS.
Confirm that the /Roon mapping points to SSD-backed storage when possible. The Roon database should not live on a spinning disk if you want the best experience.
Confirm that the QNAP host folder exists and is mapped to /Music inside the container. In Roon, use the container path, not the QNAP host path.