Get started: build environments¶
alloy-provisioner is the engine that installs build environments from blueprints. It runs inside any Linux system.
This is the reproduce leg of the loop: the same blueprint that gives your team a consistent toolchain today is what lets you reconstruct the build environment for an affected release years from now. If your job right now is CRA readiness rather than toolchains, start with CRA operations instead.
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 |
New to blueprints?¶
If you need to create or customize a blueprint for your project, start by cloning an existing one from Alloy Hub rather than writing from scratch. Browse the hub for a blueprint that matches your board or toolchain, clone it locally, and adjust it to fit your needs.
# List available community blueprints
alloy-provisioner clone --list community
# Clone a blueprint to a local directory
alloy-provisioner clone community/nordic/nrf91:1.1.3 --output ./my-blueprint
Clone and customize a 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.