# FlowerCore Divoom TV Pi HDMI Source-controlled deploy shape for the native `FlowerCore.Divoom.Tv` Avalonia HDMI renderer on a Raspberry Pi connected to a TV. This is a Puppet/systemd appliance bundle, not a Kubernetes application. It mirrors the existing `fc-signage-pi-player` pattern: bluejay-infra carries the systemd units, scripts, Hiera shape, and Puppet profile source that `FlowerCore.Puppet` vendors and installs. ## Scope - Launch the future `FlowerCore.Divoom.Tv` linux-arm64 self-contained payload from `/opt/flowercore/divoom-tv/FlowerCore.Divoom.Tv`. - Prefer `cage` as the Wayland fullscreen compositor, with direct app launch as a fallback for development images. - Restart the app after HDMI hotplug with a 2 second DRM settle delay. - Keep all runtime state local: `/var/lib/fc-divoom-tv` and `/var/log/fc-divoom-tv`. - Avoid CDN/runtime fetches; the app renders the in-house Divoom scene catalog locally. ## Artifact Map | Path | Use | | --- | --- | | `systemd/flowercore-divoom-tv.service` | Fullscreen Avalonia HDMI app service. | | `systemd/flowercore-divoom-tv-hdmi.service` | HDMI hotplug responder service. | | `systemd/99-flowercore-divoom-tv-hdmi.rules` | DRM udev hotplug rule. | | `scripts/flowercore-divoom-tv-prelaunch.sh` | Preflight checks and local directory creation. | | `scripts/flowercore-divoom-tv-launch.sh` | Cage-first fullscreen launcher. | | `scripts/flowercore-divoom-tv-hdmi-respond.sh` | Hotplug settle and restart script. | | `puppet/profile/pi/service/divoom_tv.pp` | Puppet profile shape to vendor into `FlowerCore.Puppet`. | | `hiera/example-divoom-tv-pi.iamworkin.lan.yaml` | Example node Hiera for a Divoom TV Pi. | ## Rollout Notes 1. Build `FlowerCore.Divoom.Tv` with `dotnet.exe publish -c Release -r linux-arm64 --self-contained`. 2. Stage the payload to `/opt/flowercore/divoom-tv/` through the standard noc1 jump path and avoid `/tmp` for unprivileged Pi scratch. 3. Vendor the profile and static files into `FlowerCore.Puppet`. 4. Run Puppet noop, then apply on the target Pi. 5. Prove deployment with `systemctl is-active flowercore-divoom-tv.service`, journal lines showing frames presented, and a visible HDMI display check.