Add source-controlled Puppet/Hiera contracts for edge2 Divoom-as-DM-device without replacing the live flowercore-divoom systemd deployment. Add Divoom TV Pi HDMI systemd/Puppet deployment artifacts, LF shell-script guardrails, and focused lint coverage for the additive non-K8s deploy shape. Co-Authored-By: Codex <codex@openai.com>
2.2 KiB
2.2 KiB
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.Tvlinux-arm64 self-contained payload from/opt/flowercore/divoom-tv/FlowerCore.Divoom.Tv. - Prefer
cageas 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-tvand/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
- Build
FlowerCore.Divoom.Tvwithdotnet.exe publish -c Release -r linux-arm64 --self-contained. - Stage the payload to
/opt/flowercore/divoom-tv/through the standard noc1 jump path and avoid/tmpfor unprivileged Pi scratch. - Vendor the profile and static files into
FlowerCore.Puppet. - Run Puppet noop, then apply on the target Pi.
- Prove deployment with
systemctl is-active flowercore-divoom-tv.service, journal lines showing frames presented, and a visible HDMI display check.