{ config, pkgs, ... }:

{
  imports =
    [
      ./hardware-configuration.nix
    ];

  boot.kernelParams = [ "console=ttyS0,115200n8" ];

  boot.loader.grub.enable = true;
  boot.loader.grub.device = "nodev";
  boot.loader.grub.efiSupport = true;
  boot.loader.efi.canTouchEfiVariables = true;
  boot.loader.grub.extraConfig = "
    serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
    terminal_input console serial
    terminal_output gfxterm serial
  ";

  boot.initrd.luks = {
    devices.lvm = {
      device = "/dev/disk/by-uuid/f5597381-b59b-4f19-94b7-fd69aac43d6f";
      bypassWorkqueues = true;
    };
    devices.crypt-storage-palladium = {
      device = "/dev/disk/by-uuid/c54396c0-b5d3-4e61-9ef7-483fa2b4a56d";
    };
  };

  boot.swraid.enable = true;

  networking.useDHCP = false;
  systemd.network.enable = true;

  systemd.network.networks."10-wan" = {
    matchConfig.Name = "enp3s0";
    address = [
      "fd00:152:152:4::11/64"
    ];
    networkConfig.DHCP = true;
    linkConfig.RequiredForOnline = "routable";
  };

  # Keeping the harddrives quiet
  services.udev.extraRules = ''
    KERNEL=="sd?[0-9]", ENV{ID_MODEL}=="ST1000DM003-1SB102", ACTION=="add", RUN+="${pkgs.hdparm}/sbin/hdparm -S 24 /dev/%k"
  '';

  system.stateVersion = "25.05";

}