← All work
Infrastructure · 2020–25

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
More work See all →