Files

2.6 KiB

SeniorNet Kiosk — Custom Debian ISO

Build a bootable ISO that installs and auto-configures the kiosk app on any machine.

On Your Workstation (192.168.88.41)

1. Clone the repo (if not already done)

git clone https://gitea.jgitta.com/jgitta/senior-kiosk.git
cd senior-kiosk

2. Build the ISO

sudo ./build-iso.sh

This creates: iso-output/seniornet-kiosk.iso (~1-2 GB, takes 5-10 min)

Testing on Production Kiosk (192.168.88.44)

1. Write ISO to bootable USB

On your workstation with USB connected:

# List devices to find your USB
lsblk

# Write ISO (replace sdX with your USB device, e.g., sdb)
sudo dd if=iso-output/seniornet-kiosk.iso of=/dev/sdX bs=4M status=progress && sync

2. Boot from USB

  • Plug USB into production kiosk
  • Power on and select USB boot (usually F12, ESC, or DEL during startup)
  • Installation starts silently (no prompts)

3. Wait for installation

  • Silent Debian installation: ~5-10 minutes
  • Clones repo, installs dependencies
  • System reboots automatically

4. Verify kiosk is running

After reboot, you should see the kiosk home screen with buttons.

To check status via SSH:

ssh jgitta@192.168.88.44
journalctl -u kiosk.service -f

What the ISO Contains

  • Debian 13 Trixie (minimal base)
  • Chromium (system package, not snap)
  • Python 3, PyQt5, websocket-client
  • Openbox (window manager)
  • Xvfb (virtual display)
  • Your kiosk app (cloned from Gitea at install time)
  • Auto-boot to kiosk mode (no desktop login)

Files

  • preseed.cfg — Debian unattended installer config
  • install-kiosk.sh — Post-install script (runs after Debian install)
  • build-iso.sh — Build script (creates the ISO)

Troubleshooting

If installation hangs:

  • Check network connectivity during install
  • Gitea must be reachable (or install will use git clone fallback)

If kiosk doesn't start:

ssh jgitta@192.168.88.44
journalctl -u kiosk.service -20  # View last 20 lines of logs
sudo systemctl restart kiosk.service

To access terminal:

  • Press Alt+F2 during boot
  • Log in as root (password: kiosk)
  • Run: /usr/local/bin/kiosk-restart to restart

Customization

To modify the ISO:

  1. Edit preseed.cfg (installer config)
  2. Edit install-kiosk.sh (post-install)
  3. Edit build-iso.sh (ISO build options)
  4. Rebuild: sudo ./build-iso.sh

Distribution

Once tested, you can:

  • Copy seniornet-kiosk.iso to USB drives for deployment
  • Host on web server for download
  • Share with end users
  • Any machine can boot and auto-install (no Proxmox needed)