{ lib, ... }:

lib.extra.mkConfig {
  enabledModules = [
    # List of modules to enable
    "dgn-dns"
    "dgn-fail2ban"
    "dgn-web"
  ];

  enabledServices = [
    # List of services to enable
    "ds-fr"
    "hedgedoc"
    "k-radius"
    "kanidm"
    "mastodon"
    "nextcloud"
    "outline"
    "rstudio-server"
    "satosa"
    "vaultwarden"
    "zammad"
  ];

  extraConfig = {
    dgn-fail2ban.jails = lib.extra.enableAttrs' "enabled" [
      "sshd-bruteforce"
      "sshd-timeout"
    ];

    dgn-hardware.useZfs = true;

    services.netbird.enable = true;
  };

  root = ./.;
}