On-Device Kiosk Deployment for Storage Lockers (Balena / Raspberry Pi)
A self-service luggage/storage-locker platform
Overview
The on-device deployment that turns each storage-locker station into a self-contained kiosk running on Raspberry Pi hardware via balenaCloud. It orchestrates the touchscreen front end, API, database, browser renderer, and network provisioning as a single multi-container stack, the physical terminal where customers pay to store their bags.
Why It Exists
To run the locker solution as physical, internet-connected kiosk units, a Raspberry Pi that boots straight into the rental UI full-screen, manages its own Wi-Fi onboarding, and is updatable over-the-air across a balena device fleet at multiple locations.
What We Built
A balena multi-container project defined by docker-compose.yml bundling: the cargame-frontend (website) and cargame-api (Strapi) services, a MariaDB (linuxserver/mariadb, ARM build) database, a monitor service running WPE WebKit in privileged kiosk mode (WPE_BCMRPI_CURSOR, exposed on port 8080) to render the rental UI full-screen, and a wifi-connect service (host networking) for captive-portal Wi-Fi setup. Includes a GitLab CI pipeline, a registry-secret.yml, and an admin-panel container, all targeting ARM/Raspberry Pi.
Technologies & Approach
balenaCloud fleet management with Docker Compose multi-container orchestration on Raspberry Pi (ARM), WPE WebKit for embedded full-screen browsing, MariaDB for storage, and balena’s wifi-connect for headless network onboarding.
Outcome / Impact
Turned the locker solution into a deployable physical kiosk product with OTA updates and self-service Wi-Fi, the longest-lived repo in the line (active through 2025).
Capabilities Demonstrated
- Edge/IoT deployment and device-fleet management (balenaCloud)
- Kiosk-mode embedded browser provisioning on Raspberry Pi
- Multi-container orchestration including headless Wi-Fi onboarding