An arch-based immutable distro designed for simplicity and ease of use, with (arguably) sane defaults.
To check out information about the OS itself, rather than this repo or its development, [check the website!]
ArctineOS is switching to an immutable approach. Because of this, future updates performed on the mutable version may fail. To fix this, do one of the following:
(instructions to follow)
2. Pull updates from distrolabs/ArctineOS instead
To do this, you need to replace /OS/' remote with the one from distrolabs. This can be done in either two ways:
A quick solution is to run this command in the terminal:
sudo sed -i 's#url = https://github.com/ArctineLabs/OS#url = https://github.com/distrolabs/ArctineOS#g' /OS/.git/config
This replaces the old remote URL with the distrolabs one
Using administrative rights, open the /OS/.git/config file.
Locate the line that url = https://github.com/ArctineLabs/OS is on (usually line 7), and replace it with url = https://github.com/distrolabs/ArctineOS.
Dependencies: podman, just
To locally build ArctineOS, clone this repository then run just build
git clone https://github.com/ArctineLabs/OS.git
cd OS/
just buildTo install ArctineOS, either download the live ISO which automatically launches the installer on startup, or run the following command on a system/live ISO with bootc
sudo bootc install to-disk /dev/(preferred disk) \
--wipe \
--filesystem btrfs \
--bootloader systemd \
--composefs-backend \
--source-imgref docker://ghcr.io/arctinelabs/arctineos:latest \
--target-imgref ghcr.io/arctinelabs/arctineos:latestAlternatively for systems without bootc but with podman:
sudo podman run --rm --privileged --pid=host --ipc=host \
-v /dev:/dev \
-v /var/lib/containers:/var/lib/containers \
--security-opt label=disable \
ghcr.io/arctinelabs/arctineos:latest \
bootc install to-disk /dev/(preferred disk) --wipe \
--filesystem btrfs \
--bootloader systemd \
--composefs-backend \
--source-imgref docker://ghcr.io/arctinelabs/arctineos:latest \
--target-imgref ghcr.io/arctinelabs/arctineos:latestArctineOS itself is licensed under the GPLv3-or-later, the license is found at the root of the repository in a file named LICENSE
The following files contain code derived from bootcrew/mono (Copyright 2025 tulilirockz, Apache License 2.0):
Justfilebcvk.justscripts/bootc-rootfs.shscripts/build.shscripts/initramfs.sh
The following files contain code derived from ArctineLabs/TyrianOS (sister project) (Copyright 2025 kevadesu, Apache License 2.0):
.github/workflows/build.yml.github/workflows/build-iso.yml(partially)
(found under airootfs/usr/share/gnome-shell/extensions/)
- blur-my-shell@aunetx (GPLv3 LICENSE)
- copyous@boerdereinar.dev (GPLv3 LICENSE)
- gsconnect@andyholmes.github.io (MULTIPLE LICENSES)
- tilingshell@ferrarodomenico.com (GPLv3 LICENSE)
The respective licenses for these projects are included in the final filesystem.
To translate, copy the respective en.arctinelocale file and change the "en" to the code of the language you want to translate a component into.
The .arctinelocale files in question can be found under directories in the Arctine Translations Library under directories within.