Sign inSign up

tigerj/shairport-sync

By tigerj

•Updated over 6 years ago

Multi-arch dockerized shairport-sync

Image
6

100K+

tigerj/shairport-sync repository overview

⁠About

Modified source code from: https://github.com/kevineye/docker-shairport-sync⁠

⁠Intro

shairport-sync⁠ is an Apple AirPlay receiver. It can receive audio directly from iOS devices, iTunes, etc. Multiple instances of shairport-sync will stay in sync with each other and other AirPlay devices when used with a compatible multi-room player, such as iTunes or forked-daapd⁠.

⁠Multi-arch Image

The below commands reference a Docker Manifest List⁠ at tigerj/shairport-sync⁠ built using Docker's BuildKit⁠. Simply running commands using this image will pull the matching image architecture (e.g. amd64, arm32v7, or arm64) based on the hosts architecture. Hence, if you are on a Raspberry Pi the below commands will work the same as if you were on a traditional amd64 desktop/laptop computer.

⁠Run

To simply run a container from the image in daemon mode:

docker run \
       -d \
       --restart=always \
       --net=host \
       --device /dev/snd \
       -e AIRPLAY_NAME=shairport-sync \
       tigerj/shairport-sync

⁠Create

To create a container from the image (for later use):

docker create \
       --restart=always \
       --name=shairport-sync \
       --net=host \
       --device /dev/snd \
       -e AIRPLAY_NAME="shairport-sync" \
       tigerj/shairport-sync

Then run this container by name using docker start:

docker start shairport-sync
⁠Parameters
  • --net host must be run in host mode
  • --device /dev/snd share host alsa system with container. Does not require --privileged as -v /dev/snd:/dev/snd would
  • -e AIRPLAY_NAME=Docker set the AirPlay device name. If unset it defaults to "Docker"
  • extra arguments will be passed to shairplay-sync (try -- help)

⁠Troubleshooting

A few little tips for getting your setup working

⁠Configure Audio Group Access

To set the volume max on your system, please make sure you are first in the audio group by running the command:

$ groups $USER
USER: USER sudo audio docker

If your output contains the audio group, then you already have access. If not then run the following:

sudo usermod -a -G audio $USER

This will add $USER to the audio group (and assumes you have sudo privileges). NOTE: you must reboot for this change to take effect!

⁠Linux Volume Level

Assuming you have audio group privileges (see Configure Audio Group Access⁠), you can adjust the volume on linux with the alsamixer command:

$ alsamixer

which will bring up the following screen:

alsamixer 100%

Simply use the UP/DOWN arrow keys to set the volume to what you want (here it has been set to 100%).

Tag summary

Content type

Image

Digest

Size

4.8 MB

Last updated

over 6 years ago

docker pull tigerj/shairport-sync