💿

Kiosk Images

xiboplayer-kiosk

Pre-built bootable images for PCs and Raspberry Pi — flash, boot and display.

ISORawQCOW2x86_64aarch64 GitHub
🖥️PC, Raspberry Pi and virtual machines
🔒Atomic bootc with rollback
🩺Health monitoring + auto-restart
🔄Switch players without reconfiguring

Images

ImageArchSizeDownloadUse case
Kickstart (traditional installer)
Everything ISOx86_641.1GBxiboplayer-kiosk-everything_x86_64.isoOffline install on PCs, NUCs, signage boxes. No internet needed — all packages bundled. Flash to USB, boot, walk away.
Everything ISOaarch641.2GBxiboplayer-kiosk-everything_aarch64.isoOffline install on Raspberry Pi 5, ARM servers.
Netinstall ISOx86_641.1GBxiboplayer-kiosk-netinstall_x86_64.isoLightweight installer, downloads from Fedora mirrors. Always gets latest packages.
Netinstall ISOaarch641.1GBxiboplayer-kiosk-netinstall_aarch64.isoSame for ARM64. Raspberry Pi 5 network install.
Disk images (ready to boot, no installer)
QCOW2x86_641.7GBxiboplayer-kiosk_x86_64.qcow2Virtual machines (QEMU/KVM, Proxmox, Gnome Boxes). Import and boot — no installation step.
QCOW2aarch64~1.7GBxiboplayer-kiosk_aarch64.qcow2ARM64 virtual machines.
Raw diskx86_641.1GBxiboplayer-kiosk_x86_64.raw.xzWrite to SSD/eMMC: xz -d *.raw.xz && dd if=*.raw of=/dev/sdX. Industrial/embedded.
Raw diskaarch64~1.1GBxiboplayer-kiosk_aarch64.raw.xzRaspberry Pi 5 SD card: xz -d *.raw.xz && sudo dd if=*.raw of=/dev/mmcblkX bs=4M status=progress.
Atomic (immutable OS, container-native updates)
Atomic ISOx86_64~1.5GBLatest Atomic releaseImmutable Fedora bootc kiosk. bootc upgrade with instant rollback. Best for fleet deployments.
Atomic ISOaarch64~1.5GBLatest Atomic releaseSame for ARM64. RPi5 fleets, ARM kiosks.
OCI Containermulti-archghcr.io/xiboplayer/xiboplayer-kiosk:43Pull with podman/docker. Base for custom images or bootc switch from existing Fedora.
Network boot (no USB/SD card needed)
iPXE BIOSx86400KBxiboplayer-ipxe-bios.imgLegacy BIOS PCs. Flash to USB or embed in PXE ROM. Boots from network, shows install menu.
iPXE UEFIx86_641.1MBxiboplayer-ipxe-uefi-x86_64.imgModern UEFI PCs. Chainload from existing PXE or flash to USB.
iPXE UEFIaarch641.1MBxiboplayer-ipxe-uefi-aarch64.imgRPi5 with UEFI firmware, ARM servers.
iPXE scriptany5KBboot.ipxeBoot menu script. Auto-detects arch. chain https://dl.xiboplayer.org/ipxe/boot.ipxe

Quick Start

I want to...Download
Install on a PC with USB stick, no internetEverything ISO x86_64
Install on Raspberry Pi 5Raw disk aarch64 — dd to SD card
Test in a VM quicklyQCOW2 x86_64 — import into Gnome Boxes
Deploy 50 identical kiosks with fleet updatesAtomic ISO + bootc upgrade
Network boot a room of PCsiPXE UEFI + boot.ipxe
Rebase existing Fedora to kioskbootc switch ghcr.io/xiboplayer/xiboplayer-kiosk:43
Install on existing Fedora via RPMsudo dnf install xiboplayer-release && sudo dnf install xiboplayer-kiosk xiboplayer-electron
Install on Ubuntu/DebianSee downloads page

What's Included

All images ship with: xiboplayer-electron + xiboplayer-chromium + arexibo, VLC + mpv + ffmpeg (full codecs) + RPM Fusion plugins, GDM autologin → gnome-kiosk → player selection wizard, VA-API GPU acceleration + mesa-dri fallback, WiFi auto-reconnect + connectivity health-check, Secure Boot chain + GPG-signed packages, iPXE boot profile selection (xibo.profile=electron|chromium|full), bootc atomic updates + instant rollback (Atomic images).

First Boot

  1. Log in with user xibo / password xibo
  2. Change your password with passwd
  3. The kiosk setup wizard appears — enter your CMS URL, key, and display name
  4. The display registers with your CMS and starts playing content

Kiosk Features

FeatureDescription
GNOME Kiosk sessionDedicated Wayland compositor — no desktop shell, no app switching
Health monitoring10s polling, auto-restart on crash, distinguishes "not authorized" from errors
First-boot wizardlibadwaita GTK4 player selection + CMS registration — non-technical staff can set up displays
On-screen notificationsDunst overlay, persistent, color-coded by severity
Keyboard shortcutsCtrl+I (show status), Ctrl+R (reconfigure CMS) via keyd
Screen managementNo blanking, no screensaver, no DPMS — via gsettings + logind
Resource limits1.5G memory cap, burst limits via systemd cgroups
Player-agnosticSwitch between Electron, Chromium, or arexibo at any time

Player Selection

The kiosk uses the Linux alternatives system. Switch players without reconfiguring:

# See current player
alternatives --display xiboplayer

# Switch player
sudo alternatives --config xiboplayer

# Or set directly
sudo alternatives --set xiboplayer /usr/bin/xiboplayer-electron
sudo alternatives --set xiboplayer /usr/bin/xiboplayer-chromium
sudo alternatives --set xiboplayer /usr/bin/arexibo

Installing on Existing Linux

Instead of flashing an image, you can install xiboplayer-kiosk on your existing system:

Fedora

# Fedora 44
sudo dnf install \
  https://dl.xiboplayer.org/rpm/fedora/43/noarch/xiboplayer-release-43-7.fc43.noarch.rpm

# Fedora 43
sudo dnf install \
  https://dl.xiboplayer.org/rpm/fedora/43/noarch/xiboplayer-release-43-7.fc43.noarch.rpm
sudo dnf install xiboplayer-kiosk
sudo systemctl set-default graphical.target

Ubuntu

curl -fsSLO https://dl.xiboplayer.org/deb/ubuntu/24.04/all/xiboplayer-release_1.0.2_all.deb
sudo apt install ./xiboplayer-release_1.0.2_all.deb
sudo apt update && sudo apt install xiboplayer-kiosk

Debian Trixie / Raspberry Pi

curl -fsSL https://dl.xiboplayer.org/deb/DEB-GPG-KEY-xiboplayer | \
  sudo tee /etc/apt/keyrings/xiboplayer.asc > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/xiboplayer.asc] https://dl.xiboplayer.org/deb/debian/trixie ./" | \
  sudo tee /etc/apt/sources.list.d/xiboplayer.list
sudo apt update && sudo apt install xiboplayer-kiosk

Quick install for Raspberry Pi:

curl -fsSL https://dl.xiboplayer.org/install-raspberry-pi.sh | bash

Updating Atomic Kiosks

Atomic kiosks update automatically via bootc-fetch-apply-updates.timer. To update or rebase manually:

# Update to latest image
bootc upgrade && systemctl reboot

# Rollback to previous version
bootc rollback && systemctl reboot

# Rebase from traditional to Atomic
bootc switch ghcr.io/xiboplayer/xiboplayer-kiosk:43
systemctl reboot