Skip to content

RoonLabs/roon-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RoonServer Docker Image

Official Docker image for RoonServer.

ghcr.io/roonlabs/roonserver

Note: This image is amd64 (x86_64) only. ARM-based devices (Raspberry Pi, ARM NAS models like Synology J-series) are not supported.

Quick Start

Use the Docker Setup Guide to generate a docker run or docker compose command tailored to your system.

On first start, the container downloads and installs RoonServer automatically. Subsequent starts skip the download and launch immediately.

Requirements

  • Linux host (amd64 / x86_64) — NAS devices (Synology, QNAP, Unraid, TrueNAS) work well
  • Host networking (--net=host) — required for Roon's multicast device discovery
  • Restart policy (--restart unless-stopped) — Roon exits with code 122 to request restarts
  • Init process (--init) — ensures clean signal handling and zombie process reaping
  • Stop timeout (--stop-timeout 45) — gives Roon time to flush its database on shutdown

Docker Desktop for macOS and Windows does not support multicast and will not work for production use.

Networking

Roon requires host networking (--net=host) for multicast device discovery. Bridge networking will not work. No port mapping (-p) is needed.

Timezone

Set the TZ environment variable to your timezone. This ensures correct timestamps in Roon logs, last.fm scrobbles, and backup schedules.

Environment Variables

Variable Default Purpose
TZ UTC Timezone for logs and schedules
ROON_DATAROOT /Roon/data Data directory (set in image, don't change)
ROON_ID_DIR /Roon/data Identity directory (set in image, don't change)
ROON_CHANNEL production Release channel: production or earlyaccess
ROON_DOWNLOAD_URL (default CDN) Override the RoonServer download URL

Volumes

All Roon state lives under a single /Roon mount:

Path Purpose
/Roon/data Database, settings, cache, and identity
/Roon/backup Roon backup destination
/Roon/app Downloaded RoonServer binaries
/music Your music library (mounted read-only)
-v /Roon:/Roon \
-v /Music:/music:ro

The /Roon/data directory is critical. If this volume is lost:

  • Your Roon data and settings are lost unless they can be restored from a Roon backup
  • The server will appear as a new machine and must be re-authorized from a Roon remote

Always back up your /Roon volume. We recommend using Roon's built-in backup feature in Settings > Backups, with /Roon/backup as the backup destination

Updating

RoonServer updates itself automatically. When an update is available, the container will download and apply it — no action needed.

Updates persist across docker stop / docker start. If you recreate the container (docker rm + docker run), RoonServer will be re-downloaded from the configured release channel on first start.

Release Channel

RoonServer has two release channels:

Channel ROON_CHANNEL Community
Production production (default) Roon
Early Access earlyaccess Early Access

Set ROON_CHANNEL to change the channel. The channel determines which version of RoonServer is downloaded on first start, and Roon's self-updater continues on the same channel automatically.

Changing channels on an existing install is safe — the container removes the old binaries and downloads from the new channel. Your data, settings, and identity are preserved.

Troubleshooting

Container exits immediately — check /Roon is mounted and writable.

Remotes can't find the server — verify --net=host is set. Bridge networking doesn't support multicast discovery.

High CPU after first start — background audio analysis runs after importing a library. Adjust speed in Settings > Library.

First start is slow — RoonServer (~200MB) is downloaded on first run. Subsequent starts are instant.

Logsdocker logs roonserver or inside the volume at /Roon/data/RoonServer/Logs/.

License

Copyright Roon Labs LLC. All rights reserved.

About

Official Docker image for Roon Server. Use the setup guide to generate a docker run or docker compose command for your system.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors