diff --git a/flake.nix b/flake.nix index a25e52a..0fb027d 100644 --- a/flake.nix +++ b/flake.nix @@ -64,6 +64,16 @@ ./desktop/office.nix ]; }; + skip01 = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + home-manager.nixosModules.home-manager + ./systems/common.nix + ./systems/skip01.nix + ./users/jsutter.nix + ./servers/common.nix + ]; + }; }; }; } diff --git a/systems/skip01.nix b/systems/skip01.nix new file mode 100644 index 0000000..3f2df3e --- /dev/null +++ b/systems/skip01.nix @@ -0,0 +1,84 @@ +{ config, lib, pkgs, modulesPath, ... }: { + networking.hostName = "skip01"; + + # CPU Settings for 13th gen Intel Core i5 + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + + # Boot and kernel modules for Intel NUC + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ "i915" ]; # Intel integrated graphics + boot.kernelModules = [ "kvm-intel" ]; # Intel virtualization support + boot.extraModulePackages = []; + + # Intel-specific kernel parameters + boot.kernelParams = [ + "i915.enable_guc=2" # Enable GuC and HuC for better power management + "intel_iommu=on" # Enable IOMMU for virtualization + ]; + + networking.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + + # Intel graphics support + hardware.opengl = { + enable = true; + driSupport = true; + driSupport32Bit = true; + extraPackages = with pkgs; [ + intel-media-driver # VAAPI driver for newer Intel GPUs + vaapiIntel # VAAPI driver for older Intel GPUs + vaapiVdpau + libvdpau-va-gl + ]; + }; + + # Power management optimized for server use + powerManagement = { + enable = true; + cpuFreqGovernor = "ondemand"; + }; + + # Thermal management + services.thermald.enable = true; + + # Server-oriented settings + services.openssh = { + enable = true; + settings = { + PasswordAuthentication = false; + KbdInteractiveAuthentication = false; + PermitRootLogin = "no"; + }; + }; + + # Swap configuration (smaller for server use) + swapDevices = [ + { + device = "/swapfile"; + size = 8192; # 8GB swap for server workload + priority = 0; + } + ]; + + # Enable hardware monitoring + hardware.sensor.iio.enable = true; + + # Network performance tuning for server use + boot.kernel.sysctl = { + "net.core.rmem_max" = 134217728; + "net.core.wmem_max" = 134217728; + "net.ipv4.tcp_rmem" = "4096 65536 134217728"; + "net.ipv4.tcp_wmem" = "4096 65536 134217728"; + "net.core.netdev_max_backlog" = 5000; + }; + + # Disable unnecessary services for server use + services.xserver.enable = lib.mkForce false; + services.pipewire.enable = lib.mkForce false; + services.pulseaudio.enable = lib.mkForce false; + + # Enable container support for future server services + virtualisation.docker.enable = true; + virtualisation.podman.enable = true; +}