No description
Find a file
Fabian Hauser 546063c938
All checks were successful
CI / build (push) Successful in 45s
Fix typo
2026-01-12 22:35:15 +08:00
.github/workflows Add new flake update method 2025-12-21 17:40:28 +02:00
.zed Add zed task for switchingthe system config 2025-03-07 15:08:08 +02:00
home-configurations Add work module with partially private config 2026-01-12 22:19:57 +08:00
home-modules Fix typo 2026-01-12 22:35:15 +08:00
nixos-configurations Remove wait-online configuration 2025-10-16 13:39:28 +03:00
nixos-modules Various small updates and add new work profile 2026-01-12 19:43:23 +08:00
packages/dotfiles-enroll-tpm Add documentation and script for secure boot 2025-03-07 15:06:46 +02:00
private@c1b45c1267 Add work module with partially private config 2026-01-12 22:19:57 +08:00
.envrc Add initial legacy configuration 2025-02-22 20:40:24 +02:00
.gitignore Add pre-commit fmt hook 2025-03-04 14:40:29 +02:00
.gitmodules Update private submodule url 2025-03-03 21:21:46 +02:00
flake.lock Update home-manager 2026-01-09 13:49:41 +01:00
flake.nix Various small updates and add new work profile 2026-01-12 19:43:23 +08:00
README.md Update README to hint at all installation steps more properly 2025-03-20 23:36:37 +02:00

Fabian's Dotfiles

System Setup

🐈‍⬛ This is how the process should be, not how it has been done... yet 😉

  1. systemctl reboot --firmware-setup: Activate enrollment of new Secure Boot key in the UEFI
  2. Boot into NixOS Live system
  3. TODOs at this point:
    • sops secrets encryption stuff.
    • LUKS HDD encryption with sops stuff
    • sudo sbctl create-keys with sops stuff.
    • See qo.is docs for inspiration
    • Configure attic cache substitution in nixos installer
  4. nixos-anywhere --copy-host-keys --build-on-remote \
      --generate-hardware-config nixos-facter ./nixos-configurations/$REMOTE_HOST/facter.json
      --extra-files ... \
      --chown ... \
      --disk-encryption-keys ... \
      --flake .#$REMOTE_HOSTNAME
      root@$REMOTE_IP
    
    • TODO:
      • with the secrets from above
      • don't do nixos-anywhere phase reboot (secure boot keys not enrolled yet)
  5. sudo sbctl enroll-keys --microsoft: Enroll our keys in UEFI
    • Keeps microsoft keys - some vendor firmware and Windows dual boot require this.
  6. sudo sbctl verify: Verify Secure Boot signatures.
    • /boot/EFI/nixos/kernel*.efi is not supposed to be signed.
  7. systemctl reboot: Boot into your new, signed system.
  8. bootctl status: Verify that a secure boot worked.
    • If not, activate secure boot and try again: systemctl reboot --firmware-setup
  9. dotfiles-enroll-tpm: Enroll the boot PCR measurement based LUKS unlock:

Secure Boot & TPM Disk Unlock

See lanzaboote documentation for more information on how to enable secure boot.

  • With nixos-rebuild {switch|boot}, new EFI files will be automatically signed.
  • In case your firmware or boot process changes, you need to insert the luks password manually.
    • This should not happen just because of kernel updates (but might with boot param changes.)
    • After a successful boot, you can re-enroll the new secure state with dotfiles-enroll-tpm.