aboutsummaryrefslogtreecommitdiffstats
path: root/hosts/norad
diff options
context:
space:
mode:
authorsadbeast <sadbeast@sadbeast.com>2024-05-30 00:47:47 +0000
committersadbeast <sadbeast@sadbeast.com>2024-10-05 16:44:14 -0700
commit09513b5c4e4babfaefdd06c592ef34c0908dc572 (patch)
tree5a9af6ef0407346c223334e295adc8012654f112 /hosts/norad
downloadnix-config-main.tar.gz
nix-config-main.tar.bz2
oh god what have i doneHEADmain
Diffstat (limited to 'hosts/norad')
-rw-r--r--hosts/norad/default.nix26
-rw-r--r--hosts/norad/hardware-configuration.nix102
2 files changed, 128 insertions, 0 deletions
diff --git a/hosts/norad/default.nix b/hosts/norad/default.nix
new file mode 100644
index 0000000..c1126b2
--- /dev/null
+++ b/hosts/norad/default.nix
@@ -0,0 +1,26 @@
+{
+ imports = [
+ ./hardware-configuration.nix
+
+ ../common/global
+ ../common/optional/wireless.nix
+ ];
+
+ # Use the systemd-boot EFI boot loader.
+ boot.loader.systemd-boot.enable = true;
+ boot.loader.efi.canTouchEfiVariables = true;
+
+ networking.hostName = "norad";
+
+ # Slows down write operations considerably
+ nix.settings.auto-optimise-store = false;
+
+ services = {
+ logind.extraConfig = ''
+ HandleLidSwitchExternalPower=ignore
+ '';
+ };
+
+ # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
+ system.stateVersion = "24.05";
+}
diff --git a/hosts/norad/hardware-configuration.nix b/hosts/norad/hardware-configuration.nix
new file mode 100644
index 0000000..f9b6a44
--- /dev/null
+++ b/hosts/norad/hardware-configuration.nix
@@ -0,0 +1,102 @@
+{
+ config,
+ lib,
+ pkgs,
+ modulesPath,
+ ...
+}: {
+ imports = [
+ (modulesPath + "/installer/scan/not-detected.nix")
+ ];
+
+ boot.initrd.availableKernelModules = ["ehci_pci" "ahci" "firewire_ohci" "usb_storage" "sd_mod" "sr_mod" "sdhci_pci"];
+ boot.initrd.kernelModules = [];
+ boot.kernelModules = ["kvm-intel"];
+ boot.extraModulePackages = [];
+
+ boot.initrd.luks.devices."enc".device = "/dev/disk/by-uuid/088d061d-7a81-4a91-9d97-c5958d5d4b6c";
+
+ # Note `lib.mkBefore` is used instead of `lib.mkAfter` here.
+ #boot.initrd.postDeviceCommands = pkgs.lib.mkBefore ''
+ # mkdir -p /mnt
+
+ # # We first mount the btrfs root to /mnt
+ # # so we can manipulate btrfs subvolumes.
+ # mount -o subvol=/ /dev/mapper/enc /mnt
+
+ # # While we're tempted to just delete /root and create
+ # # a new snapshot from /root-blank, /root is already
+ # # populated at this point with a number of subvolumes,
+ # # which makes `btrfs subvolume delete` fail.
+ # # So, we remove them first.
+ # #
+ # # /root contains subvolumes:
+ # # - /root/var/lib/portables
+ # # - /root/var/lib/machines
+ # #
+ # # I suspect these are related to systemd-nspawn, but
+ # # since I don't use it I'm not 100% sure.
+ # # Anyhow, deleting these subvolumes hasn't resulted
+ # # in any issues so far, except for fairly
+ # # benign-looking errors from systemd-tmpfiles.
+ # btrfs subvolume list -o /mnt/root |
+ # cut -f9 -d' ' |
+ # while read subvolume; do
+ # echo "deleting /$subvolume subvolume..."
+ # btrfs subvolume delete "/mnt/$subvolume"
+ # done &&
+ # echo "deleting /root subvolume..." &&
+ # btrfs subvolume delete /mnt/root
+
+ # echo "restoring blank /root subvolume..."
+ # btrfs subvolume snapshot /mnt/root-blank /mnt/root
+
+ # # Once we're done rolling back to a blank snapshot,
+ # # we can unmount /mnt and continue on the boot process.
+ # umount /mnt
+ #'';
+
+ fileSystems."/boot" = {
+ device = "/dev/disk/by-uuid/2990-A0D7";
+ fsType = "vfat";
+ options = ["fmask=0022" "dmask=0022"];
+ };
+
+ fileSystems."/" = {
+ device = "/dev/disk/by-uuid/8bcaf4f2-c648-420d-8605-72407206244c";
+
+ fsType = "btrfs";
+ options = ["subvol=root" "compress=zstd" "noatime"];
+ };
+
+ fileSystems."/nix" = {
+ device = "/dev/disk/by-uuid/8bcaf4f2-c648-420d-8605-72407206244c";
+ fsType = "btrfs";
+ options = ["subvol=nix" "compress=zstd" "noatime"];
+ };
+
+ fileSystems."/persistent" = {
+ device = "/dev/disk/by-uuid/8bcaf4f2-c648-420d-8605-72407206244c";
+ fsType = "btrfs";
+ neededForBoot = true;
+ options = ["subvol=persistent" "compress=zstd" "noatime"];
+ };
+
+ # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
+ # (the default) this is the recommended approach. When using systemd-networkd it's
+ # still possible to use this option, but it's recommended to use it in conjunction
+ # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
+ networking = {
+ useDHCP = lib.mkDefault true;
+ wireless = {
+ enable = true;
+ userControlled.enable = true;
+ };
+ };
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware = {
+ cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+ graphics.enable = true;
+ };
+}