giof71/roon-bridge

By giof71

Updated 5 days ago

Easily run roon bridge.

Image
Networking
2

10K+

giof71/roon-bridge repository overview

Roon Bridge on Docker

RepoURL
Source codeGitHub
Docker imagesDocker Hub

Support

ko-fi
Please see the Goal.
Please note that support goal is limited to cover running costs for subscriptions to music services.

Available Archs on Docker Hub

  • linux/amd64
  • linux/arm64/v8
  • linux/arm/v7
Install Docker

Docker is a prerequisite. On debian and derived distributions (this includes Raspberry Pi OS, DietPi, Moode Audio, Volumio, OSMC), we can install the necessary packages using the following commands:

sudo apt-get update
sudo apt-get install -y docker.io docker-compose
sudo usermod -a -G docker $USER

The last command adds the current user to the docker group. This is not mandatory; if you choose to skip this step, you might need to execute docker-compose commands by prepending sudo.
Please note that this is not necessarily the best way of installing docker on your machine. First of all, the suggested method installs the packages from the distribution repositories. You might prefer to install from the docker repositories in order to have a more updated version.
You can use this solution with Podman as well. See this discussion.

Build docker image

Use the included script to build the image:

./build.sh

Environment Variables

VariableDescription
BASE_URLIf set, files are downloaded from that URL instead of from the roon servers
FORCE_ARCHIf set, we are using the value instead of uname -m when selecting the binary file to use/download. This can be useful for example with LibreElec or OSMC on the Pi4, which have a 64bit kernel (aarch64) but a 32bit docker version: in this situation, then container starts but then the binary does not work. Setting this variable to armv7l solved the issue for me. Possible values are aarch64, armv7l and x86_64.

Volumes

VolumeDescription
/filesIf set, we try and see if the volume contains the files that would instead be downloaded. Setting this volume can speed up the startup phase slightly.

Example

You can use the published images or the one you build by yourself. See the repo here.

Docker Run
docker run \
    -d \
    --name roon-bridge \
    --restart always \
    --network host \
    --device /dev/snd \
    --label com.centurylinklabs.watchtower.enable=false \
    giof71/roon-bridge:latest
Docker Compose
---
version: "3"

services:
  roon-bridge:
    container_name: roon-bridge
    image: giof71/roon-bridge:latest
    network_mode: host
    devices:
      - /dev/snd:/dev/snd
    labels:
      - com.centurylinklabs.watchtower.enable=false
    restart: always
Disabling watchtower

Watchtower is an excellent tool, but it can disrupt your listening experience if an image update can trigger a container recreation.
I am therefore keeping watchtower disabled in my examples.

Installation on Moode Audio or Volumio

It is possible to use this solution for easy installation of Roon Bridge on Moode Audio and Volumio.
It is required to have a ssh connection to the Moode/Volumio audio box. In order to enable ssh on Volumio, refer to this page.
Those two platforms do not ship docker out of the box (unsurprisingly), so docker installation is required. See Docker Installation earlier in this page.

Changelog

DateDescription
2025-02-16Dockerfile cleanup
2025-02-12Bump to debian stable (for real this time!)
2023-09-28Switch to debian stable by default (see #20)
2023-03-29Allow BASE_URL as alternate source for downloads
2023-03-29Removed /roon mountpoint for ease of use
2023-03-29Add volume /files for providing the necessary binary files (avoid downloads)
2023-03-27Added FORCE_ARCH variable

Tag summary

Content type

Image

Digest

sha256:3995c87ab

Size

40.1 MB

Last updated

5 days ago

docker pull giof71/roon-bridge:daily-stable