Installing Environments¶
The core idea¶
alloy-provisioner is a single binary that reads a blueprint and installs a complete build environment into any Linux system. The same blueprint, the same result, regardless of whether the target is a PC, laptop, or server, a VM created by any tool, or a Docker container.
flowchart LR
HUB["Alloy Hub\nalloy-it.io"]
BP["Local Blueprint\ndirectory"]
PROV["alloy-provisioner"]
HUB -->|"alloy-provisioner install"| PROV
BP -->|"install --blueprint-dir"| PROV
PROV --> ENV1["Linux machine\n(PC / laptop / server / test rack)"]
PROV --> ENV2["VM\n(any hypervisor)"]
PROV --> ENV3["Docker image"]
What alloy-provisioner does¶
Given a blueprint directory, alloy-provisioner:
- Reads
manifest.ymlto understand variables, toolchain refs, and task order. - Executes each task file in the declared order (install packages, download toolchains, write env files, run commands).
- Tracks what it has done in
alloy.state.ymlso re-runs skip completed tasks. - Verifies SHA256 checksums where the blueprint action requires them (e.g.
get_file,unarchive_from_url); other download paths depend on the action.
All three installation paths below use the same provisioner. There is no difference in the resulting environment.
Blueprints from Alloy Hub¶
Alloy Hub hosts community-maintained blueprints. You can pull and install them in one step:
List published blueprints:
Search toolchain descriptors in the local catalog (after catalog update):
Choose your path¶
| Path | When to use |
|---|---|
| On Linux (Native) | PC, laptop, or server, test rack, existing VM, WSL2: any Linux system you already manage |
| With Alloy Host | Developer workstation: isolate environments without touching the host |
| In a Docker Image | Replace complex Dockerfiles with a declarative blueprint; CI base images |
For provisioner subcommands and flags (install, clone, --blueprint-dir, etc.), see Provisioner CLI.