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
bootcon 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:
| Component | Purpose |
|---|---|
| bootc | Bootable OCI containers β replaces traditional package-based OS |
| Podman | BuildKit-compatible container build engine |
| Flathub | Preconfigured Flatpak remote for desktop apps |
| Homebrew | CLI package manager baked into every image |
| tacklebox | ISO and disk image generation from bootc containers |
Supported Variantsβ
| Variant | Base OS | Status | Platforms |
|---|---|---|---|
| Yellowfin | AlmaLinux Kitten 10 | Stable | x86_64, x86_64/v2, ARM64 |
| Albacore | AlmaLinux 10 | Stable | x86_64, x86_64/v2, ARM64 |
| Skipjack | CentOS Stream 10 | Beta | x86_64, ARM64 |
| Bonito | Fedora 44 | Development | x86_64, ARM64 |
| Redfin | RHEL 10 | Local-build only | x86_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β
| Tag | Desktop |
|---|---|
gnome | GNOME (stable) |
gnome50 | GNOME 50 (latest) |
kde | KDE Plasma |
cosmic | COSMIC Desktop |
niri | Niri (tiling Wayland compositor) |
Hardware Variantsβ
| Suffix | Description |
|---|---|
| (none) | Standard kernel |
-hwe | Hardware Enablement β newer kernel for recent hardware |
-nvidia | NVIDIA drivers + CUDA for graphics/AI workloads |
-nvidia-hwe | NVIDIA + 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
dnfin Containerfile stages - Desktop apps: Installed at runtime via Flatpak (Flathub)
- CLI tools: Installed at runtime via Homebrew (
/var/home/linuxbrew) - Configuration: Overlay files in
/etcviasystem_files/
This design provides:
- Atomic updates:
bootc upgradeapplies a new image as a single transaction - Rollback:
bootc rollbackreverts to the previous deployment - Reproducibility: Images are built from Containerfiles tracked in git
Comparisonβ
| TunaOS | Traditional EL | Fedora Silverblue | |
|---|---|---|---|
| Base | AlmaLinux/CentOS/Fedora/RHEL | RHEL/AlmaLinux | Fedora |
| Desktop | GNOME/KDE/COSMIC/Niri | GNOME (stock) | GNOME |
| Updates | OCI image-based (atomic) | DNF (package-by-package) | rpm-ostree (layered) |
| Rollback | bootc rollback | No native rollback | rpm-ostree rollback |
| Immutable | Yes | No | Yes |
| Container-native | Yes (OCI images as OS) | No | Partial |
Getting Startedβ
- Install from ISO β download a pre-built ISO and install
- Build your own β build images locally with
justandpodman - Switch an existing system β
bootc switchfrom another bootc-based OS