castrojo / awesome-immutable

A list of resources for people who want to investigate image-based Linux desktops

Home Page:https://castrojo.github.io/awesome-immutable/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Awesome Immutable Awesome

image-based Linux desktops

This guide is for people looking for information on running image-based Linux distributions and associated tools and goodies. Note that these systems aren't totally immutable, but no one would ever click on an awesome-anti-hysteresis list. For this list server distributions like CoreOS and Flatcar are not included. This list is intended for users who have been using traditional linux distributions on their desktop and need consolidated information.

Introductory Blogs and Publications

These should be enough to get you started:

Talks and Videos

Distributions

The Future is Now(tm), try one of these today!

  • Fedora Silverblue - Silverblue is a variant of Fedora Workstation. It looks, feels and behaves like a regular desktop operating system, and the experience is similar to what you find with using a standard Fedora Workstation.
  • Fedora Kinoite - Similar to Silverblue, but based on KDE
  • Fedora Sericea - Similar to Silverblue, but based on Sway tiling window manager
  • Fedora Onyx - Similar to Silverblue, but based on Budgie Desktop
  • openSUSE MicroOS - a variant of openSUSE Tumbleweed and serves as a base of openSUSE Kubic, a Container as a Service platform.
  • openSUSE Aeon - a variant of openSUSE Tumbleweed providing an immutable GNOME desktop featuring containers with Distrobox.
  • openSUSE Kalpa - Similar to openSUSE Aeon, but based on KDE.
  • NixOS - a Linux distribution based on Nix package manager
    • awesome-nix - A curated list of the best resources in the Nix community
    • Note: The nix community has both an OS and a packaging system and is already large and vibrant, I can't do it justice so just use the list above to dive in
  • Guix System - a Linux distribution based on the Guix package manager based on Nix
  • EndlessOS - A Debian derivative distribution with a read-only root filesystem managed by OSTree and Flatpak for application delivery and update
  • ChromeOS Flex - the cloud-first, fast, easy-to-manage, and secure Chrome OS for PCs and Macs.
    • ChromiumOS - Good design document on how Chromium implements its autoupdate mechanism
  • rlxos - A immutable, independent general-purpose distribution with a primary focus on single file per application.
  • carbonOS - An open operating system designed from the ground-up to be intuitive and robust. The blog post explains the goals
  • AshOS - The immutable tree-shaped meta-distribution.
  • VanillaOS - Vanilla OS is an Ubuntu Linux-based Point Release distribution that receives updates at the right time, neither before nor after, without sacrificing security and functionality.
  • Nitrux OS (2.6.0+) - A Debian-based Linux distribution that features NX Desktop and the MauiKit Applications suite.
  • blendOS - blendOS is an operating system that seamlessly blends all your Linux distributions into one.
  • Kairos - The immutable Linux meta-distribution for edge Kubernetes.
  • AstOS - An immutable distro based on Arch using btrfs snapshots.
  • Universal Blue - A framework for building your own OSTree distros, based on Fedora Siverblue. Check out the list of available images!
  • Mocaccino Desktop - A Gentoo-based distribution (derived from Sabayon) oriented towards Desktop systems.
  • Bazzite - An OCI image that serves as an alternative operating system for the Steam Deck, and a ready-to-game SteamOS-like for desktop computers and living room home theater PCs.
  • ChimeraOS - A Steam Big Picture based couch gaming OS

Toolboxes

There historically have been a few versions of "toolbox", and we're probably at a point where it's more of a class of software than an individual project. I classify toolboxes as "A terminal front end to container runtimes focusing on transparent ease of use of container images". Someone smarter please make a better definition.

  • Toolbx - Tool for containerized command line environments on Linux
    • Toolbx Tuner - Toolbx Tuner is a tool to improve the experience with toolbx.
    • Toolbx Images - Community maintained container images to use with toolbx (Check these out if you need other distros outside the default Fedora ones)
    • toolbox-images - a collection of container images for usage with the toolbox command. This is an attempt at providing more feature parity with regard to toolboxes for distributions other than Fedora.
    • Toolbox GUI - A graphical interface for interacting with Toolbox, written with GTK3 and Python
  • Distrobox - Tool for containerized command line environments on Linux, distribution agnostic, supports a wide variety of containers , works both with podman and docker - This is a great tool to start with on your existing distro to learn working with day-to-day container workflows.
    • BoxBuddy - A GUI manager for your Distroboxes, made with GTK4 and Libadwaita.
  • devbox - Devbox is a command-line tool that lets you easily create isolated shells and containers.
  • nsbox - Pet container manager based on systemd-nspawn and supporting DBus and desktop files.
  • unbox - New (a little bit experimental) implementation of a toolbox that does not rely on existing container engines like podman or docker, instead opting to use Linux namespaces directly to improve performance.
  • coretoolbox - Toolbx alternative in rust with a focus on container builds. (Older project, appears unmaintained, but if I don't include rust stuff people will get upset 😃)
  • folderbox - Folder based containers that isolate project environments with escapes to the host for development.
  • apx - The default package manager for VanillaOS, utilising Distrobox to manage containers for various distros on the user's behalf.

Core Tools

Things that are the building blocks for all the stuff we're talking about here.

  • podman - Podman is a daemonless container engine for developing, managing, and running OCI Containers on your Linux System.
    • gnome-shell-extension-containers - This neat extension lets you see what containers you have, start/stop/restart, pause, and shell into them right from the notification area.
    • Podman Desktop - Manage different container engines from a single UI and tray icon
    • Podman desktop companion - graphical management of your desktop containers
    • Pods - a podman desktop application (formely known as Symfony)
  • Flatpak - a utility for software deployment and package management for Linux. It is advertised as offering a sandbox environment in which users can run application software in isolation from the rest of the system.

Lower level tools

Most of us will not use these tools directly, but useful for developers:

  • libostree - Operating system and container binary deployment and upgrades
  • Endless OSTree Builder - Stripped down Endless ostree builder for Debian
  • osbuilder - Build-Pipelines for Operating System Artifacts
  • ABRoot - A utility which provides full immutability and atomicity to a Linux system, by transacting between two root filesystems. Updates are performed using OCI images, to ensure that the system is always in a consistent state.
  • BootC - Transactional, in-place operating system updates using OCI/Docker container images. (Experimental)
  • bootupd - Distribution-independent updates for bootloaders.
  • Elemental Toolkit - A toolkit which allows container images to be bootable in VMs, baremetals, embedded devices, and much more. Elemental and derivatives share a common feature set, can be upgraded with a A/B mechanism, and upgrades are delivered with standard container registries.
  • GoldBoot - a command-line utility that builds machine images for both servers and workstations alike.

Integration Resources

aka. duct tape.

Configs from the Community

OSTree based systems allow for composable derivative distributions. If you're automating the config on systems like this please PR your config to share:

Desktop Tours

Here are some people walking through their setups:

Tips

Discussion

Miscellaneous

Things that don't fit anywhere else but might be useful reference material

Contribute

Contributions welcome! Read the contribution guidelines first. We need more nix resources so if you have good ones please consider PRing one.

If you don't know how to use git then file an issue and leave a link, I'll integrate it into the list!

Fun Stats

Alt

About

A list of resources for people who want to investigate image-based Linux desktops

https://castrojo.github.io/awesome-immutable/