diff --git a/modules/services/indexers/default.nix b/modules/services/indexers/default.nix index fb06a0b..66f1604 100644 --- a/modules/services/indexers/default.nix +++ b/modules/services/indexers/default.nix @@ -60,22 +60,6 @@ in port = prowlarrPort; } ]; - - services.fail2ban.jails = { - prowlarr = '' - enabled = true - filter = prowlarr - action = iptables-allports - ''; - }; - - environment.etc = { - "fail2ban/filter.d/prowlarr.conf".text = '' - [Definition] - failregex = ^.*\|Warn\|Auth\|Auth-Failure ip username .*$ - journalmatch = _SYSTEMD_UNIT=prowlarr.service - ''; - }; }) ]; } diff --git a/modules/services/pirate/default.nix b/modules/services/pirate/default.nix index 7c341e7..42dd12b 100644 --- a/modules/services/pirate/default.nix +++ b/modules/services/pirate/default.nix @@ -13,65 +13,26 @@ let sonarr = 8989; }; - mkService = service: { - services.${service} = { - enable = true; - group = "media"; - }; - }; + managers = with lib.attrsets; + (mapAttrs + (_: _: { + enable = true; + group = "media"; + }) + ports); - mkRedirection = service: { - my.services.nginx.virtualHosts = [ - { - subdomain = service; - port = ports.${service}; - } - ]; - }; - - mkFail2Ban = service: { - services.fail2ban.jails = { - ${service} = '' - enabled = true - filter = ${service} - action = iptables-allports - ''; - }; - - environment.etc = { - "fail2ban/filter.d/${service}.conf".text = '' - [Definition] - failregex = ^.*\|Warn\|Auth\|Auth-Failure ip username .*$ - journalmatch = _SYSTEMD_UNIT=${service}.service - ''; - }; - }; - - mkFullConfig = service: lib.mkMerge [ - (mkService service) - (mkRedirection service) - ]; + redirections = lib.flip lib.mapAttrsToList ports + (subdomain: port: { inherit subdomain port; }); in { options.my.services.pirate = { enable = lib.mkEnableOption "Media automation"; }; - config = lib.mkIf cfg.enable (lib.mkMerge [ - { - # Set-up media group - users.groups.media = { }; - } - # Bazarr does not log authentication failures... - (mkFullConfig "bazarr") - # Lidarr for music - (mkFullConfig "lidarr") - (mkFail2Ban "lidarr") - # Radarr for movies - (mkFullConfig "radarr") - (mkFail2Ban "radarr") - # Sonarr for shows - (mkFullConfig "sonarr") - (mkFail2Ban "sonarr") - ]); + config = lib.mkIf cfg.enable { + services = managers; + my.services.nginx.virtualHosts = redirections; + # Set-up media group + users.groups.media = { }; + }; }