dubo-dubon-duponey / docker-homekit-volume

Homekit-alsa container for amd64, arm64, arm/v7, arm/v6 (based on debian:buster-slim)

Home Page:https://hub.docker.com/r/dubodubonduponey/homekit-alsa

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

<!> Archived - this is fine, but I no longer have a use for this and lost interest <!>

What

Docker image to expose a Homekit accessory controlling the volume of a host running Alsa - typically a raspberry pie.

This is based on HomeKit Alsa.

Image features

  • multi-architecture:

    • linux/amd64
    • linux/arm64
    • linux/arm/v7
    • linux/arm/v6
  • hardened:

    • image runs read-only
    • image runs with no capabilities (unless you want it on a privileged port, in which case you need to grant NET_BIND_SERVICE)
    • process runs as a non-root user, disabled login, no shell
    • binaries are compiled with PIE, bind now, stack protection, fortify source and read-only relocations (additionally stack clash protection on amd64)
  • lightweight

    • based on our slim Debian bullseye version
    • simple entrypoint script
    • multi-stage build with no installed dependencies for the runtime image
  • observable

    • healthcheck
    • log to stdout
    • prometheus endpoint
  • unsupported / not enabled:

    • linux/386: probably builds, disabled by default
    • linux/ppc64: alsa SwParams does not build
    • linux/s390x: alsa SwParams does not build

Run

docker run -d --rm \
    --name "speaker" \
    --env HOMEKIT_NAME="My Fancy Speaker" \
    --env HOMEKIT_PIN="87654312" \
    --volume /data \
    --group-add audio \
    --device /dev/snd \
    --net host \
    --cap-drop ALL \
    --read-only \
    dubodubonduponey/homekit-volume

Notes

Networking

You need to run this in host or mac(or ip)vlan networking (because of mDNS).

Additional arguments

Any additional arguments when running the image will get fed to the homekit-alsa binary.

Try --help for more.

Custom configuration

All configuration is done through environment variables, specifically:

ENV           ALSA_CARD=""
ENV           ALSA_DEVICE=""

ENV           HOMEKIT_NAME="Speak-easy"
ENV           HOMEKIT_PIN="87654312"
ENV           HOMEKIT_MANUFACTURER="DuboDubonDuponey"
ENV           HOMEKIT_SERIAL=""
ENV           HOMEKIT_MODEL="Acme"
ENV           HOMEKIT_VERSION="0"

Moar?

See DEVELOP.md

About

Homekit-alsa container for amd64, arm64, arm/v7, arm/v6 (based on debian:buster-slim)

https://hub.docker.com/r/dubodubonduponey/homekit-alsa

License:MIT License


Languages

Language:CUE 71.1%Language:Shell 14.8%Language:Dockerfile 14.1%