Get Started¶
alloy-provisioner is the engine that installs build environments from blueprints. It runs inside any Linux system. Choose the path that matches your situation:
-
On Linux (Native)
You have a Linux machine (PC, laptop, or server, test rack, an existing VM managed by your own tools like Vagrant, VirtualBox, or Proxmox, or a WSL2 distro). Install alloy-provisioner and run blueprints directly.
Best for: CI servers, test racks, shared build machines, manually provisioning your own VMs.
-
In a Docker Image
You want to replace a complex, hard-to-maintain Dockerfile with a declarative blueprint. alloy-provisioner runs inside the Docker build and produces a reproducible image using the same definition used by developers and CI.
Best for: CI base images, replacing multi-stage Dockerfiles and chains of dependent images.
-
CI/CD Pipelines
You run GitHub Actions, GitLab CI, Jenkins, or another pipeline and want every job to use the same blueprint-defined environment. alloy-provisioner runs in the runner and provisions the toolchain so builds are identical to local and other CI.
Best for: GitHub Actions, GitLab CI, Jenkins, Azure Pipelines, reproducible build jobs.
-
With Alloy Host
You are on a developer workstation (Windows, macOS, or Linux) and want isolated environments that don't touch your host machine. alloy-host manages VM and Docker lifecycles for you.
Best for: local development, quickly testing a blueprint before publishing, switching between project environments.
Which path should I choose?¶
| Situation | Recommended path |
|---|---|
| CI server or test rack (Linux PC/laptop/server) | Native |
| Existing VM I manage myself | Native: run alloy-provisioner inside the VM |
| Docker CI image or base image | Docker |
| GitHub Actions, GitLab CI, Jenkins, etc. | CI/CD |
| Developer workstation (want isolation) | alloy-host |
| Testing a blueprint before publishing | alloy-host |
| Multiple devs, same environment | Any path, all using the same blueprint |
Before you start¶
All paths require a Linux environment with:
- curl and wget: for downloading alloy-provisioner and toolchains
- apt: alloy-provisioner targets Debian/Ubuntu-based systems
- sudo or root access: provisioner tasks install system packages and tools
If you are using alloy-host or Docker, these requirements apply to the guest (the VM or container), not your host machine.
For a full list of provisioner subcommands and flags, see Provisioner CLI.