{ config, pkgs, ... }:

{
  imports = [
    ./hardware-configuration.nix

    # CLI
    ../../modules/system/cli/common.nix
    ../../modules/system/cli/docker.nix

    # Hardware
    ../../modules/system/hardware/firewall.nix
    ../../modules/system/hardware/garbage-collection.nix
    ../../modules/system/hardware/locale.nix
  ];

  nix.settings = {
    experimental-features = [ "nix-command" "flakes" ];

    substituters = [
      "https://nix-community.cachix.org"
    ];
  };

  # Bootloader.
  boot.loader.efi.canTouchEfiVariables = true;
  boot.loader.systemd-boot.enable = true;

  networking.hostName = "pm01vm01"; # Define your hostname.

  users.users.xeovalyte = {
    isNormalUser = true;
    description = "Timo Boomers";
    extraGroups = [ "networkmanager" "wheel" ];
  };

  # Enable ssh
  services.openssh.enable = true;

  # Forward ports
  networking.firewall = {
    allowedTCPPorts = [ 80 443 53 ];
    allowedUDPPorts = [ 53 ];
  };

  system.stateVersion = "24.05";

}
