💿

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

Available Images

Traditional (Fedora 43 + Kickstart)

ImageHardwareFormat
ISO installerAny PC or laptopFlash to USB, boot — fully automated install
Self-contained ISOAny PC (no network)Offline ISO with all packages included
Raw disk (x86_64)Intel NUC, embedded PCsWrite directly to SSD or SD card
Raw disk (aarch64)Raspberry Pi 4/5Flash to SD card
QCOW2Virtual machinesGNOME Boxes, virt-manager, Proxmox, QEMU

Atomic (immutable OS, fedora-bootc)

ImageHardwareFormat
Atomic ISO (x86_64)Any PC or laptopImmutable OS with atomic updates and rollback
Atomic ISO (aarch64)Raspberry Pi 4/5, ARM boardsSame immutable OS for ARM hardware

Download from GitHub Releases. See the Flash an Image guide for step-by-step instructions for each image type.

What's Included

  • Fedora 43 with GNOME Kiosk (locked-down Wayland compositor)
  • xiboplayer-kiosk + xiboplayer-electron pre-installed
  • arexibo pre-installed (alternative native player)
  • keyd (kernel-level keyboard shortcuts)
  • VLC, mpv, ffmpeg, GStreamer, VA-API drivers
  • WireGuard, avahi/mDNS, Wi-Fi support
  • Auto-login to kiosk session

Atomic images additionally include: immutable OS (rpm-ostree), automatic updates via OCI container images, rollback support, full RPM Fusion codecs, and GNOME Showtime.

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 wizardZenity GUI — non-technical staff can register 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 rpm-ostreed-automatic.timer. To update or rebase manually:

# Update to latest image
rpm-ostree upgrade && systemctl reboot

# Rollback to previous version
rpm-ostree rollback && systemctl reboot

# Rebase from traditional to Atomic
rpm-ostree rebase ostree-unverified-registry:ghcr.io/xibo-players/xiboplayer-kiosk:43
systemctl reboot