100 lines
2.6 KiB
Markdown
100 lines
2.6 KiB
Markdown
# 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)
|
|
```bash
|
|
git clone https://gitea.jgitta.com/jgitta/senior-kiosk.git
|
|
cd senior-kiosk
|
|
```
|
|
|
|
### 2. Build the ISO
|
|
```bash
|
|
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:
|
|
```bash
|
|
# 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:
|
|
```bash
|
|
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:**
|
|
```bash
|
|
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)
|