STOKER
A declarative Debian ISO builder that compiles unattended installation, offline packages, networking, Ansible projects, manifests, and recovery-friendly controller tooling into a portable infrastructure appliance.
Problem
Disconnected deployments need more than a bootable ISO. They need reproducible package resolution, predictable networking, controller tooling, project delivery, integrity metadata, and a way to rebuild the appliance without preserving an undocumented golden image.
Constraints
- Build from Debian 13 amd64 netinst while preserving recognized BIOS and UEFI boot behavior.
- Resolve packages online at build time but leave the installed appliance capable of operating from its embedded repository.
- Keep secrets and mutable controller state out of reusable project bundles wherever possible.
- Allow runtime networking and Ansible project changes without requiring a full ISO rebuild for every operational adjustment.
Architecture
- 01
Declarative YAML drives installer policy, packages, modules, repositories, networking, and embedded Ansible projects.
- 02
A staged build pipeline validates, renders, resolves dependencies, constructs the offline APT repository, injects content, regenerates checksums, and replays source ISO boot equipment.
- 03
Installed controller projects use immutable version directories with atomic activation links, validation, sync, rollback, and verified USB import.
- 04
A shared network-role renderer keeps ifupdown, Kea, BIND, and nftables from independently guessing interface and subnet state.
Failures / lessons
- An offline appliance is a supply chain snapshot, so package trust, manifests, and reproducibility belong in the build design rather than in post-build documentation.
- Configuration ownership matters: one renderer should establish network truth before several services consume it.
- Portable automation becomes safer when project import is allowlisted, integrity-checked, and atomically activated.