From 45a1dd0a9a71e107caa1db414a3da430fafb7290 Mon Sep 17 00:00:00 2001 From: ooks-io Date: Fri, 18 Oct 2024 01:20:59 +1300 Subject: [PATCH] nixos: add ooknode init config --- hosts/ooknode/default.nix | 42 ++++++++++++++++ hosts/ooknode/hardware-configuration.nix | 64 ++++++++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 hosts/ooknode/default.nix create mode 100644 hosts/ooknode/hardware-configuration.nix diff --git a/hosts/ooknode/default.nix b/hosts/ooknode/default.nix new file mode 100644 index 0000000..7da0b5e --- /dev/null +++ b/hosts/ooknode/default.nix @@ -0,0 +1,42 @@ +{ + pkgs, + lib, + ... +}: let + inherit (lib) mkDefault; +in { + imports = [ + ./hardware-configuration.nix + ]; + + ooknet.host = { + name = "ooksnode"; + type = "vm"; + role = "server"; + profiles = ["console-tools"]; + admin = { + name = "ooks"; + shell = "fish"; + homeManager = true; + }; + networking = { + tailscale = { + enable = true; + client = true; + autoconnect = true; + }; + }; + hardware = { + cpu.type = "intel"; + features = [ + "ssd" + ]; + }; + }; + + boot = { + kernelPackages = pkgs.linuxKernel.packages.linux_zen; + }; + + system.stateVersion = mkDefault "23.11"; +} diff --git a/hosts/ooknode/hardware-configuration.nix b/hosts/ooknode/hardware-configuration.nix new file mode 100644 index 0000000..44cf66a --- /dev/null +++ b/hosts/ooknode/hardware-configuration.nix @@ -0,0 +1,64 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ + config, + lib, + modulesPath, + ... +}: { + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usb_storage" "sd_mod"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-intel"]; + boot.extraModulePackages = []; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283"; + fsType = "btrfs"; + options = ["subvol=root"]; + }; + + boot.initrd.luks.devices."cryptnix".device = "/dev/disk/by-uuid/014d725c-bf13-40a2-a9ab-0dd6185a95f6"; + + fileSystems."/nix" = { + device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283"; + fsType = "btrfs"; + options = ["subvol=nix"]; + }; + + fileSystems."/persist" = { + device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283"; + fsType = "btrfs"; + options = ["subvol=persist"]; + }; + + fileSystems."/swap" = { + device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283"; + fsType = "btrfs"; + options = ["subvol=swap"]; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/F356-6F9C"; + fsType = "vfat"; + }; + + swapDevices = []; + + # 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..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp61s0.useDHCP = lib.mkDefault true; + # networking.interfaces.wwan0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +}