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
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.
make check
make test
make lint
On any Linux machine you can ask the tier probe about the hardware in front of you:
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.
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.
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
| Path | Contents |
|---|---|
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.
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.