Commit Graph
5 Commits
Author SHA1 Message Date
beatzaplentyandClaude Sonnet 5 0c70c63371 Restructure build outputs into iso/lxc/pxe/all, fix broken LXC tarball
proxmox-lxc.nix was missing nixpkgs's own
nixos/modules/virtualisation/proxmox-lxc.nix — the module that actually
provides system.build.tarball — so nix build .#images (the old
combined target) failed with "attribute 'tarball' missing" for the LXC
half. Importing it (enabled by default) fixes this with no other
config needed.

flake.nix packages now expose exactly four targets instead of the
previous ad-hoc netboot-ipxe/netboot-initrd/netboot-kernel/images:
  - iso  — installer ISO/netboot image
  - lxc  — Proxmox LXC installer tarball
  - pxe  — the three netboot components, bundled
  - all  — iso + lxc + pxe, bundled

README updated to match (Build Targets section replaces the stale
nixos-generators-based instructions).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-19 14:12:38 +10:00
beatzaplentyandClaude Sonnet 5 5a7bdea454 Document the sops-nix host-key pre-seeding process end-to-end
Adds a "Creating a New Machine" walkthrough tying together the steps
that were previously scattered or missing entirely: running
scripts/prepare-host-key.sh, editing .sops.yaml + sops updatekeys,
pushing nixos, scp'ing the key to the live installer, and verifying
/run/secrets after first boot.

Also fixes several places that still described the pre-refactor
layout (installer.nix as the sole config file, only the nixos user
triggering the installer, "Pre-Seeding..." section name that no
longer existed) to match the current common.nix/installer.nix/
proxmox-lxc.nix split.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-19 13:34:49 +10:00
beatzaplentyandClaude Sonnet 5 02ea1929e5 Pre-seed SSH host keys so sops-nix secrets decrypt on first boot
sops-nix (in the nixos flake) derives each host's age decryption key
from its own /etc/ssh/ssh_host_ed25519_key at activation time, which
runs before systemd would otherwise generate that key on first boot
(sshd-keygen is a plain systemd service gated behind multi-user.target;
activation scripts run earlier). Without pre-seeding, secrets --
including the login password -- fail to decrypt on a fresh install's
very first boot.

- scripts/prepare-host-key.sh: run on the admin workstation before an
  install, generates the host's ed25519 keypair and prints the exact
  steps to register its derived age key in nixos/.sops.yaml and
  re-encrypt the affected secrets/*.yaml files.
- common.nix's auto-install.sh: after disko mounts /mnt and before
  nixos-install, installs a pre-seeded key from /root/host-keys/ into
  /mnt/etc/ssh/ if present, otherwise warns and asks for confirmation
  before continuing without one.
- installer.nix now imports common.nix (previously only proxmox-lxc.nix
  did), so the ISO/netboot path used for EFI VM installs gets the same
  auto-install.sh and pre-seed check, not just the LXC path.
- Also fixes a pre-existing stray backtick in the disko invocation that
  broke auto-install.sh's bash syntax entirely, independent of this
  change (found while rendering the script to verify the new logic).

README.md documents the new pre-flight workflow.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-19 13:21:33 +10:00
beatzaplenty e326ea9d36 updated README 2026-07-15 07:42:10 +10:00
beatzaplenty ec0c04d766 added readme and updated auto-install.sh script to dynamically derive hostnames from flake 2026-06-01 18:19:48 +10:00