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

TypeFormatUse case
Offline ISO.isoFull install with all packages included, no network needed
Netinstall ISO.isoMinimal installer, downloads packages during install
Disk image.raw.xzFlash directly to USB/SD with dd or Raspberry Pi Imager
QCOW2.qcow2Virtual machines (libvirt, QEMU)
AtomicOCI container → ISOImmutable 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:

  1. Player selection — choose Electron, Chromium, or arexibo
  2. 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:

  1. Starts dunst (notifications) and unclutter (cursor hiding)
  2. Imports Wayland environment into systemd user manager
  3. Disables screen blanking and GNOME donation popup
  4. Starts the player service
  5. Runs a health monitoring loop (checks every 10 seconds)
  6. Offers reconfiguration dialog after 3 consecutive failures

Player selection

The kiosk includes all three players. The first-boot wizard lets you choose:

PlayerPriorityBest for
Electron60 (highest)PCs with GPU
Chromium50Lightweight hardware
arexibo10Native Rust rendering

Switch later without reconfiguring CMS: doas alternatives --set xiboplayer /usr/bin/xiboplayer-chromium

Keyboard shortcuts

KeyAction
Ctrl+IShow IP, CMS URL, player status
Ctrl+RReconfigure CMS (stops player, launches wizard)
D / T / SDownload / 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 switch with 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

  1. Download xiboplayer-ipxe-bios.img from the Downloads page
  2. Flash to any USB stick: sudo dd if=xiboplayer-ipxe-bios.img of=/dev/sdX bs=4M
  3. Boot the target machine from USB
  4. A menu appears — choose Full, Electron-only, or Chromium-only
  5. iPXE downloads the Fedora kernel + kickstart over the internet
  6. Anaconda installs everything automatically (~15-20 min)
  7. Machine reboots into the kiosk first-boot wizard

Install profiles

ProfileWhat's installedBest for
FullElectron + Chromium + arexiboMaximum flexibility
ElectronElectron onlyDedicated PCs with GPU
ChromiumChromium onlyLightweight 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.

Source