← Features
Provisioning

The engine

Provisioning runs from an installer, where there is no terminal to answer a prompt. So every step is unattended, every step is named, and the run stops at the first failure — a report of six failures where there was one is a report nobody can act on.

Eleven steps, pinned by digest

  • Acquire and verify — five artefacts, five steps: the Alpine rootfs, the static Linux engine, the Windows CLI zip, and the Compose and Buildx plugins. Each checked against a digest recorded in this repository, not one served by the same host as the file.
  • Inspect before touching WSL — the tarball's member list is read locally, so a bad archive is caught before a distribution exists.
  • wsl --import freewilly … --version 2 — a fixed name that is this tool's, so your own apt upgrade or unregister cannot take the engine with it.
  • Install inside it — one non-interactive sh script under set -e; iptables and socat from apk, the binaries into /usr/local/bin, systemd=false.
  • Place the Windows CLI — docker.exe under %LOCALAPPDATA%\FreeWilly\bin, for the installer to add to PATH.
  • Place the plugins — Compose and Buildx go where the CLI looks for one, so docker compose and docker buildx work from the install rather than from a second download.

Look before you download

--plan prints every pinned version, digest and path and reaches nothing at all. --acquire downloads and verifies and stops before WSL2 is touched — both change nothing outside this tool's own directory.