A kiosk device needs predictable behavior after power cuts and network drops. My Raspberry Pi setup starts from a minimal OS image with only the packages required for display and remote maintenance.

I run the browser through systemd instead of desktop autostart scripts. This gives better restart controls, log visibility, and dependency ordering.

For unattended recovery, I combine three safeguards: automatic login to a dedicated user, watchdog restarts for the browser unit, and daily reboot windows during low-traffic hours.

When the content endpoint is unavailable, the kiosk falls back to a local offline page. That avoids blank screens and gives operators a clear status indicator.