From 9a67194bdf06543ad16cd8a56dd4cd059952faed Mon Sep 17 00:00:00 2001 From: Edward Pierzchalski Date: Mon, 20 Oct 2025 16:37:12 +1100 Subject: [PATCH] prowlarr: use the NixOS module as much as possible This brings `prowlarr` in line with how `sonarr` and `radarr` are set up, which (among other things) lets users use `services.prowlarr.settings` to e.g. configure Postgres or URL base. --- nixarr/prowlarr/default.nix | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/nixarr/prowlarr/default.nix b/nixarr/prowlarr/default.nix index a9f4fa6..e76b828 100644 --- a/nixarr/prowlarr/default.nix +++ b/nixarr/prowlarr/default.nix @@ -84,19 +84,20 @@ in { "d '${cfg.stateDir}' 0700 ${globals.prowlarr.user} root - -" ]; - systemd.services.prowlarr = { - description = "prowlarr"; - after = ["network.target"]; - wantedBy = ["multi-user.target"]; - environment.PROWLARR__SERVER__PORT = builtins.toString cfg.port; + services.prowlarr = { + enable = cfg.enable; + package = cfg.package; + settings.server.port = cfg.port; + openFirewall = cfg.openFirewall; + }; - serviceConfig = { - Type = "simple"; - User = globals.prowlarr.user; - Group = globals.prowlarr.group; - ExecStart = "${lib.getExe cfg.package} -nobrowser -data=${cfg.stateDir}"; - Restart = "on-failure"; - }; + systemd.services.prowlarr.serviceConfig = { + # `User` and `Group` override `DynamicUser = true` from the NixOS Prowlarr + # module (because a user and group with those names exists). + User = globals.prowlarr.user; + Group = globals.prowlarr.group; + ExecStart = mkForce "${lib.getExe cfg.package} -nobrowser -data=${cfg.stateDir}"; + ReadWritePaths = [cfg.stateDir]; }; networking.firewall = mkIf cfg.openFirewall {