From 56336e0b7e2478762f210fbb8725d46c39c88fc5 Mon Sep 17 00:00:00 2001 From: Jake Ginesin Date: Thu, 21 Aug 2025 18:37:10 -0400 Subject: [PATCH] generation 498 25.11.20250714.62e0f05 --- flake.nix | 9 +++++- home/programs/polybar/default.nix | 4 +-- hosts/server-gpu/configuration.nix | 37 ++++++++++++++++++++++++ hosts/server-gpu/gpu.nix | 45 ++++++++++++++++++++++++++++++ hosts/server-gpu/ssh.nix | 19 +++++++++++++ 5 files changed, 111 insertions(+), 3 deletions(-) create mode 100644 hosts/server-gpu/configuration.nix create mode 100644 hosts/server-gpu/gpu.nix create mode 100644 hosts/server-gpu/ssh.nix diff --git a/flake.nix b/flake.nix index 6c48584..36184cf 100644 --- a/flake.nix +++ b/flake.nix @@ -56,7 +56,14 @@ nixosConfigurations.server = nixpkgs.lib.nixosSystem { modules = [ baseModule - ./hosts/thonkpad/configuration.nix + ./hosts/server/configuration.nix + ]; + }; + + nixosConfigurations.server-gpu = nixpkgs.lib.nixosSystem { + modules = [ + baseModule + ./hosts/server-gpu/configuration.nix ]; }; diff --git a/home/programs/polybar/default.nix b/home/programs/polybar/default.nix index 397508e..e83e940 100644 --- a/home/programs/polybar/default.nix +++ b/home/programs/polybar/default.nix @@ -136,8 +136,8 @@ in { # my savior: https://www.reddit.com/r/NixOS/comments/v8ikwq/polybar_doesnt_start_at_launch/ script = '' # echo "none" - # polybar mybar 2> /dev/null & disown - setsid polybar mybar > /dev/null 2> /dev/null &> /dev/null + polybar mybar 2> /dev/null & disown + # setsid polybar mybar > /dev/null 2> /dev/null &> /dev/null ''; }; diff --git a/hosts/server-gpu/configuration.nix b/hosts/server-gpu/configuration.nix new file mode 100644 index 0000000..5748d89 --- /dev/null +++ b/hosts/server-gpu/configuration.nix @@ -0,0 +1,37 @@ +{ + config, + pkgs, + lib, + ... +}: { + imports = [ + ./hardware-configuration.nix + ../../system/system.nix + ../meta.nix + ./ssh.nix + ./gpu.nix + ]; + + config = { + networking.hostName = "server-gpu"; # Define your hostname. + res = "2560x1440"; + + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + backupFileExtension = "backup"; + users.synchronous.imports = [../../home/home.nix]; + }; + + # Bootloader. + # boot.loader.grub.enable = true; + # boot.loader.grub.device = "/dev/nvme0n1"; + # boot.loader.grub.useOSProber = true; + # boot.loader.grub.version = 2; + # services.logind.lidSwitchExternalPower = "ignore"; + + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + boot.loader.grub.enable = false; + }; +} diff --git a/hosts/server-gpu/gpu.nix b/hosts/server-gpu/gpu.nix new file mode 100644 index 0000000..68a7596 --- /dev/null +++ b/hosts/server-gpu/gpu.nix @@ -0,0 +1,45 @@ +{ + config, + pkgs, + ... +}: { + # just taken from: https://nixos.wiki/wiki/Nvidia + + # Enable OpenGL + hardware.graphics = { + enable = true; + }; + + # Load nvidia driver for Xorg and Wayland + services.xserver.videoDrivers = ["nvidia"]; + + hardware.nvidia = { + # Modesetting is required. + modesetting.enable = true; + + # Nvidia power management. Experimental, and can cause sleep/suspend to fail. + # Enable this if you have graphical corruption issues or application crashes after waking + # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead + # of just the bare essentials. + powerManagement.enable = false; + + # Fine-grained power management. Turns off GPU when not in use. + # Experimental and only works on modern Nvidia GPUs (Turing or newer). + powerManagement.finegrained = false; + + # Use the NVidia open source kernel module (not to be confused with the + # independent third-party "nouveau" open source driver). + # Support is limited to the Turing and later architectures. Full list of + # supported GPUs is at: + # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus + # Only available from driver 515.43.04+ + open = false; + + # Enable the Nvidia settings menu, + # accessible via `nvidia-settings`. + nvidiaSettings = true; + + # Optionally, you may need to select the appropriate driver version for your specific GPU. + package = config.boot.kernelPackages.nvidiaPackages.stable; + }; +} diff --git a/hosts/server-gpu/ssh.nix b/hosts/server-gpu/ssh.nix new file mode 100644 index 0000000..e88f023 --- /dev/null +++ b/hosts/server-gpu/ssh.nix @@ -0,0 +1,19 @@ +{ + config, + pkgs, + ... +}: { + services.openssh.enable = true; + + # Disable password login for security + services.openssh.settings.PasswordAuthentication = false; + services.openssh.settings.PermitRootLogin = "no"; + + # Add your authorized key for a specific user + users.users.yourusername = { + isNormalUser = true; + openssh.authorizedKeys.keys = [ + config.age.secrets.ssh-pub + ]; + }; +}