Files
ansible/roles/pi_squeezeserver/README.md
Martin Bauer 831a1b50a4 Run the kiosk on Chromium, and take the stray media server off musicdolphin
Chromium: same page, same machine, idle, Firefox 24.2% of a core against Chromium's
11.4%. The build comes from archive.raspberrypi.com (a "+rpt" version) and is patched
for this board's V3D GPU; Debian ships a much older chromium, so the archive matters.
The whole userland here is 32-bit armhf on a 64-bit kernel, which Firefox handles worse
than Chromium does. --use-gl=egl, --enable-gpu-rasterization, --ignore-gpu-blocklist
and --enable-zero-copy are what keep rasterization on the GPU: Chromium's blocklist
does not recognise this driver and silently falls back to software without them.
pi_kiosk_browser: firefox still works, as the fallback if an update ever regresses.

Debug mode also gains xdotool, scrot and --remote-debugging-port=9222 (on 127.0.0.1),
because firing XTEST key events at a window lands about half the time and a benchmark
you cannot verify the state of is worse than none.

pi_squeezeserver gains an absent path, and mediapis.yml derives its state from
mediapi_has_squeezeserver, which defaults to false for the whole group. false means
"actively remove", not "skip": musicdolphin has been running a Logitech Media Server
that no playbook installs and nothing talks to - every squeezelite in the fleet points
at pi_squeezelite_squeezeserver (192.168.178.80, the server) - while costing ~30 MB
resident and ~47 MB of swap on a 2 GB Pi that also drives the kiosk. The absent path
stops it, purges the package, unregisters it from sysdweb, drops the port 80 -> 9000
redirect and deletes its database and logs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-20 15:13:16 +02:00

23 lines
1.1 KiB
Markdown

# pi_squeezeserver
The Logitech Media Server (`logitechmediaserver`, the daemon formerly known as
squeezeboxserver), plus its `pi_sysdweb` registration and a port 80 -> 9000 redirect.
`pi_squeezeserver_state` picks a direction:
- `present` - install it and run it (`tasks/present.yml`).
- `absent` - stop it, purge the package, unregister it from sysdweb, drop the iptables
redirect and delete `/var/lib/squeezeboxserver` and `/var/log/squeezeboxserver`
(`tasks/absent.yml`).
`mediapis.yml` derives the state from `mediapi_has_squeezeserver`, which defaults to
`false` in `group_vars/mediapis.yml`. That default is deliberate and is a policy, not
an oversight: **no media pi runs its own LMS.** Every `squeezelite` in the fleet is
pointed at `pi_squeezelite_squeezeserver` (192.168.178.80, the server) by
`inventory.yml`, so a server running on a pi has no clients. musicdolphin had one
anyway - left over from earlier provisioning, since no playbook has installed it - and
on a 2 GB Pi also driving a kiosk browser it was costing ~30 MB resident and ~47 MB of
swap for nothing.
Set `mediapi_has_squeezeserver: true` in a host's vars if one ever genuinely needs it.