Skip to content
thatguywobPublic
forked from tuna-os/tunaOS

About

Bringing a modern cloud-native experience to the Enterprise Linux Desktop

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Β 
Β 

Latest commit

Β 

History

6,388 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🐟

TunaOS

Cloud-native, immutable desktop Linux images

One desktop experience with bootc across Enterprise Linux and community distributions


License GitHub Stars Issues Adoption evidence Discussions

πŸŽƒ Hacktoberfest 2026: Join us! Is this your first open-source PR? See our good first issues. You can also join the office hours for maintainers in October on Matrix.

About TunaOS

TunaOS builds bootc-based desktop operating systems with atomic updates and straightforward rollbacks. Choose an Enterprise Linux base for long-term stability or an alternative distribution for a faster release cadence. Both choices use the same image-based management model.

Visit tunaos.org or read the User Guide.

  • Modern Desktops: GNOME, KDE Plasma, COSMIC, Niri, and XFCE β€” equal first-class options across distribution bases
  • Up-to-Date Desktop Stack: Fresh desktop features and updates backported to Enterprise and community bases
  • Homebrew: Baked into the image β€” all your CLI apps and fonts are a brew command away
  • Flathub by Default: Full Flathub access out of the box β€” get any Flatpak available on the net
  • HWE and NVIDIA Options: Hardware Enablement kernels and NVIDIA drivers + CUDA as image tags

Choose your image

Variant Base OS Registry Path Desktops Architectures
🐠 Yellowfin AlmaLinux Kitten 10 ghcr.io/tuna-os/yellowfin GNOME (x86_64 only, see note), KDE, COSMIC, Niri, Tuna (x86_64 only), XFCE x86_64, x86_64/v2, arm64
🐟 Albacore AlmaLinux 10 (RHEL 10) ghcr.io/tuna-os/albacore GNOME (x86_64 only, see note), KDE, COSMIC, Niri, Tuna (x86_64 only), XFCE x86_64, x86_64/v2, arm64
🍣 Skipjack CentOS Stream 10 ghcr.io/tuna-os/skipjack GNOME (x86_64 only, see note), KDE, COSMIC, Niri, Tuna (x86_64 only), XFCE x86_64, arm64
🎣 Bonito Fedora 44 ghcr.io/tuna-os/bonito GNOME, KDE, COSMIC, Niri, Tuna (x86_64 only), XFCE x86_64, arm64
🐦 Hummingbird Fedora Hummingbird (experimental) ghcr.io/tuna-os/hummingbird Base, GNOME, COSMIC x86_64 (see note)
🎏 Wahoo Fedora ELN β€” EL11 preview (experimental, no codecs) ghcr.io/tuna-os/wahoo Base, GNOME, KDE, COSMIC, Tuna (x86_64 only) x86_64, arm64
πŸ”’ Redfin Red Hat Enterprise Linux 10 Local-Build Only GNOME, KDE, COSMIC, Niri, XFCE x86_64, arm64
πŸͺΈ Grouper Ubuntu 26.04 ghcr.io/tuna-os/grouper GNOME, KDE, COSMIC, Tuna, XFCE x86_64
πŸ€– Gurnard Ubuntu 24.04 (Noble Numbat, experimental) ghcr.io/tuna-os/gurnard Base, Pantheon x86_64, arm64
πŸš€ Marlin Arch Linux (Rolling) ghcr.io/tuna-os/marlin GNOME, KDE, COSMIC, Niri, Tuna, XFCE x86_64
🐑 Flounder Debian 13 (Trixie) ghcr.io/tuna-os/flounder KDE, Tuna, XFCE x86_64
☒️ Flounder Sid Debian Sid (Unstable) ghcr.io/tuna-os/flounder:*-sid GNOME, KDE, Tuna, XFCE x86_64
πŸ‰ Bonito Rawhide Fedora Rawhide ghcr.io/tuna-os/bonito:*-rawhide GNOME, KDE, COSMIC, Niri, Tuna (x86_64 only), XFCE x86_64, arm64
β›΅ Sailfin openSUSE Tumbleweed ghcr.io/tuna-os/sailfin GNOME, KDE, COSMIC, Niri, Tuna, XFCE x86_64
🌈 Guppy Gentoo Linux ghcr.io/tuna-os/guppy GNOME, KDE, XFCE x86_64
πŸ”οΈ TromsΓΈ freedesktop-sdk (BuildStream), built in tuna-os/tromso ghcr.io/tuna-os/tromso KDE x86_64
🐭 XFCE Linux freedesktop-sdk (BuildStream), built in tuna-os/xfce-linux ghcr.io/tuna-os/xfce-linux XFCE x86_64

GNOME on the EL10 variants comes from the tunaOS GNOME 50 package tier. GitHub Actions builds this tier without COPR. The tier supports only x86_64 today, so the gnome and gnome-hwe images have only x86_64 support. The gnome-asahi image is off until the tier adds aarch64 (tunaos-packages#673). Every GNOME image uses GNOME 50 or newer. The project does not promote older versions.

Hummingbird is x86_64 only. This includes its base. The aarch64 package snapshot has no xfsprogs, and the base stage needs it. No hummingbird arm64 image builds today. The architecture is absent, not thinner. See docs/HUMMINGBIRD.md.

Tags are <desktop>[-hardware] β€” e.g. yellowfin:gnome-hwe, albacore:kde-nvidia. Full tag reference: docs/IMAGE-TAGS.md. Hardware requirements and ARM laptop status: docs/HARDWARE.md.

Note

Redfin (RHEL 10) is local-build only due to EULA restrictions. To build it locally, run just build redfin <desktop> (see rhel-setup.md).

Live build matrix

The configured matrix now has 147 image cells. Eleven of them are Tuna Desktop (formerly Roost) cells for amd64: marlin:tuna, yellowfin:tuna, albacore:tuna, skipjack:tuna, wahoo:tuna, bonito:tuna, bonito:tuna-rawhide, grouper:tuna, flounder:tuna, flounder:tuna-sid and sailfin:tuna. The tuna_rollout record in tunaos.toml gives each other variant its reason to stay unsupported. The guppy:gnome cell is back (2026-10-07, #2450). The former marlin:roost tags get no more updates; existing installs must follow the explicit switch and recovery procedure. The status snapshot below is from before those additions and does not prove image publication or a successful boot. Tuna Desktop adds no ISO or LUKS cells.

Each cell reports the newest conclusive main-branch run that asserted it, so a flavor-filtered rebuild does not blank the cells it never scheduled. This table omits cancelled runs. Latest run names the variant's newest conclusive run. A green cell has a successful promotion to the published tag. Failed means that a job ran and failed. Not reached means that no recent run asserted the cell, usually because an earlier stage stopped it.

Variant Green image cells Latest run Failing Not reached
🐠 yellowfin 19/19 βœ… 2026-10-20 β€” β€”
🐟 albacore 19/19 βœ… 2026-10-20 β€” β€”
🍣 skipjack 17/17 βœ… 2026-10-19 β€” β€”
🎏 wahoo 4/5 ❌ 2026-10-16 tuna β€”
🎣 bonito 17/17 βœ… 2026-10-19 β€” β€”
🐦 hummingbird 1/3 ❌ 2026-10-15 gnome cosmic
β›΅ sailfin 7/7 βœ… 2026-10-19 β€” β€”
🌈 guppy 3/4 ❌ 2026-10-20 β€” gnome
πŸ‰ bonito-rawhide 13/15 ❌ 2026-10-19 tuna gnome
πŸ€– gurnard 2/2 βœ… 2026-10-20 β€” β€”
πŸͺΈ grouper 8/8 βœ… 2026-10-19 β€” β€”
πŸš€ marlin 17/17 βœ… 2026-10-19 β€” β€”
🐑 flounder 6/6 βœ… 2026-10-20 β€” β€”
☒️ flounder-sid 5/8 ❌ 2026-10-20 β€” gnome-nvidia,kde-nvidia,xfce-nvidia

Sibling images from separate repositories. These TunaOS-family bootc images use BuildStream on freedesktop-sdk. They do not use packages from a distribution. Thus, the matrix above has no cells for them, and green-criteria.yml does not score them. Each repository runs its own checks for the build, live ISO, plain installation, and LUKS installation. The status shows the latest complete build from the main branch of that repository.

Image Built by Desktop Latest main build
πŸ”οΈ ghcr.io/tuna-os/tromso tromso KDE ❌ 2026-10-19
🐭 ghcr.io/tuna-os/xfce-linux xfce-linux XFCE ❌ 2026-10-18

Built 138/147 Β· composite green 124/147 (93% built) β€” The remainder has 3 failures and 6 never reached (stale: 5); no job asserted the latter. We show the two values separately. A cell with no job has no test, but it can still work.

The score for composite green uses published cells, per docs/MATRIX-STATUS.md. .github/green-criteria.yml provides the score. Today, these criteria prevent publication: boots, builds, desktop, no_silent_omissions, parity. A cell must satisfy each criterion.

Skipped cells and cells with no test do not count as green. The full per-axis board is docs/MATRIX-STATUS.md. This snapshot of CI shows one point in time. It does not promise a support tier.

Get started

For local media builds, signature and SBOM checks, registry authentication, and pull help, read docs/INSTALL.md.

Contribute compute β€” no code needed

Donate time with your AI CLI.

Your machine runs one task at a time using your signed-in AI coding CLI. The relay alternates between eligible School (OS) and Reef (apps) hives after each task. If one hive has no work, the other can continue.

The guide covers prerequisites, verified just setup, credentials, provider costs, and how to stop with Ctrl+C. Your subscription quota or API charges apply. Never post account credentials or API keys in issues or pull requests.

Contributing

Contribute through Hive to donate time with your AI CLI.

Contributions welcome! See CONTRIBUTING.md for development environment setup, the build workflow and pre-commit checklist, pull request guidelines, and an architecture overview.

Community and support

Related communities: Universal Blue Discord Β· AlmaLinux Atomic SIG

Documentation

Start here:

  • User Guide β€” image choice, installation, updates, rollback, apps, and encryption
  • Developer Guide β€” the complete pipeline with architecture diagrams
  • Installation β€” media builds, verification, and registry access
  • Hardware Support β€” requirements and ARM laptop status
  • Matrix Status β€” quality status for each variantΓ—desktop cell
  • Roadmap β€” project direction and feature status
  • Vision β€” project philosophy

The full index of every guide, policy, and project plan is at docs/README.md.


Tuna_OS_Logo

Made by James in his free time

Powered by Bootc

Bootc_Logo

Inspired by Bluefin and the Universal Blue Community

Licensed under Apache 2.0

About

Bringing a modern cloud-native experience to the Enterprise Linux Desktop

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages