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 every downloaded file against its SHA256 checksum.
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:
Or search the catalog locally:
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.