# 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") ]; security.sudo.extraConfig = "Defaults lecture=never"; boot = { initrd = { availableKernelModules = ["xhci_pci" "aacraid" "ahci" "usbhid" "usb_storage" "sd_mod"]; kernelModules = []; # TODO: figure out some kind of snapshotting before rollbacks # postDeviceCommands = lib.mkAfter '' # zfs rollback -r rpool/root@blank # zfs rollback -r rpool/home@blank # ''; # systemd = { # enable = lib.mkDefault true; # services.rollback = { # description = "Rollback root filesystem to a pristine state on boot"; # wantedBy = [ # "zfs.target" # "initrd.target" # ]; # after = [ # "zfs-import-rpool.service" # ]; # before = [ # "sysroot.mount" # "fs.target" # ]; # path = with pkgs; [ # zfs # ]; # unitConfig.DefaultDependencies = "no"; # # serviceConfig = { # # Type = "oneshot"; # # ExecStart = # # "${config.boot.zfs.package}/sbin/zfs rollback -r rpool/home@blank"; # # }; # serviceConfig.Type = "oneshot"; # script = '' # zfs list -t snapshot || echo # zfs rollback -r rpool/root@blank # zfs rollback -r rpool/home@blank # ''; # }; # }; }; kernelModules = ["kvm-amd"]; kernelParams = ["quiet"]; extraModulePackages = []; supportedFilesystems = ["zfs"]; zfs.extraPools = ["rpool"]; }; swapDevices = []; # fileSystems = { # "/" = { # neededForBoot = true; # }; # "/home" = { # neededForBoot = true; # }; # "/persistent" = { # neededForBoot = true; # }; # }; networking = { hostId = "c51763d6"; hostName = "defiant"; # Define your hostname. useNetworkd = true; }; # environment.persistence."/persistent" = { # enable = true; # hideMounts = true; # directories = [ # # "/run/secrets" # "/etc/ssh" # "/var/log" # "/var/lib/nixos" # "/var/lib/systemd/coredump" # # config.apps.pihole.directory.root # # config.apps.jellyfin.mediaDirectory # # config.services.jellyfin.configDir # # config.services.jellyfin.cacheDir # # config.services.jellyfin.dataDir # # "/var/hass" # config.users.users.hass.home # # "/var/postgresql" # config.users.users.postgresql.home # # "/var/forgejo" # config.users.users.forgejo.home # # "/var/nextcloud" # config.users.users.nextcloud.home # # "/var/headscale" # config.users.users.headscale.home # ]; # files = [ # "/etc/machine-id" # # config.environment.sessionVariables.SOPS_AGE_KEY_FILE # ]; # users.leyla = { # directories = [ # "documents" # ".ssh" # ]; # files = []; # }; # }; # systemd.services = { # # https://github.com/openzfs/zfs/issues/10891 # systemd-udev-settle.enable = false; # # Snapshots are not accessible on boot for some reason this should fix it # # https://github.com/NixOS/nixpkgs/issues/257505 # zfs-mount = { # serviceConfig = { # # ExecStart = [ "${lib.getExe' pkgs.util-linux "mount"} -a -t zfs -o remount" ]; # ExecStart = [ # "${lib.getExe' pkgs.util-linux "mount"} -t zfs rpool/root -o remount" # "${lib.getExe' pkgs.util-linux "mount"} -t zfs rpool/home -o remount" # "${lib.getExe' pkgs.util-linux "mount"} -t zfs rpool/persistent -o remount" # ]; # }; # }; # }; systemd.network = { enable = true; netdevs = { "10-bond0" = { netdevConfig = { Kind = "bond"; Name = "bond0"; }; bondConfig = { Mode = "802.3ad"; TransmitHashPolicy = "layer3+4"; }; }; }; networks = { "30-enp4s0" = { matchConfig.Name = "enp4s0"; networkConfig.Bond = "bond0"; DHCP = "no"; }; "30-enp5s0" = { matchConfig.Name = "enp5s0"; networkConfig.Bond = "bond0"; DHCP = "no"; }; "40-bond0" = { matchConfig.Name = "bond0"; linkConfig.RequiredForOnline = "carrier"; networkConfig.LinkLocalAddressing = "no"; DHCP = "ipv4"; address = [ # configure addresses including subnet mask "192.168.1.10/24" # TODO: ipv6 address configuration ]; }; }; }; networking.networkmanager.enable = true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; hardware = { # TODO: hardware graphics cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; }; }