{ lib, ... }:

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

  enabledServices = [
    # List of services to enable
    "arkheon"
    "signal-irc-bridge"
    "ds-fr"
    "grafana"
    "hedgedoc"
    "kanidm"
    "librenms"
    "mastodon"
    "nextcloud"
    "outline"
    "plausible"
    "postgresql"
    "rstudio-server"
    "satosa"
    "signald"
    "stirling-pdf"
    "telegraf"
    "vaultwarden"
    "zammad"
  ];

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

    dgn-hardware.useZfs = true;

    services.netbird.enable = true;
  };

  root = ./.;
}