feat: nixos-installer template (bootable USB installer ISO with key-only SSH) #5

Open
jingus wants to merge 2 commits from nixos-installer-template into main
Owner

Adds a nixos-installer template: a flake that builds a bootable USB
NixOS installer ISO (hybrid BIOS/UEFI, x86_64 + aarch64) with
preconfigured key-only SSH, NetworkManager, flake-enabled nix, a serial
console, and a rescue/install toolkit — everything in one editable
NixOS module (nixos/installer.nix).

  • packages.iso — the image (nix build .#iso, flash with cp/dd)
  • apps.vm — boots the ISO under qemu with ssh forwarded to :2222
  • apps.validate — lockfile gate, full eval of both systems, and a
    real QEMU boot smoke waiting for the serial autologin shell
  • per-system evaluator checks pinning the intent (key-only ssh, NM)
  • registered in flake.templates; root README updated

Root CI: the templates job skips this one (building + booting a full
NixOS closure each push is too slow); it was validated locally —
nix flake check and nix run .#validate both pass on a fresh copy
(ISO built, booted under KVM, login shell reached), and
nix flake init -t ...#nixos-installer + check passes on the
initialized copy.

Adds a `nixos-installer` template: a flake that builds a bootable USB NixOS installer ISO (hybrid BIOS/UEFI, x86_64 + aarch64) with preconfigured key-only SSH, NetworkManager, flake-enabled nix, a serial console, and a rescue/install toolkit — everything in one editable NixOS module (`nixos/installer.nix`). - `packages.iso` — the image (`nix build .#iso`, flash with `cp`/`dd`) - `apps.vm` — boots the ISO under qemu with ssh forwarded to :2222 - `apps.validate` — lockfile gate, full eval of both systems, and a real QEMU boot smoke waiting for the serial autologin shell - per-system evaluator checks pinning the intent (key-only ssh, NM) - registered in `flake.templates`; root README updated Root CI: the templates job skips this one (building + booting a full NixOS closure each push is too slow); it was validated locally — `nix flake check` and `nix run .#validate` both pass on a fresh copy (ISO built, booted under KVM, login shell reached), and `nix flake init -t ...#nixos-installer` + check passes on the initialized copy.
feat: nixos-installer template (bootable USB installer ISO with key-only SSH)
Some checks failed
ci / templates (push) Failing after 9s
ci / flake-check (push) Successful in 26s
ci / templates (pull_request) Failing after 7s
ci / flake-check (pull_request) Successful in 21s
333dabb709
Merge remote-tracking branch 'origin/main' into nixos-installer-template
Some checks failed
ci / templates (push) Failing after 4s
ci / flake-check (push) Successful in 18s
ci / flake-check (pull_request) Successful in 14s
ci / templates (pull_request) Failing after 4s
2789d1fa61
# Conflicts:
#	README.md
#	nix-modules/templates.nix
Some checks failed
ci / templates (push) Failing after 4s
ci / flake-check (push) Successful in 18s
ci / flake-check (pull_request) Successful in 14s
ci / templates (pull_request) Failing after 4s
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin 'nixos-installer-template:nixos-installer-template'
git switch 'nixos-installer-template'

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch 'main'
git merge --no-ff 'nixos-installer-template'
git switch 'nixos-installer-template'
git rebase 'main'
git switch 'main'
git merge --ff-only 'nixos-installer-template'
git switch 'nixos-installer-template'
git rebase 'main'
git switch 'main'
git merge --no-ff 'nixos-installer-template'
git switch 'main'
git merge --squash 'nixos-installer-template'
git switch 'main'
git merge --ff-only 'nixos-installer-template'
git switch 'main'
git merge 'nixos-installer-template'
git push origin 'main'
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jingus/starters!5
No description provided.