Commit Graph
57 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
beatzaplenty 9db659d54e updated 2026-07-19 13:29:35 +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
beatzaplentyandClaude Sonnet 5 a90e736743 Simplify installer into shared common.nix + per-platform targets
Replaces the single monolithic installer.nix (preserved as
installer_old.nix for reference) with a shared common.nix carrying the
install-script/user/SSH baseline, consumed by per-platform targets
(installer.nix for netboot/ISO, new proxmox-lxc.nix for the Proxmox
LXC-based flow). flake.nix drops the nixos-generators input in favor
of building images directly from each nixosConfiguration's
system.build.isoImage/tarball.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-19 13:12:46 +10:00
beatzaplenty 48a879e2a0 enable lish console 2026-07-15 13:20:46 +10:00
beatzaplenty 2424a77da4 update mounts 2026-07-15 12:58:25 +10:00
beatzaplenty 4ab490b9ae remove exit for no disko config 2026-07-15 12:45:41 +10:00
beatzaplenty 96e8e39a45 add lsblk command 2026-07-15 10:29:49 +10:00
beatzaplenty 9d2d460640 add missing experimental features options to eval commands 2026-07-15 10:08:48 +10:00
beatzaplenty ebbae5e562 added exit back into script 2026-07-15 09:39:42 +10:00
beatzaplenty 7f5a06720e update .gitignore 2026-07-15 08:30:11 +10:00
beatzaplenty b3f5696daf Added .gitignore 2026-07-15 08:25:13 +10:00
beatzaplenty 90425148c3 remove exit from install script 2026-07-15 08:19:54 +10:00
beatzaplenty e326ea9d36 updated README 2026-07-15 07:42:10 +10:00
beatzaplenty 1f38ed3d8c removed disk actions and updated flake 2026-07-15 07:33:37 +10:00
beatzaplenty 3ebf411bc9 Update installer.nix 2026-06-02 22:08:45 +00:00
beatzaplenty 80966748ae updated outputs 2026-06-02 21:36:30 +00:00
beatzaplenty 61f73dd1d7 update lock 2026-06-02 21:12:22 +00:00
beatzaplenty fd68a32ad1 Update flake.nix 2026-06-02 20:57:35 +00:00
beatzaplenty 4e68d2cd26 Update flake.nix 2026-06-02 10:33:50 +00:00
beatzaplenty 655865e77a Update flake.nix 2026-06-02 10:32:14 +00:00
beatzaplenty bf0d980e6d Update flake.nix 2026-06-02 10:25:14 +00:00
beatzaplenty 0e79677059 Update installer.nix 2026-06-02 01:05:12 +00: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
beatzaplenty c4b14d3f83 modified: installer.nix 2025-07-21 18:46:32 +10:00
beatzaplenty 1249246dd9 modified: installer.nix 2025-07-21 18:45:56 +10:00
beatzaplenty c60990cdec modified: installer.nix 2025-07-21 18:45:32 +10:00
beatzaplenty 0fca2a029e modified: installer.nix 2025-07-21 18:44:48 +10:00
beatzaplenty 3c20a9944d modified: installer.nix 2025-07-21 18:44:07 +10:00
beatzaplenty 820328421e modified: installer.nix 2025-07-21 18:40:52 +10:00
beatzaplenty 92a36d87d9 modified: installer.nix 2025-07-21 18:30:16 +10:00
beatzaplenty e75946419b deleted: home.nix
modified:   installer.nix
2025-07-21 17:48:38 +10:00
beatzaplenty 4fe21b95af modified: flake.nix
modified:   installer.nix
2025-07-21 17:44:22 +10:00
beatzaplenty 48552c81d2 modified: flake.nix 2025-07-21 17:40:20 +10:00
beatzaplenty a32a70c0ba modified: home.nix 2025-07-21 17:37:50 +10:00
beatzaplenty 25119edb43 modified: home.nix 2025-07-21 17:36:40 +10:00
beatzaplenty 06e54f18ce modified: home.nix 2025-07-21 17:34:31 +10:00
beatzaplenty 32f7776aa4 modified: home.nix 2025-07-21 17:32:34 +10:00
beatzaplenty 60dc2b6342 modified: home.nix 2025-07-21 17:31:13 +10:00
beatzaplenty 948d4bd3bd modified: installer.nix 2025-07-21 17:28:31 +10:00
beatzaplenty 2c44b19359 modified: home.nix 2025-07-21 17:25:23 +10:00
beatzaplenty d83cf0c49b modified: flake.nix
new file:   home.nix
2025-07-21 17:24:08 +10:00
beatzaplenty bbf6496ca8 modified: installer.nix 2025-07-21 17:07:56 +10:00
beatzaplenty 5287daea14 modified: installer.nix 2025-07-21 17:06:52 +10:00
beatzaplenty 63a1207ff5 modified: installer.nix 2025-07-21 17:06:02 +10:00
beatzaplenty 3732e547e9 modified: installer.nix 2025-07-21 17:03:11 +10:00
beatzaplenty d48087fd7a modified: installer.nix 2025-07-21 16:56:04 +10:00
beatzaplenty ee705eb87d modified: installer.nix 2025-07-21 16:46:42 +10:00
beatzaplenty 73e1bc7835 modified: installer.nix 2025-07-21 16:39:41 +10:00
beatzaplenty ddc053c0cf modified: installer.nix 2025-07-21 13:24:05 +10:00
beatzaplenty 3934d53033 modified: installer.nix 2025-07-21 13:11:30 +10:00
beatzaplenty 860053235e modified: flake.nix 2025-07-21 12:47:15 +10:00
beatzaplenty 5bc6a3baff modified: flake.nix 2025-07-21 12:46:40 +10:00
beatzaplenty b2e8024deb modified: flake.nix 2025-07-21 12:46:19 +10:00
beatzaplenty 8e69415a42 modified: flake.nix 2025-07-21 12:44:59 +10:00
beatzaplenty f30cbc4275 new file: flake.nix
new file:   installer.nix
2025-07-21 12:40:13 +10:00