This block provides an easy way to set up multiroom audio for your fleet of devices by using a pre-configured instance of Snapcast audio player. Use it in conjunction with the audio block for the best experience.
- Runs snapcast audio player (binaries for both server and client versions available)
- Pre-configured to work with balena audio block
We maintain images for this block on balenaHub Container Registry. The images can be accessed using:
bh.cr/g_tomas_migone1/multiroom-<arch>
or bhcr.io/g_tomas_migone1/multiroom-<arch>
where <arch>
is one of: rpi
, armv7hf
, aarch64
or amd64
.
For details on how to select a specific version or commit version of the image see our documentation.
To use in server mode, create a container in your docker-compose.yml
file as shown below:
version: '2'
services:
server:
image: bh.cr/g_tomas_migone1/multiroom-<arch> # where <arch> is one of rpi, armv7hf, aarch64 or amd64
command: /usr/bin/snapserver
ports:
- 1704:1704
- 1705:1705
- 1780:1780
To use in client mode, create a container in your docker-compose.yml
file as shown below:
version: '2'
services:
client:
image: bh.cr/g_tomas_migone1/multiroom-<arch> # where <arch> is one of rpi, armv7hf, aarch64 or amd64
command: [ "/usr/bin/snapclient", "--host", "<MULTIROOM_SERVER>" ] # "<MULTIROOM_SERVER>" is your multiroom server hostname or IP address
You can extend the multiroom
block to include custom configuration as you would with any other Dockerfile
. Just make sure you don't override the ENTRYPOINT
as it contains important system configuration.
Here are some of the most common extension cases:
- Pass a flag to the multiroom server (this won't work for client!):
FROM bh.cr/g_tomas_migone1/multiroom-aarch64
CMD [ "--datadir=/var/cache/snapcast" ]
- Start multiroom (client or server) from your own bash script:
FROM bh.cr/g_tomas_migone1/multiroom-aarch64
COPY start.sh /usr/src/start.sh
CMD [ "/bin/bash", "/usr/src/start.sh" ]
The multiroom block has been tested to work on the following device architectures:
- ARM v6 (
rpi
) - ARM v7 (
armv7hf
) - ARM v8 (
aarch64
) - x86_64 (
amd64
)