How to Install Roon Server on Unraid using Docker | Guide

Installing RoonServer on Unraid with Docker

This guide explains how to run the official Roon Server Docker image on Unraid using its built-in Docker interface.

Before you begin

Make sure your Unraid server has:

  • x86_64 / amd64 processor. ARM is not supported.

  • 4 GB RAM minimum.

  • Docker is enabled in Unraid.

  • Roon Remote devices on the same local network as the Unraid server.

Notes
Note: We strongly recommend storing the Roon database on SSD-backed storage for optimal performance. On Unraid, this usually means placing the /Roon folder on an SSD-backed cache pool rather than on the spinning disk array.

If you prefer using YAML configuration files, you can use Unraid's Docker Compose plugin. This is the recommended setup method because the configuration generator creates the exact file you need.

  1. Go to the Apps tab in Unraid (Community Apps) and install the Docker Compose (or Compose Manager) plugin.

  2. Open the Roon Docker Configuration Generator.

  3. Select Unraid as your platform.

  4. Enter your timezone and folder paths. It is strongly recommended that the Roon data path points to your SSD cache.

  5. Copy the generated Docker Compose output.

  6. In the Unraid web interface, navigate to the Docker Compose plugin interface.

  7. Create a new stack (e.g., roonserver).

  8. Paste the generated Compose YAML configuration.

  9. Start the stack. The plugin will automatically pull the image and map everything correctly.

Method 2: Adding manually via the Docker tab

This is the simplest option if you don't use the Docker Compose plugin and want to use Unraid's native UI.

  1. In the Unraid web interface, go to the Docker tab.

  2. Scroll to the bottom and click Add Container.

  3. Fill in the basic settings:

    • Template: leave as is

    • Name: RoonServer

    • Repository: ghcr.io/roonlabs/roonserver:latest

    • Network Type: Host

    • Privileged: leave as default (OFF)

  4. You will now need to map your paths and variables. Click Add another Path, Port, Variable, Label or Device for each of the following:

    • Database Path (SSD-backed storage strongly recommended):

      • Config Type: Path

      • Name: Database

      • Container Path: /Roon

      • Host Path: /mnt/user/appdata/roon (Ensure this share uses your SSD cache pool)

      • Access Mode: Read/Write

    • Music Library Path:

      • Config Type: Path

      • Name: Music

      • Container Path: /Music

      • Host Path: Your music share (e.g., /mnt/user/Music)

      • Access Mode: Read Only (Recommended)

    • Roon Backups Path:

      • Config Type: Path

      • Name: RoonBackups

      • Container Path: /RoonBackups

      • Host Path: Your backup share (e.g., /mnt/user/RoonBackups)

      • Access Mode: Read/Write

    • Timezone Variable:

      • Config Type: Variable

      • Name: Timezone

      • Key: TZ

      • Value: Your timezone (e.g., America/New_York or Europe/London)

  5. Enable Auto-start (the switch next to the Apply button) if you want the container to start with the server.

  6. Click Apply. Unraid will download the image and start your RoonServer container.

Storage mappings

RoonServer uses three main storage locations:

Purpose

Container path

Notes

Roon data

/Roon

RoonServer state: 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

Your local music library. This can usually be mounted read-only.

Roon backups

/RoonBackups

Optional but strongly recommended. Configure backups in Settings > Backups.

Required settings

  • Network Type must be set to Host. Host networking is required for Roon discovery. Without it, Roon Remote may not find the server, and the server may not discover audio endpoints on your network.

  • Auto-start is recommended so Roon Server starts again after the Unraid server reboots.

Release Branches

Two release branches are available:

  • production — stable releases. This is the default and does not require extra configuration.

  • earlyaccess — pre-release builds, updated more frequently.

If you are using Method 1 (Compose), you can set this via the configuration generator. If using Method 2, add an environment variable named ROON_INSTALL_BRANCH with the value earlyaccess. Switching channels takes effect on the next container restart.

Migrating from a Native Installation

If you are moving an existing Roon installation into Docker, use Roon's built-in backup and restore:

  1. In your current native Roon installation, disable all watched storage folders (Settings > Storage). This avoids path conflicts after migration.

  2. Create a backup (Settings > Backups > Back Up Now).

  3. Stop your old Roon Server.

  4. Copy the backup to a location accessible from your new Docker host mapping (e.g., your /RoonBackups folder).

  5. Start the new Docker container. On first launch, it will prompt you to set up or restore.

  6. Choose Restore and point it to the backup.

  7. Once the restore is complete, edit your music folders' paths with the paths as they appear inside the Docker container (i.e., /Music).

After installation

After the container starts:

  1. Confirm the container is running on the Docker tab.

  2. Open Roon on your phone, tablet, or computer.

  3. Make sure the device is on the same local network as the Unraid server.

  4. Select the Roon Server running on Unraid.

  5. Set up a new Roon Server or restore from backup.

  6. Go to Settings > Storage and confirm your music folder is visible.

Common issues

Roon Remote cannot find Roon Server Confirm that Network Type is set to Host and that your Roon Remote device is on the same local network as the Unraid server.

Performance is poor Confirm that the /Roon mapping points to an SSD-backed cache pool. For the best experience, the Roon database should not live on a spinning disk array.

Music folder is missing Confirm that the Unraid host path exists and is mapped to /Music inside the container. In Roon, use the container path, not the Unraid host path.

Container does not start after reboot Confirm that Auto-start is enabled for the container in the Docker tab.

    • Related Articles

    • Roon Server on NAS

      Roon Server requires a more powerful processor than most media servers due to our architecture. Historically, most NAS devices have not been powerful enough to deliver a first-class experience with Roon, but an increasing number are becoming capable. ...
    • RoonServer on Docker

      RoonServer can run in Docker using the official RoonServer image from GitHub Container Registry. This is the recommended containerized setup for Linux, NAS devices, home servers, and other systems where Docker provides a practical way to run and ...
    • Installing RoonServer on Synology with Docker

      This guide explains how to run the official Roon Server Docker image on a Synology NAS. The setup process depends on your DSM (DiskStation Manager) version. Before you begin Make sure your Synology NAS has: Container Manager (for DSM 7.2 or later) OR ...
    • Installing RoonServer on ASUSTOR with Docker

      This guide explains how to run the official Roon Server Docker image on an ASUSTOR NAS using Portainer. Useful Links: GitHub repository: https://github.com/RoonLabs/roon-docker Configuration generator: https://roonlabs.github.io/roon-docker/ Before ...
    • Installing RoonServer on QNAP with Docker

      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. Before you begin Make sure your QNAP NAS has: Container Station installed from ...
    Visit the Roon Community!
    Need help? Thousands of Roon subscribers and audio enthusiasts are chatting over on our community site right now, join them! You don't even need a Roon subscription to sign up.