Skip to content

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

License

Notifications You must be signed in to change notification settings

Reno-Sifana/awesome-immutable

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Awesome Atomic Illustration

An awesome curated knowledge-base about atomic systems

Introductory Blogs and Publications

These should be enough to get you started:

Talks and Videos

Distributions

The Future is Now™, try one of these today!

  • Fedora Atomic - The official atomic editons of Fedora
  • openSUSE Atomic
    • openSUSE MicroOS - An atomic variant of openSUSE for servers
    • openSUSE Aeon - An atomic variant of openSUSE with the GNOME desktop environment, featuring containers with Distrobox.
    • openSUSE Kalpa - An atomic variant of openSUSE with the KDE Plasma desktop environment, featuring containers with Distrobox.
  • 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
  • SnowflakeOS - A NixOS based Linux distribution focused on beginner friendliness and ease of use.
  • Guix System - a Linux distribution based on the Guix package manager based on Nix
  • RDE - Developer and power user friendly GNU/Linux distribution based on GNU Guix functional package manager
  • EndlessOS - A Debian derivative distribution with a read-only root filesystem managed by OSTree, and is Flatpak-only for application delivery and update. One of the easiest (but constraining) linux distribution
  • ChromiumOS - Good design document on how Chromium implements its autoupdate mechanism
    • ChromeOS (Flex) - the cloud-first, fast, easy-to-manage, and secure operating system by Google. flex is the non-chromebook version
  • VanillaOS - Vanilla OS is a Debian Sid Linux-based Point Release distribution that receives updates at the right time without sacrificing security and functionality.
  • Nitrux - 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.
  • ChimeraOS - A Steam Big Picture based couch gaming OS utilizing frzr
  • Arkane Linux - Arch based immutable distro which uses Arkdep

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.
  • 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
    • 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 (a.k.a. OSTree) - Operating system and container binary deployment and upgrades
  • Endless OSTree Builder - Stripped down Endless ostree builder for Debian
  • Image Builder - osbuild - Build Infrastructure for Operating Systems
  • 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.
  • Arkdep - Toolkit for building, deploying and maintaining immutable, atomic, btrfs-based systems
  • frzr - A deployment and automatic update mechanism for operating systems, utilizing pre-built read-only btrfs subvolumes.

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:

Discussion

Miscellaneous

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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published