Files
rothmanandClaude Opus 5.5 eb0242c182
CI / test-bookworm (push) Successful in 29s
CI / test-latest (push) Successful in 31s
Rename every remaining voxip name to daynivo, with a one-time migration
Services (daynivo-kiosk-*, daynivo-network-guard, daynivo-boot-import),
programs in /usr/lib/daynivo-kiosk, folders /etc, /var/lib, /var/log and
/var/cache daynivo-kiosk*, the system user daynivo, DAYNIVO_* settings,
the plymouth theme, network profiles daynivo-eth0/wlan0, the image stage
and its first user daynivoadmin.

install.sh moves a kiosk installed up to 1.2.x over once: old services
stopped and removed, folders moved (configuration, password, browser
profile, logs) with symlinks under the old names, the voxip user renamed
with the same uid, network profiles renamed unless a change awaits
confirmation, and old leftovers removed. Tested by upgrading a configured
1.2.0 installation in a container, and running the install a second time.

Old names keep working where people type or place them: voxip-config.json,
voxip-authorized_keys, voxip-network-reset, voxip-kiosk-ctl, and
VOXIP_DEFAULT_URL / VOXIP_DEVICE_NAME for image builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 23:58:03 +01:00

7.2 KiB
Raw Permalink Blame History

Testprocedure op Raspberry Pi 3-hardware

De geautomatiseerde tests (make test, make test-bookworm) dekken de configuratie, validatie, de webinterface, de helper (inclusief netwerk-rollback), de agent en de healthcheck. Wat alleen op echte hardware te controleren is, staat hieronder. Voer dit uit voor iedere nieuwe release en voor elk nieuw type scherm.

Benodigd: Raspberry Pi 3 Model B of B+, officiële voeding (5,1 V/2,5 A), nieuwe microSD-kaart van 16 GB of groter, HDMI-monitor, ethernetkabel, een wifi-netwerk, een laptop op hetzelfde netwerk.

Noteer per stap: ✅ / ❌ + opmerking, de imageversie en het schermtype.

1. Flashen en eerste boot

  • Schrijf de .img.xz met Raspberry Pi Imager zonder OS-aanpassingen.
  • Eerste boot: de rootpartitie wordt vergroot (df -h / toont later ongeveer de kaartgrootte). De Pi herstart zichzelf eenmaal.
  • Binnen 90 s na stroom aan verschijnt het setupscherm met de setupcode, http://kiosk.local:8080 en het IP-adres. Er is geen muiscursor en er zijn geen dialoogvensters.
  • SSH is uit (ssh daynivoadmin@kiosk.local wordt geweigerd), en er is geen bruikbaar standaardwachtwoord.

2. Initiële configuratie

  • http://kiosk.local:8080 en http://<ip>:8080 tonen de setuppagina.
  • Een verkeerde setupcode wordt geweigerd. Na 5 pogingen volgt een wachttijd.
  • Een zwak wachtwoord (admin12345) wordt geweigerd.
  • Met de juiste code en een sterk wachtwoord: dashboard. Het scherm schakelt binnen 10 s naar de kiosk-URL.
  • De setupcode werkt daarna niet meer (/setup stuurt door).

3. Kiosk

  • De pagina is fullscreen, zonder adresbalk, scrollbalk-pop-ups, vertaalbalk of "Chromium is niet correct afgesloten".
  • Na 30 minuten is het scherm niet gedimd of zwart geworden.
  • Pagina herladen (dashboard): de pagina herlaadt binnen 2 s, zonder zwart scherm (Chromium herstart niet).
  • Chromium herstarten: kort zwart scherm, binnen 15 s weer de pagina.
  • Een andere URL instellen (Kiosk → Instellingen): binnen 10 s getoond, zonder herstart van Chromium (de teller Herstarts blijft gelijk).
  • Een http://-URL wordt geweigerd.
  • Verversinterval op Elke minuut: de pagina herlaadt ongeveer elke minuut (zie Logboek → Kiosk-agent).
  • Screenshot op de Kiosk-pagina toont wat er op het scherm staat.
  • Daynivo-URL met ?token=: het token is overal gemaskeerd (dashboard, daynivo-kiosk-ctl status, journalctl -u daynivo-kiosk-agent).

4. Herstel

  • sudo pkill -9 chromium: binnen 15 s is de pagina terug. Het logboek toont de herstart.
  • sudo pkill -9 Xorg: X en Chromium komen binnen 20 s terug.
  • Crashloop: sudo daynivo-kiosk-ctl set-url https://localhost:1/ en daarna 7× sudo pkill -9 chromium binnen 2 minuten. De service komt in de fouttoestand (start-limit). De healthcheck logt een fout en start hem na ongeveer 5 minuten opnieuw. Er is geen eindeloze stille lus. Zet de URL daarna terug.
  • Vastgelopen pagina: open via SSH-tunnel DevTools of zet een testpagina met while(true){} in. Na ±15 s herlaadt de agent, na ±30 s herstart Chromium.
  • sudo systemctl stop daynivo-kiosk-agent: de healthcheck start hem binnen 2 minuten.
  • De webinterface blijft werken terwijl Chromium gestopt is (sudo systemctl stop daynivo-kiosk-browser).

5. Netwerk

  • Netwerkkabel eruit terwijl de pagina draait: de pagina blijft staan (een Daynivo-display toont zijn laatste inhoud). Het dashboard toont Offline.
  • Kabel weer erin: het dashboard toont binnen 1 minuut Online.
  • Opstarten zonder netwerk: offlinepagina met klok. Kabel erin: automatisch naar de kiosk-URL.
  • Wifi scannen toont netwerken. Wifi instellen (met kabel nog erin): wlan0 krijgt een adres. Bevestigen werkt.
  • Statisch IP op eth0 in een ander adres van hetzelfde subnet: beheer bereikbaar op het nieuwe adres, bevestigen daar.
  • Rollback: stel een statisch IP in een verkeerd subnet in en bevestig niet. Na 3 minuten is het oude adres weer bereikbaar.
  • Rollback na stroomuitval: herhaal, trek binnen 3 minuten de stroom eruit. Na het opstarten zijn de oude instellingen actief.
  • Noodreset: stel iets onbereikbaars in en bevestig het. Zet daynivo-network-reset op de bootpartitie en start: weer DHCP.

6. Systeem

  • Rotatie 90° en 270° (met direct toepassen): beeld gedraaid, pagina vult het scherm.
  • Resolutie 1280x720: het scherm schakelt om. Een niet-ondersteunde resolutie valt terug op automatisch.
  • Scherm altijd aan uit, 1 minuut: na een minuut gaat het scherm uit (DPMS). Zet het weer aan.
  • Hostname wijzigen naar test-kiosk: http://test-kiosk.local:8080 werkt.
  • HTTPS aan: doorgestuurd naar https://…:8080. Na bevestiging van het certificaat werkt inloggen.
  • Veilig uitschakelen: de groene LED stopt met knipperen. De Pi komt pas terug na stroom eruit/erin.
  • Raspberry Pi herstarten: na ±60 s weer kiosk + beheer.

7. Betrouwbaarheid (24/7)

  • 10× stroom eruit tijdens normaal bedrijf (willekeurige momenten): steeds zonder ingrijpen terug in de kiosk, zonder "herstellen"-melding.
  • 72 uur continu draaien met verversinterval 5 min. Daarna: geheugen < 80% (dashboard), geen onderspanning, journalctl -p err -b zonder terugkerende fouten, daynivo-kiosk-ctl status alles Actief.
  • SD-kaartschrijfacties: cat /proc/diskstats | grep mmcblk0 op t=0 en na 1 uur stationair. Het verschil in geschreven sectoren (kolom 10) is minder dan 50 MB per uur.
  • Hardware-watchdog actief: systemctl show -p RuntimeWatchdogUSec toont 15s.

8. Uitrol en updates

  • Nieuwe kaart met daynivo-config.json (url, device_name, hostname, rotation) en daynivo-authorized_keys op de bootpartitie: bij de eerste boot toegepast, hernoemd naar .applied, SSH alleen met sleutel.
  • Ongeldige daynivo-config.json (http-URL): .rejected en daynivo-config.error.txt met de reden. De kiosk start met de standaardconfiguratie.
  • sudo ./update.sh vanuit een nieuwere checkout: versie in het dashboard verhoogd, configuratie en wachtwoord ongewijzigd, back-up in /var/backups.
  • Systeem → Software-updates → Nu controleren met een nieuwere release op Gitea: "beschikbaar". Bijwerken naar …: binnen enkele minuten is de nieuwe versie actief, de beheerinterface komt terug, configuratie en wachtwoord ongewijzigd.
  • Automatisch bijwerken aan, sudo systemctl start daynivo-kiosk-update.service: de nieuwere release wordt geïnstalleerd. Met het vinkje uit: alleen gecontroleerd.
  • curl -fsSL https://daynivo.nl/kiosk/install.sh | sudo bash op een verse Raspberry Pi OS Lite: installeert de nieuwste release, setupcode op het scherm.
  • sudo ./uninstall.sh --purge op een testkaart: geen Daynivo-services of -bestanden meer (systemctl list-unit-files | grep daynivo is leeg).
  • Installatie op een bestaande Raspberry Pi OS Lite (Bookworm) met de Daynivo-kiosk erop: URL overgenomen, display-kiosk.service uitgeschakeld.