stream: make the web player installable as a PWA

Wire up a web manifest, service worker and icon routes so the player can
be installed on mobile. The static manifest stays generic; the page
regenerates it at runtime from STATION_NAME so an instance keeps its name.
The service worker only caches the app shell, never the live stream or the
playback APIs. Icons (192/512, maskable and apple-touch) are rasterized
from the favicon.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
nemunaire 2026-07-04 16:09:08 +08:00
commit c73b71d32f
10 changed files with 239 additions and 0 deletions

BIN
stream/icon-512.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB