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 systembootc switch from another bootc-based OS