diff --git a/flake.nix b/flake.nix index 43e4278..500ef39 100644 --- a/flake.nix +++ b/flake.nix @@ -61,6 +61,7 @@ server = nixpkgs.lib.nixosSystem { inherit system pkgs; modules = [ + disko.nixosModules.disko ./src/system/machines/server home-manager.nixosModules.home-manager (import ./src/system/machines/server/modules/home-manager) diff --git a/src/system/machines/server/hardware.nix b/src/system/machines/server/hardware.nix index 7f31eed..8a9ebe5 100644 --- a/src/system/machines/server/hardware.nix +++ b/src/system/machines/server/hardware.nix @@ -1,26 +1,22 @@ { config, lib, modulesPath, ... }: { - imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ./modules/disko + ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usbhid" "sd_mod" "sr_mod" ]; - boot.initrd.kernelModules = [ "dm-snapshot" ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; - - fileSystems = { - "/" = { - device = "/dev/disk/by-uuid/0fviSz-6z7Q-oH7Y-JOzH-nRxW-c029-2LxSqo"; - fsType = "ext4"; - }; - - "/boot" = { - device = "/dev/disk/by-uuid/3BAA-D9DC"; - fsType = "vfat"; + boot = { + initrd = { + availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usbhid" "sd_mod" "sr_mod" ]; + kernelModules = [ ]; }; + kernelModules = [ "kvm-intel" ]; + extraModulePackages = [ ]; }; - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - powerManagement.cpuFreqGovernor = lib.mkDefault "performance"; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand"; } diff --git a/src/system/machines/server/modules/disko/default.nix b/src/system/machines/server/modules/disko/default.nix new file mode 100644 index 0000000..8f5d43e --- /dev/null +++ b/src/system/machines/server/modules/disko/default.nix @@ -0,0 +1,75 @@ +{ lib, ... }: + +{ + disko.devices = { + disk = { + main = { + type = "disk"; + device = "/dev/sda"; + content = { + type = "gpt"; + partitions = { + ESP = { + size = "512M"; + type = "EF00"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + mountOptions = [ "umask=0077" ]; + }; + }; + lvm = { + size = "100%"; + content = { + type = "lvm_pv"; + vg = "vg0"; + }; + }; + }; + }; + }; + }; + + lvm_vg = { + vg0 = { + type = "lvm_vg"; + lvs = { + root = { + size = "200G"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/"; + }; + }; + data = { + size = "1T"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/data"; + }; + }; + bitcoin = { + size = "1T"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/var/lib/bitcoin"; + }; + }; + frigate = { + size = "3T"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/var/lib/frigate"; + }; + }; + # ~300GB left unallocated for future growth + }; + }; + }; + }; +} diff --git a/src/system/machines/server/system.nix b/src/system/machines/server/system.nix index 3f51b82..affe872 100644 --- a/src/system/machines/server/system.nix +++ b/src/system/machines/server/system.nix @@ -1,19 +1,20 @@ { pkgs, lib, config, ... }: -{ system.stateVersion = "23.11"; +{ system.stateVersion = "25.11"; imports = [ ../../modules ]; - modules = { - system = { - nginx.enable = true; - forgejo.enable = true; - bitcoin = { - enable = true; - electrum.enable = true; - }; - }; - }; + # Modules disabled for base install + # modules = { + # system = { + # nginx.enable = true; + # forgejo.enable = true; + # bitcoin = { + # enable = true; + # electrum.enable = true; + # }; + # }; + # }; users.users = { ${config.user.name} = { @@ -98,7 +99,7 @@ networkmanager.enable = true; firewall = { enable = true; - allowedTCPPorts = [ 22 80 443 ]; + allowedTCPPorts = [ 22 ]; }; };