Guide

Building from source

Everything Alpymist ships is built in an Alpine container, so the binaries link against the same musl they run on. You need Docker for that and a Rust toolchain for the workspace; rust-toolchain.toml pins the version to match Alpine's.

Get the code

sh
git clone https://github.com/bisand/alpymist.git
cd alpymist
make help

The Rust workspace

The same checks CI runs on every pull request. Formatting and clippy warnings are errors.

sh
make check
make test
make lint

On any Linux machine you can ask the tier probe about the hardware in front of you:

sh
cargo run -p alpymistctl -- probe

The installer opens in a window during development, so you can walk through it without building an image. ALPYMIST_DRY_RUN=1 makes the last step report what it would run instead of touching a disk.

sh
ALPYMIST_DRY_RUN=1 cargo run -p alpymist-install

A bootable image

ARCH defaults to your machine's architecture. x86_64 is the architecture Alpymist actually targets; aarch64 is what it is developed on.

sh
make iso ARCH=x86_64
make smoke ARCH=x86_64

make iso builds the builder container, the packages and the image, and leaves the ISO in out/. make smoke boots it under QEMU, reads the serial console, and checks that first boot reported a tier and explained why.

Repository layout

PathContents
crates/Rust workspace: tier model, hardware probes, installer, splash, menu, CLI
aports/APKBUILDs for the Alpymist packages
desktop/The configuration each tier installs into /etc/skel
profiles/mkimage profiles and genapkovl overlays
builder/The Alpine container everything is built in
xtask/Build, smoke-test and publish orchestration, in Rust
docs/adr/Architecture decision records
site/This web site

This site

The site is SvelteKit, prerendered to static HTML and published to GitHub Pages when site/ or docs/ changes on main. The decision records are read straight from docs/adr, so editing one there updates it here.

sh
cd site
npm ci
npm run dev

Contributions are accepted under MIT or Apache-2.0. Security issues go through SECURITY.md, not the issue tracker.