Migrate from path-based persistence (/persist/var/lib/*) to dedicated BTRFS subvolumes for better data isolation and snapshot capabilities. - Move valuable user-facing services to /srv/* with srv-* subvolumes: - forgejo: git repositories and database - opengist: paste data - minecraft: game world data - lighttpd: static web content - containers: OCI container volumes - Update home directory to use hm-sajenim subvolume on viridian disk - Remove jupyterhub service (no longer in use) - Update borgbackup paths to match new service locations - Follow upstream service defaults where possible for maintainability Services kept on /persist (disposable state): - traefik, crowdsec, murmur
		
			
				
	
	
		
			66 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  config,
 | 
						|
  lib,
 | 
						|
  pkgs,
 | 
						|
  ...
 | 
						|
}: {
 | 
						|
  imports = [
 | 
						|
    # Our ephemeral system. Wipe root on reboot.
 | 
						|
    ../common/optional/ephemeral-btrfs.nix
 | 
						|
  ];
 | 
						|
 | 
						|
  # Boot configuration
 | 
						|
  boot = {
 | 
						|
    # Initial ramdisk
 | 
						|
    initrd = {
 | 
						|
      # The modules listed here are available in the initrd, but are only loaded on demand.
 | 
						|
      availableKernelModules = ["xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod"];
 | 
						|
      # List of modules that are always loaded by the initrd.
 | 
						|
      kernelModules = ["kvm-intel"];
 | 
						|
    };
 | 
						|
 | 
						|
    # Runtime parameters of the Linux kernel
 | 
						|
    kernel.sysctl = {
 | 
						|
      "net.ipv4.ip_unprivileged_port_start" = 0;
 | 
						|
    };
 | 
						|
 | 
						|
    # Our boot loader configuration
 | 
						|
    loader = {
 | 
						|
      efi = {
 | 
						|
        efiSysMountPoint = "/boot";
 | 
						|
        canTouchEfiVariables = true;
 | 
						|
      };
 | 
						|
      systemd-boot.enable = true;
 | 
						|
    };
 | 
						|
  };
 | 
						|
 | 
						|
  # Hardware configuration
 | 
						|
  hardware.graphics = {
 | 
						|
    enable = true;
 | 
						|
    extraPackages = with pkgs; [
 | 
						|
      intel-media-driver
 | 
						|
      vaapiIntel
 | 
						|
      vaapiVdpau
 | 
						|
      libvdpau-va-gl
 | 
						|
      intel-compute-runtime
 | 
						|
    ];
 | 
						|
  };
 | 
						|
 | 
						|
  # Setup our filesystems
 | 
						|
  fileSystems."/boot" = {
 | 
						|
    device = "/dev/disk/by-label/ESP";
 | 
						|
    fsType = "vfat";
 | 
						|
  };
 | 
						|
 | 
						|
  swapDevices = [
 | 
						|
    {
 | 
						|
      device = "/swap/swapfile";
 | 
						|
      size = 16 * 1024;
 | 
						|
    }
 | 
						|
  ];
 | 
						|
 | 
						|
  networking.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;
 | 
						|
}
 |