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>
45 lines
2.2 KiB
Markdown
45 lines
2.2 KiB
Markdown
# 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.
|