{ config, lib, ... }:

lib.extra.mkConfig {
  enabledModules = [
    # INFO: This list needs to stay sorted alphabetically
  ];

  enabledServices = [
    # INFO: This list needs to stay sorted alphabetically
    # Machine learning API machine
    # "microvm-ml01"
    # "microvm-router01"
    "nvidia-tesla-k80"
    "ollama"
    "whisper"
    "proxmox"
    "networking"
  ];

  extraConfig = {
    microvm = {
      host.enable = true;
    };
    dgn-hardware = {
      useZfs = true;
      zfsPools = [
        "dpool"
        "ppool0"
      ];
    };

    # We are going to use CUDA here.
    nixpkgs.config.cudaSupport = true;
    hardware.graphics.enable = true;

    services.netbird.enable = true;
    networking.firewall.trustedInterfaces = [ "wt0" ];
  };

  root = ./.;
}