Loading nixos/modules/services/misc/servarr/prowlarr.nix +52 −13 Original line number Diff line number Diff line Loading @@ -13,6 +13,12 @@ in services.prowlarr = { enable = lib.mkEnableOption "Prowlarr, an indexer manager/proxy for Torrent trackers and Usenet indexers"; dataDir = lib.mkOption { type = lib.types.str; default = "/var/lib/prowlarr"; description = "The directory where Prowlarr stores its data files."; }; package = lib.mkPackageOption pkgs "prowlarr" { }; openFirewall = lib.mkOption { Loading @@ -24,30 +30,63 @@ in settings = servarr.mkServarrSettingsOptions "prowlarr" 9696; environmentFiles = servarr.mkServarrEnvironmentFiles "prowlarr"; user = lib.mkOption { type = lib.types.str; default = "prowlarr"; description = '' User account under which Prowlarr runs. ''; }; group = lib.mkOption { type = lib.types.str; default = "prowlarr"; description = '' Group under which Prowlarr runs. ''; }; }; }; config = lib.mkIf cfg.enable { systemd.services.prowlarr = { systemd = { services.prowlarr = { description = "Prowlarr"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; environment = servarr.mkServarrSettingsEnvVars "PROWLARR" cfg.settings // { HOME = "/var/empty"; }; environment = servarr.mkServarrSettingsEnvVars "PROWLARR" cfg.settings; serviceConfig = { Type = "simple"; DynamicUser = true; StateDirectory = "prowlarr"; User = cfg.user; Group = cfg.group; EnvironmentFile = cfg.environmentFiles; ExecStart = "${lib.getExe cfg.package} -nobrowser -data=/var/lib/prowlarr"; ExecStart = "${lib.getExe cfg.package} -nobrowser -data='${cfg.dataDir}'"; Restart = "on-failure"; }; }; tmpfiles.settings."10-prowlarr".${cfg.dataDir}.d = { inherit (cfg) user group; mode = "0700"; }; }; networking.firewall = lib.mkIf cfg.openFirewall { allowedTCPPorts = [ cfg.settings.server.port ]; }; users.users = lib.mkIf (cfg.user == "prowlarr") { prowlarr = { isSystemUser = true; group = cfg.group; home = cfg.dataDir; }; }; users.groups = lib.mkIf (cfg.group == "prowlarr") { prowlarr = { }; }; }; } Loading
nixos/modules/services/misc/servarr/prowlarr.nix +52 −13 Original line number Diff line number Diff line Loading @@ -13,6 +13,12 @@ in services.prowlarr = { enable = lib.mkEnableOption "Prowlarr, an indexer manager/proxy for Torrent trackers and Usenet indexers"; dataDir = lib.mkOption { type = lib.types.str; default = "/var/lib/prowlarr"; description = "The directory where Prowlarr stores its data files."; }; package = lib.mkPackageOption pkgs "prowlarr" { }; openFirewall = lib.mkOption { Loading @@ -24,30 +30,63 @@ in settings = servarr.mkServarrSettingsOptions "prowlarr" 9696; environmentFiles = servarr.mkServarrEnvironmentFiles "prowlarr"; user = lib.mkOption { type = lib.types.str; default = "prowlarr"; description = '' User account under which Prowlarr runs. ''; }; group = lib.mkOption { type = lib.types.str; default = "prowlarr"; description = '' Group under which Prowlarr runs. ''; }; }; }; config = lib.mkIf cfg.enable { systemd.services.prowlarr = { systemd = { services.prowlarr = { description = "Prowlarr"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; environment = servarr.mkServarrSettingsEnvVars "PROWLARR" cfg.settings // { HOME = "/var/empty"; }; environment = servarr.mkServarrSettingsEnvVars "PROWLARR" cfg.settings; serviceConfig = { Type = "simple"; DynamicUser = true; StateDirectory = "prowlarr"; User = cfg.user; Group = cfg.group; EnvironmentFile = cfg.environmentFiles; ExecStart = "${lib.getExe cfg.package} -nobrowser -data=/var/lib/prowlarr"; ExecStart = "${lib.getExe cfg.package} -nobrowser -data='${cfg.dataDir}'"; Restart = "on-failure"; }; }; tmpfiles.settings."10-prowlarr".${cfg.dataDir}.d = { inherit (cfg) user group; mode = "0700"; }; }; networking.firewall = lib.mkIf cfg.openFirewall { allowedTCPPorts = [ cfg.settings.server.port ]; }; users.users = lib.mkIf (cfg.user == "prowlarr") { prowlarr = { isSystemUser = true; group = cfg.group; home = cfg.dataDir; }; }; users.groups = lib.mkIf (cfg.group == "prowlarr") { prowlarr = { }; }; }; }