From 1c52bd6f99eaed79573d20b04f857e96302136db Mon Sep 17 00:00:00 2001 From: Lauren Lagarde Date: Sun, 10 Aug 2025 13:18:25 -0500 Subject: [PATCH] Initial redoubt in-situ fixes --- .sops.yaml | 1 + flake.nix | 20 +++++++++--- sdcard.sh | 6 ++++ secrets.tar.zst.gpg | Bin 7321 -> 6318 bytes systems/redoubt/.sops.yaml | 12 +++++++ systems/redoubt/configuration.nix | 10 +++--- systems/redoubt/secrets.yaml | 51 ++++++++++++++++++++++++++++++ 7 files changed, 91 insertions(+), 9 deletions(-) create mode 100755 sdcard.sh create mode 100644 systems/redoubt/.sops.yaml create mode 100644 systems/redoubt/secrets.yaml diff --git a/.sops.yaml b/.sops.yaml index e67868a..b0301ff 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -6,6 +6,7 @@ # nix-shell -p ssh-to-age --run 'ssh-to-age -i ~/.ssh/id_ed25519.pub' keys: - &system_bastion age1up8uth9hwtd9gup3v32l8dypdarj77s2lysm8js8w8mwa80rk4ds76ke6d + - &system_redoubt age1ftcr6legvdxc2yn2zedqqsxaax3wedxqw5ad2k2f0m4vprfc3u9sgxty7t - &system_fortress age1fraz2lnnqtcxnu6tnjy4f7y9tuc0fnqekzmdynnhtt0h8a230v5qddpxdu - &system_blockhouse age14j6ns297c49wx5d8jddctfmek0kvn8rvw3y03nw3pankc03dlpuqhvvy7c - &system_living_room age1kmt2khucyvscmwvrjnt0v90zggttuap9utx7rw54g9amhtrkzdlq94fe4j diff --git a/flake.nix b/flake.nix index 5015109..d50da4f 100644 --- a/flake.nix +++ b/flake.nix @@ -57,9 +57,20 @@ "profiles/base.nix" ]; - # Allows for remote deployment via - # nixos-rebuild -L switch --flake .?submodules=1#HOSTNAME --target-host USER@HOSTNAME - #nix.settings.require-sigs = false; + boot.loader.grub.enable = false; + boot.loader.generic-extlinux-compatible.enable = true; + + fileSystems = { + "/" = { + device = "/dev/disk/by-label/NIXOS_SD"; + fsType = "ext4"; + }; + + "/boot/firmware" = { + device = "/dev/disk/by-label/FIRMWARE"; + fsType = "vfat"; + }; + }; }]; # TODO: Surely a better way, no? @@ -290,8 +301,7 @@ sops.defaultSopsFile = ./secrets.yaml; } - ./nixos/features/openssh-server.nix - ./users/lauren_lagarde/lauren_lagarde.nix + ./systems/redoubt/configuration.nix sops-nix.nixosModules.sops home-manager.nixosModules.home-manager diff --git a/sdcard.sh b/sdcard.sh new file mode 100755 index 0000000..95d0f5b --- /dev/null +++ b/sdcard.sh @@ -0,0 +1,6 @@ +if [[ -z "$1" ]]; then + echo "You must specify a nixosConfigurations target!" + exit +fi + +nixos-rebuild build-image --image-variant sd-card --flake ".#$1" diff --git a/secrets.tar.zst.gpg b/secrets.tar.zst.gpg index 2dbc5443bf00a53958b6358448ac110bbc2770da..dbac6b9249570c0bb7c4028c31d28178173035e7 100644 GIT binary patch literal 6318 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 literal 7321 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