Skip to content

zamkara/ark.linux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

212 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ark Linux Logo

Vanilla Immutable Arch Linux

Contributing Status Arch Linux Podman GNOME Nix Distrobox Shell

Build scripts 'n configs for spinnin' up a bootable Live ISO of an immutable Arch Linux env powered by OSTree 'n bootc.

Screenshot from 2026-06-04 21-47-25

Not a separate distro — underneath it's pure Arch Linux, delivered as an immutable image. Declarative package management's built right in with Nix, pin host packages alongside the system image. Distrobox is pre-configured, dev-ready outta the box — no setup needed, just use it.

⚠️ Heads up — this is very early stage. Expect bugs. Lotta 'em. For testin' only, don't run this on anythin' ya care about. Ya been warned.

System Architecture

Three things're holdin' this together. OSTree + bootc handles image-based deployments — system state always matches whatcha tested in the build, no surprises. Alga's the native installer; GTK4 Rust-based, async ops, real-time progress, graceful cancellation — it's got it handled. And the CI/CD pipeline's automatin' everythin' else: GitHub Actions + OCI Containerfiles, push → ISO, that's it.

Build Requirements

  • podman
  • wget, curl, jq
  • Root (for mkarchiso)
  • ~10GB free disk space

Quick Start

Buildin' the ISO

sudo bash .github/workflows/build_iso.sh

Output lands in out/.

Testin' with QEMU

qemu-system-x86_64 -m 4096 -cdrom out/install.iso -boot d

Testin' with GNOME Boxes

  1. Open GNOME Boxes
  2. Hit "+" → new VM
  3. Point it at the ISO
  4. Follow Alga's prompts

Repository Structure

  • ark.linux ISO generation via archiso 'n bootc-image-builder
  • ark-image Base container image defs 'n OS package manifests
  • alga GTK4 Rust frontend for bootc install 'n system updates
  • ark-aur Custom repo for pre-compiled AUR packages

Docs

All technical docs're livin' in docs/:

Development

Prerequisites

  • Rust 1.70+ (for Alga builds)
  • GTK4 dev libraries
  • Podman (or any Containerfile-compatible runtime)

Buildin' Locally

git clone https://github.com/zamkara/ark.linux.git
cd ark.linux

# Poke around the Containerfile first
cat Containerfile

# Optional local build
podman build -t ark-os:dev .

# Generate the ISO
sudo bash .github/workflows/build_iso.sh

Installation

  1. Boot from ISO Write it to a USB or boot directly
  2. Launch Alga Hit "Install Ark Linux" from the boot menu
  3. Pick target drive Choose where it's goin'
  4. Wait Watch progress in the Alga terminal
  5. Reboot Done. Immutable Arch, ready to go.

Post-Installation

# Check for updates
bootc check-update

# Apply 'em — atomic, rollback-capable
bootc upgrade

# Regret it? Roll back.
bootc rollback

# Install packages on host via Nix
nix profile install nixpkgs#htop

# Drop into a full Arch container with pacman
distrobox enter arch

# Switch default shell
chsh -s /usr/bin/fish

# System info
fastfetch

System Layout

/                          Immutable root (read-only)
├── /etc                   Config (mutable, 3-way merged on updates)
├── /var                   Variable data, user home (mutable)
├── /usr                   Immutable system binaries 'n libraries
└── /opt                   Additional immutable applications

Powered by

  • Pods GTK4+Rust Podman frontend — UI inspiration for Alga's container management layer
  • DistroShelf GTK4 GUI for Distrobox — shaped how Distrobox integration's hangin' together in-session
  • MoreWaita Expanded Adwaita icon theme — keepin' the desktop consistent 'n cohesive outta the box
  • nixpkgs The Nix package collection — powerin' declarative host package management

Credits

Buildin' on the work of:

About

Build scripts and configs for spinning up a bootable Live ISO of an immutable Arch Linux env powered by OSTree and bootc.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors