Kiosk Images
Pre-built bootable images that turn any PC or Raspberry Pi into a dedicated signage display. Flash to USB or SD card, boot, and the player starts automatically.
Image types
| Type | Format | Use case |
|---|---|---|
| Offline ISO | .iso | Full install with all packages included, no network needed |
| Netinstall ISO | .iso | Minimal installer, downloads packages during install |
| Disk image | .raw.xz | Flash directly to USB/SD with dd or Raspberry Pi Imager |
| QCOW2 | .qcow2 | Virtual machines (libvirt, QEMU) |
| Atomic | OCI container → ISO | Immutable fedora-bootc with automatic rollback |
| iPXE Network Install | .usb (~1 MB) | Boot any machine from the internet — no ISO needed |
Download
See the Downloads page for the latest images.
Boot flow
GDM autologin as 'xibo'
→ GNOME Kiosk session starts
→ Phase 1: gnome-initial-setup (language, keyboard, network, timezone, password)
→ Phase 2: xiboplayer-setup (libadwaita wizard — player selection + CMS config)
→ Phase 3: Selected player service starts, health monitoring begins
→ Normal boot (setup already done):
→ Player starts automatically with 10s health check loop
Phase 1: gnome-initial-setup
On first boot, the standard GNOME initial setup wizard runs. A vendor.conf skips the account, privacy, and welcome pages — only language, keyboard, network, timezone, and password remain.
Phase 2: xiboplayer-setup
After system setup completes, a native libadwaita wizard (xiboplayer-setup.py) launches with:
- Player selection — choose Electron, Chromium, or arexibo
- CMS configuration (arexibo only) — CMS URL and key entry
For Electron and Chromium, CMS configuration happens in the player's own web-based setup page (served by the built-in proxy after the player starts).
The wizard writes ~/.local/share/xibo/setup-result.json with the selected player and service name, then the selected player's systemd service starts automatically.
Phase 3: Session holder
The main kiosk session (gnome-kiosk-script.xibo.sh) takes over:
- Starts
dunst(notifications) andunclutter(cursor hiding) - Imports Wayland environment into systemd user manager
- Disables screen blanking and GNOME donation popup
- Starts the player service
- Runs a health monitoring loop (checks every 10 seconds)
- Offers reconfiguration dialog after 3 consecutive failures
Player selection
The kiosk includes all three players. The first-boot wizard lets you choose:
| Player | Priority | Best for |
|---|---|---|
| Electron | 60 (highest) | PCs with GPU |
| Chromium | 50 | Lightweight hardware |
| arexibo | 10 | Native Rust rendering |
Switch later without reconfiguring CMS: doas alternatives --set xiboplayer /usr/bin/xiboplayer-chromium
Keyboard shortcuts
| Key | Action |
|---|---|
Ctrl+I | Show IP, CMS URL, player status |
Ctrl+R | Reconfigure CMS (stops player, launches wizard) |
D / T / S | Download / Timeline / Setup overlays |
Default credentials
- User:
xibo/ Password:xibo - Root: locked
Change after first boot: passwd xibo
Atomic images
Atomic images are built on fedora-bootc — a minimal immutable base (~1.5 GB, vs 2.5 GB for Silverblue):
- Immutable OS — cannot be accidentally modified
- Updates via
bootc switchwith automatic rollback on failure - Container-native — built as OCI image, converted to ISO
- Minimal: no Firefox, no VLC, no unused GNOME apps
iPXE network install
A ~1 MB USB stick that boots any machine over the internet and installs xiboplayer. No ISO needed — one stick installs unlimited machines.
How it works
- Download
xiboplayer-ipxe-bios.imgfrom the Downloads page - Flash to any USB stick:
sudo dd if=xiboplayer-ipxe-bios.img of=/dev/sdX bs=4M - Boot the target machine from USB
- A menu appears — choose Full, Electron-only, or Chromium-only
- iPXE downloads the Fedora kernel + kickstart over the internet
- Anaconda installs everything automatically (~15-20 min)
- Machine reboots into the kiosk first-boot wizard
Install profiles
| Profile | What's installed | Best for |
|---|---|---|
| Full | Electron + Chromium + arexibo | Maximum flexibility |
| Electron | Electron only | Dedicated PCs with GPU |
| Chromium | Chromium only | Lightweight hardware |
Requirements
- Ethernet or Wi-Fi (internet needed during install)
- BIOS or UEFI with USB boot
- 20 GB+ disk
Chainloading from existing iPXE
If you already have iPXE on your network:
chain https://dl.xiboplayer.org/ipxe/boot.ipxe
EFI boot
For UEFI-only machines, download xiboplayer-ipxe-uefi.img and boot it from the EFI shell or place it on a FAT32 USB as EFI/BOOT/BOOTX64.EFI.
