index
Live ISO for xfce-linux β an immutable XFCE Wayland desktop built on freedesktop-sdk and distributed as a bootc OCI image.
Modeled after projectbluefin/dakota-iso.
What this producesβ
A UEFI-bootable live ISO that:
- Boots directly into an XFCE Wayland desktop via GDM autologin as
liveuser - Includes the tuna-installer Flatpak for GUI-driven bootc installation
- Embeds the full xfce-linux OCI image in VFS containers-storage for offline installation (no network pull needed)
- Uses systemd-boot β no GRUB2 or shim required
Buildβ
# Build the ISO (requires root for podman unshare + mksquashfs)
sudo just iso-sd-boot xfce-linux
# Output: output/xfce-linux-live.iso
# Test in QEMU (serial console):
just boot-iso-serial xfce-linux
# Test in QEMU (VNC display on :10):
just boot-iso-vnc xfce-linux
Debug buildsβ
# Enables SSH (liveuser:live, root:root) in the live session:
sudo just debug=1 iso-sd-boot xfce-linux
ssh -p 2222 liveuser@localhost
Architectureβ
Three-stage container build (xfce-linux/Containerfile):
- xfce-linux-ref β pulls
ghcr.io/hanthor/xfce-linux:latestto get kernel modules - initramfs-builder β Debian stage: builds a
dmsquash-liveinitramfs via dracut against xfce-linux's kernel - final β xfce-linux: installs the new initramfs, pre-installs Flatpaks, runs
configure-live.sh
ISO assembly (xfce-linux/src/build-iso.sh):
- systemd-boot ESP with kernel + initramfs
LiveOS/squashfs.imgβ full rootfs + embedded OCI payload- xorriso with protective MBR + GPT for broad UEFI compatibility
CIβ
GitHub Actions builds the ISO daily and on every push, uploads to Cloudflare R2 (if secrets are configured), and boot-verifies in QEMU by waiting for XFCE_LINUX_LIVE_READY on the serial console.