{ pkgs, ... }:
{
  imports = [
    ./hardware-configuration.nix
    ./modules/jellyfin
    ./modules/networks
    ./modules/monitoring
    ./modules/nfs
  ];

  boot.loader.grub.enable = true;
  boot.loader.grub.devices = [ "/dev/sda" "/dev/sdb" ];
  boot = {
    kernelPackages = pkgs.linuxPackages_latest;
  };
  services.btrfs.autoScrub.enable = true;

  environment.persistence."/nix/persist/system" = {
    directories = [
      "/etc/ssh"
      "/root/.borgmatic"
      "/root/.local/share/zsh"
      "/root/.config/borg/security"
    ];
    files = [
      "/etc/machine-id"
    ];
  };

  time.timeZone = "Europe/Berlin";
  console = {
    font = "Lat2-Terminus16";
    keyMap = "dvorak";
  };

  environment.systemPackages = with pkgs; [
    vim
    htop-vim
    helix
    lsof
    btdu
    tcpdump
    mtr
    dnsutils
    mediainfo
  ];
  programs.git = {
    enable = true;
    config = {
      user.name = "Rouven Seifert";
      user.email = "rouven@rfive.de";
    };
  };

  services.openssh.enable = true;
  services.journald.gateway.enable = true;
  programs.mosh.enable = true;

  users.users.root.initialHashedPassword = "$y$j9T$hYM7FT2hn3O7OWBn9uz8e0$XquxONcPSke6YjdRGwOzGxC0/92hgP7PIB0y0K.Qdr/";
  users.users.root.openssh.authorizedKeys.keyFiles = [
    ../../keys/ssh/rouven-thinkpad
    ../../keys/ssh/root-thinkpad
    ../../keys/ssh/rouven-pixel
    ../../keys/ssh/root-falkenstein
  ];

  system.stateVersion = "24.05"; # Did you read the comment?
}

