Skip to content

florian-asche/docker-snapcast

 
 

Repository files navigation

docker-snapcast

CI GitHub Package Version GitHub License GitHub last commit GitHub Container Registry

This repository provides Docker images for Snapcast, a multi-room audio streaming solution. The images include both the Snapcast server and client components, allowing you to set up a synchronized audio streaming system across multiple devices.

Features

  • Pre-built Docker images for both Snapcast server and client
  • Uses Pipewire-client for audio server connectivity
  • Supports multiple architectures (linux/amd64 and linux/aarch64)
  • Automated builds with artifact attestation for security

For Raspberry Pi users: Check out PiCompose for a Pi-Ready image with pipewire-server (audio-server).

Usage

Available Docker Tags

  • latest: Latest stable release
  • nightly: Builds from the main branch (may be unstable)
  • Version-specific tags (e.g., 0.31.0-1__0.1): Stable releases

Snapcast Server

Home Assistant Integration

If you're using Home Assistant from Nabu Casa, we recommend using Music Assistant as a server in combination with snapcast client instead. It provides better integration and more features for audio streaming management in Home Assistant. An example configuration for the Snapcast server can be found in the docker-compose_server.yml file in this repository.

How to run

If you still want to run the snapcast server...

For a complete example configuration, check out the docker-compose_server.yml file in this repository.

To run the Snapcast server:

docker run --rm -it ghcr.io/florian-asche/docker-snapcast:latest

Snapcast Client

For a complete example configuration, check out the docker-compose_client.yml file in this repository.

To run the Snapcast client, specify the host ID and use the snapclient entrypoint:

docker run --rm -it \
  --network host \
  --device /dev/snd:/dev/snd \
  --device /dev/bus/usb \
  --group-add audio \
  -e START_SNAPCLIENT=true \
  -e PIPEWIRE_RUNTIME_DIR=/run \
  -e XDG_RUNTIME_DIR=/run \
  --volume /run/user/1000/pipewire-0:/run/pipewire-0 \
  --entrypoint=/usr/bin/snapclient \
  ghcr.io/florian-asche/docker-snapcast:latest \
  --hostID <place_example_snapcast_client_here> \
  --Soundcard pipewire \
  <tcp|ws|wss>://<snapserver host or IP>[:port]

Parameter Overview

Usage: snapclient [options...] [url] With 'url' = <tcp|ws|wss>://[:port]

Parameter Description
--network host Uses the host's network stack for better audio streaming performance
--device /dev/snd:/dev/snd Gives access to the host's sound devices
--device /dev/bus/usb Enables access to USB audio devices
--group-add audio Adds the container to the host's audio group for sound device access
-e START_SNAPCLIENT=true Ensures the Snapcast client starts automatically
-e PIPEWIRE_RUNTIME_DIR=/run Sets the Pipewire runtime directory
-e XDG_RUNTIME_DIR=/run Sets the XDG runtime directory for Pipewire
--volume /run/user/1000/pipewire-0:/run/pipewire-0 Mounts the Pipewire socket for audio streaming
--entrypoint=/usr/bin/snapclient Set the binary that should be started with the corresponding params
--hostID <name> Unique identifier for this client
--Soundcard pipewire Uses Pipewire as the audio backend
`<tcp ws

If you need more information about pipewire, you can find them here: piCompose - Pipewire debugging

Build Information

Image builds can be tracked in this repository's Actions tab, and utilize artifact attestation to certify provenance.

The Docker images are built using GitHub Actions, which provides:

  • Automated builds for different architectures
  • Artifact attestation for build provenance verification
  • Regular updates and maintenance

Build Process

The build process includes:

  • Multi-architecture support (linux/amd64 and linux/aarch64)
  • Security verification through artifact attestation
  • Automated testing and validation
  • Regular updates to maintain compatibility

For more information about the build process and available architectures, please refer to the Actions tab in this repository.

About

Docker image for the Snapcast server and client

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • Dockerfile 100.0%