Skip to main content

introduction

Welcome to TunaOS — a curated collection of Cloud-Native Enterprise Linux OS Images built on modern container technology.

What is TunaOS?​

TunaOS produces bootc-based desktop operating system images for Enterprise Linux platforms. Each image is an OCI container that can be:

  • Booted directly via bootc on bare metal or VMs
  • Converted to an ISO for traditional installation
  • Converted to a disk image (QCOW2, raw) for VM usage
  • Switched to in-place on an existing bootc system

The goal: bring a modern desktop experience to Enterprise Linux — stable, immutable, and up-to-date.

Architecture​

TunaOS images are built in layers:

┌─────────────────────────────────────┐
│ DE Stage (GNOME/KDE/…) │ ← Desktop packages + theming
├─────────────────────────────────────┤
│ Base Stage (no-DE common) │ ← System packages, services, brew
├─────────────────────────────────────┤
│ Enterprise Linux Base (bootc) │ ← AlmaLinux / CentOS Stream / Fedora / RHEL
└─────────────────────────────────────┘

Optional hardware layers sit between base and DE:

DE Stage
↑
Base-{hwe|nvidia} Stage ← HWE kernel or NVIDIA drivers
↑
Enterprise Linux Base

Key technologies:

ComponentPurpose
bootcBootable OCI containers — replaces traditional package-based OS
PodmanBuildKit-compatible container build engine
FlathubPreconfigured Flatpak remote for desktop apps
HomebrewCLI package manager baked into every image
tackleboxISO and disk image generation from bootc containers

Supported Variants​

VariantBase OSStatusPlatforms
YellowfinAlmaLinux Kitten 10Stablex86_64, x86_64/v2, ARM64
AlbacoreAlmaLinux 10Stablex86_64, x86_64/v2, ARM64
SkipjackCentOS Stream 10Betax86_64, ARM64
BonitoFedora 44Developmentx86_64, ARM64
RedfinRHEL 10Local-build onlyx86_64, ARM64

Choosing a Variant​

  • Yellowfin — best for most users. Tracks upstream CentOS Stream closely with AlmaLinux stability. Latest GNOME backports.
  • Albacore — best for enterprise deployments. Fully RHEL-compatible, slower package cadence, maximum stability.
  • Skipjack — for CentOS Stream purists. Upstream of RHEL; packages may be slightly newer than Albacore.
  • Bonito — for Fedora users who want cutting-edge packages. Still in active development.
  • Redfin — RHEL 10 with subscription. Local-build only; for environments requiring official Red Hat support.

For hardware variants:

  • Standard — works on most hardware with the default EL kernel.
  • HWE (-hwe) — for recent hardware (post-2023) needing a newer kernel.
  • nvidia (-nvidia) — for systems with NVIDIA GPUs; includes drivers and CUDA.
  • nvidia+HWE (-nvidia-hwe) — NVIDIA on the HWE kernel; for very recent NVIDIA hardware.

Desktop Environments​

TagDesktop
gnomeGNOME (stable)
kdeKDE Plasma
cosmicCOSMIC Desktop
niriNiri (tiling Wayland compositor)

Hardware Variants​

SuffixDescription
(none)Standard kernel
-hweHardware Enablement — newer kernel for recent hardware
-nvidiaNVIDIA drivers + CUDA for graphics/AI workloads
-nvidia-hweNVIDIA + CUDA on HWE kernel

Example tags: yellowfin:gnome, albacore:kde-nvidia, skipjack:niri-hwe

Immutable Design​

TunaOS images are immutable at runtime. The root filesystem is read-only; changes are applied via layering:

  • System packages: Added at build time via dnf in Containerfile stages
  • Desktop apps: Installed at runtime via Flatpak (Flathub)
  • CLI tools: Installed at runtime via Homebrew (/var/home/linuxbrew)
  • Configuration: Overlay files in /etc via system_files/

This design provides:

  • Atomic updates: bootc upgrade applies a new image as a single transaction
  • Rollback: bootc rollback reverts to the previous deployment
  • Reproducibility: Images are built from Containerfiles tracked in git

Comparison​

TunaOSTraditional ELFedora Silverblue
BaseAlmaLinux/CentOS/Fedora/RHELRHEL/AlmaLinuxFedora
DesktopGNOME/KDE/COSMIC/NiriGNOME (stock)GNOME
UpdatesOCI image-based (atomic)DNF (package-by-package)rpm-ostree (layered)
Rollbackbootc rollbackNo native rollbackrpm-ostree rollback
ImmutableYesNoYes
Container-nativeYes (OCI images as OS)NoPartial

Getting Started​

  1. Install from ISO — download a pre-built ISO and install
  2. Build your own — build images locally with just and podman
  3. Switch an existing system — bootc switch from another bootc-based OS