Deze bron is een sterk voorbeeld van het gebruik van ZimaOS als appliance-host, in plaats van te proberen de alleen-lezen-systeemlaag om te vormen tot een desktopdistributie. Omdat ZimaOS geen normale apt omgeving of ingebouwde X.Org-desktop bouwde de auteur de volledige kioskstack binnen Docker: Debian + X.Org + Chromium voor de weergave, plus een kleine nginx-container voor het lokale dashboard.
Het resultaat was een werkende 22-inch touchscreenkiosk, verbonden met een ZimaBoard 2 1664. Dit blijft een geavanceerde community-build, geen door IceWhale ondersteunde desktopmodus. Er wordt gebruikgemaakt van hostnetwerken, directe toegang tot graphics en invoer en een geprivilegieerde kioskcontainer. Gebruikers moeten de beveiligings- en apparaattoegangsafwegingen begrijpen voordat ze dit kopiëren.
De kiosk draait een desktopstack binnen Docker
Het Dockerfile uit de bron begint met Debian Bookworm Slim en installeert X.Org, libinput, Openbox, Chromium, X11-hulpprogramma's, lettertypen en Mesa. De host blijft ZimaOS; de grafische gebruikersruimte draait in de container.
Dit is precies het soort werklastisolatie dat het ZimaOS-appliancemodel wil stimuleren.
De Intel-gpu wordt beschikbaar gesteld aan de kioskcontainer
De handleiding gebruikt X.Orgs modesetting driver en geeft het Intel DRM-apparaat door aan de container. De auteur stelde specifiek vast dat de vereiste Mesa-ondersteuning Bookworm-backports nodig had voor de N100-grafische stack die door de ZimaBoard 2 werd gebruikt.
De huidige ZimaBoard 2-hardware gebruikt een Intel N150. Gebruikers die de handleiding opnieuw uitvoeren, moeten daarom de huidige Mesa-/X.Org-ondersteuning controleren in plaats van ervan uit te gaan dat de historische details over de N100 identiek zijn.
Touchinvoer komt via de input-/udev-laag van de host
Het beeldsignaal gebruikte HDMI/miniDP, terwijl de touchscreencontroller via USB was aangesloten. In de handleiding wordt /proc/bus/input/devices, koppelt het juiste eventapparaat in X.Org en deelt /run/udev zodat de container invoerapparaten kan identificeren.
Een aparte nginx-container serveert het dashboard
De broncode voert uit nginx:alpine op een niet-ZimaOS-poort (8888 in het voorbeeld) en koppelt de dashboardbestanden alleen-lezen. Chromium opent die lokale URL in kioskmodus.
Door een aparte webcontainer te gebruiken, kunnen de dashboardbestanden eenvoudig worden bijgewerkt zonder de grafische container opnieuw te bouwen.
Gebruik poort 80 van ZimaOS niet opnieuw voor het dashboard
In de handleiding wordt expliciet vermeld dat ZimaOS poort 80 al voor het dashboard gebruikt. Als Chromium de verkeerde pagina opent, controleer dan de poort van het aangepaste dashboard en de KIOSK_URL waarde in plaats van ZimaOS onverwacht te wijzigen.
De auteur voegde een workaround voor pointer-events toe voor tikken op het touchscreen
In het dashboard van de bron kon een kleine vingerbeweging voorkomen dat Chromium traditionele onclick handlers. De auteur verving de click-afhandeling door pointerup plus een bewegingsdrempel.
Die JavaScript-code is specifiek voor de applicatie. Moderne webinterfaces die voor aanraking zijn ontworpen, moeten de voorkeur geven aan pointer-/touchvriendelijke bedieningselementen in plaats van globaal inline uit te voeren onclick strings.
De geprivilegieerde modus is de grootste beveiligingsafweging
De bron start de kioskcontainer met --privileged. Dit biedt brede toegang tot apparaten en de hostkernel en is veel minder beperkt dan een gewone dashboardcontainer.
Als je de build reproduceert, test dan eerst of expliciete /dev/driMounts voor , input-apparaten en udev, plus beperkt toegepaste capabilities, zijn voldoende. Houd het dashboard op een vertrouwd LAN.
De bron gebruikt unless-stopped voor automatisch herstel
Zowel de nginx- als de kioskcontainer gebruiken restart: unless-stopped gedrag zodat het display na een herstart van ZimaOS terugkeert. Bewaar het Dockerfile, de X.Org-configuratie, het entrypoint en het dashboard onder persistente /DATA opslag.
Het huidige ZimaOS kan dit reproduceerbaarder verpakken met Compose
Het huidige ZimaOS ondersteunt standaardimports van Docker Compose/YAML. In plaats van meerdere lange docker run commando's kan een ervaren gebruiker beide services, herstartbeleid, apparaten, volumes en netwerken vastleggen in één gecontroleerd Compose-bestand.
Gebruik het huidige ZimaOS Compose-model.
Veelgestelde vragen over de touchscreenkiosk
Moet apt of een desktopomgeving op de ZimaOS-host geïnstalleerd zijn?
Nee. De bron houdt X.Org, Openbox, Mesa en Chromium bewust binnen Docker.
Is dit een officiële desktopmodus van ZimaOS?
Nee. Het is een community-build die IceWhale met toestemming en naamsvermelding mocht delen.
Waarom vormt de kioskcontainer een groter risico dan een normale app?
De bron geeft het de geprivilegieerde modus plus directe toegang tot graphics en invoer, waardoor de Docker-isolatie afneemt.
