every.channel/docs/RUNNER_IMAGES.md
2026-02-17 02:26:09 -08:00

1.7 KiB

Runner Images (NixOS)

This repo exports reproducible NixOS runner configurations via flake outputs:

  • nixosConfigurations.ec-runner-aarch64
  • nixosConfigurations.ec-runner-x86_64
  • nixosConfigurations.ec-runner-aarch64-netboot
  • nixosConfigurations.ec-runner-x86_64-netboot
  • nixosConfigurations.ec-runner-x86_64-iso
  • nixosConfigurations.ec-runner-aarch64-sdimage

The runner OS exposes this repo's flake source inside the system at:

  • /etc/every-channel/flake

This allows a runner to self-build and verify artifacts from the same flake definition.

Read-Only Root + tmpfs Writes

The base runner profile enables an initrd overlay that:

  • remounts the real / read-only, and
  • provides a tmpfs-backed writable overlay upperdir.

For reliable upgrades and operation, mount persistent filesystems for:

  • /boot (so new boot entries persist)
  • /nix (so store contents persist across reboots)
  • /var or selected /var/lib/* paths (for any state you care about)

Build (OrbStack / Linux)

These commands should be run inside a Linux environment with Nix enabled (e.g. OrbStack VM).

Build netboot artifacts (iPXE/PXE):

nix build .#nixosConfigurations.ec-runner-aarch64-netboot.config.system.build.netboot

Build an installer ISO (x86_64):

nix build .#nixosConfigurations.ec-runner-x86_64-iso.config.system.build.isoImage

Build an aarch64 SD image:

nix build .#nixosConfigurations.ec-runner-aarch64-sdimage.config.system.build.sdImage

Outputs

After building, artifacts will be in ./result (a symlink into the Nix store).

Common netboot outputs include:

  • kernel
  • initrd
  • netboot.ipxe

Exact filenames may vary across NixOS releases.