Player-UI (playerserver): - Lokale Kiosk-Seite unter /player mit orientierungsgerechtem Splash-Bild - Splash-PNGs (Portrait/Landscape) eingebettet via go:embed - Unteres-Drittel-Overlay mit erweiterbaren Sysinfo-Items (Hostname, Uptime) - /api/now-playing und /api/sysinfo JSON-Endpunkte - iframe-Overlay fuer spaetere Inhalts-URL Ansible-Rolle signage_display (neu): - Pakete: xserver-xorg-core, xinit, openbox, chromium, unclutter - Kiosk-Skript mit openbox als WM (noetig fuer korrektes --kiosk-Vollbild) - systemd-Unit mit Conflicts=getty@tty1 (behebt TTY-Blockierung beim Start) - Chromium Managed Policy: TranslateEnabled=false, Notifications/Geolocation blockiert - --lang=de Flag gegen Sprachauswahl-Dialog Ansible-Rolle signage_player (erweitert): - Legt signage_user an falls nicht vorhanden - PlayerListenAddr und PlayerContentURL in Konfiguration - journald volatile Storage (SD-Karten-Schonung) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
18 lines
582 B
Markdown
18 lines
582 B
Markdown
# Agent
|
||
|
||
Lokaler Dienst auf dem Signage-Geraet.
|
||
|
||
## Aufgaben
|
||
|
||
- periodischer HTTP-Statusreport an den Server
|
||
- optionaler MQTT-Heartbeat (wird uebersprungen wenn kein Broker konfiguriert)
|
||
- lokale Player-UI unter `http://127.0.0.1:8090/player`
|
||
- JSON-Statusendpunkt unter `http://127.0.0.1:8090/api/now-playing`
|
||
|
||
## Unterstruktur
|
||
|
||
- `cmd/agent/` – Startpunkt
|
||
- `internal/app/` – Initialisierung und Laufzeit
|
||
- `internal/config/` – Konfiguration (Env + JSON-Datei)
|
||
- `internal/mqttheartbeat/` – MQTT-Publisher
|
||
- `internal/playerserver/` – lokaler HTTP-Server fuer Kiosk-UI
|