Music-reactive lighting for Philips Hue and WLED. Needs --network host.
1.9K
DJ-style visual effects for Philips Hue, driven by whatever is playing. Beat, bars, build-ups, drops and strobe — the effects engine is carried byte-for-byte from Music Assistant's Hue provider, so a setup tuned there behaves identically here.
docker run -d --name tunethathue --network host \
-v tunethathue:/config \
silasmariusz/tunethathue:latest
Then open http://:8080, pair the bridge, pick a room, press Sync.
--network host is required — bridge mode will not workThis is not a preference, and it is the one thing that catches people out.
Every way this container is found uses multicast or broadcast:
| Input | How it is discovered |
|---|---|
| Sendspin (Music Assistant) | mDNS |
| DLNA / UPnP renderer | SSDP multicast on 239.255.255.250 |
| Squeezebox / slimproto | UDP broadcast on port 3483 |
| Snapcast | (outbound — this one works anywhere) |
Docker's default bridge network does not forward multicast or broadcast between the container and your LAN. On bridge, the container starts, the panel opens, and then nothing ever finds it: Music Assistant will not list it, no DLNA controller will see it, and no Squeezebox server will answer. Publishing ports does not fix this — there is nothing to publish, because the discovery never reaches the container in the first place.
If you want the container isolated with its own IP, use a macvlan network instead.
That gives it a real address on your LAN, so multicast works:
docker network create -d macvlan \
--subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 lan
docker run -d --name tunethathue --network lan --ip 192.168.1.50 \
-v tunethathue:/config silasmariusz/tunethathue:latest
| Port | For |
|---|---|
| 8080/tcp | the browser panel |
| 6980/udp | VBAN — the Winamp, foobar2000, AIMP and sound-capture senders |
| 8928/tcp | Sendspin |
| 1900/udp | SSDP, for the DLNA renderer |
| 3483/udp + 3483/tcp | Squeezebox discovery and control |
Outbound it talks to the Hue bridge (DTLS, 2100/udp) and, optionally, to a WLED strip (21324/udp).
Everything lives in /config, so upgrading is a new image and nothing else. The paired
bridge credentials are in there too — keep the volume and you keep the pairing.
linux/amd64 and linux/arm64. Not 32-bit ARM: NumPy publishes no build for it on
Python 3.14, and the beat tracker needs NumPy. A 32-bit Raspberry Pi should use the
64-bit OS image, or install natively from the
releases page.
https://github.com/silasmariusz/TuneThatHue
Also packaged for QNAP NAS (.qpkg), Windows (service + tray), Linux (systemd) and
macOS (launchd).
Not affiliated with, endorsed by, or sponsored by Signify / Philips Hue.
Content type
Image
Digest
sha256:184573b1d…
Size
242.5 MB
Last updated
about 14 hours ago
docker pull silasmariusz/tunethathue