{self, ...}: { flake.nixosModules.arr = { pkgs, config, lib, ... }: let cfg = config.hostOptions.server; in { imports = [ self.nixosModules.hostOptions ]; services.radarr = { enable = true; openFirewall = false; dataDir = "${cfg.dataPath}/arr/radarr/"; settings.server = { bindAddress = "*"; port = 7878; }; }; services.lidarr = { enable = true; openFirewall = false; dataDir = "${cfg.dataPath}/arr/lidarr/"; settings.server = { bindAddress = "*"; port = 8686; }; }; services.sonarr = { enable = true; openFirewall = false; dataDir = "${cfg.dataPath}/arr/sonarr/"; settings.server = { bindAddress = "*"; port = 8989; }; }; services.prowlarr = { enable = true; openFirewall = false; dataDir = "${cfg.dataPath}/arr/prowlarr/"; settings.server = { bindAddress = "*"; port = 9696; }; }; users.users.prowlarr = { isSystemUser = true; group = "prowlarr"; }; users.groups.prowlarr = {}; systemd.services.prowlarr.serviceConfig = { DynamicUser = lib.mkForce false; User = lib.mkForce "prowlarr"; Group = lib.mkForce "prowlarr"; ReadWritePaths = ["${cfg.dataPath}/arr/prowlarr/"]; ExecStart = lib.mkForce "${pkgs.prowlarr}/bin/Prowlarr -nobrowser -data=${cfg.dataPath}/arr/prowlarr"; }; services.flaresolverr.enable = true; users.groups.arr = {}; users.users.radarr.extraGroups = ["arr"]; users.users.lidarr.extraGroups = ["arr"]; users.users.sonarr.extraGroups = ["arr"]; }; }