1{ config, pkgs, lib, ... }:
2
3with lib;
4
5let
6 cfg = config.services.prowlarr;
7
8in
9{
10 options = {
11 services.prowlarr = {
12 enable = mkEnableOption (lib.mdDoc "Prowlarr");
13
14 openFirewall = mkOption {
15 type = types.bool;
16 default = false;
17 description = lib.mdDoc "Open ports in the firewall for the Prowlarr web interface.";
18 };
19 };
20 };
21
22 config = mkIf cfg.enable {
23 systemd.services.prowlarr = {
24 description = "Prowlarr";
25 after = [ "network.target" ];
26 wantedBy = [ "multi-user.target" ];
27
28 serviceConfig = {
29 Type = "simple";
30 DynamicUser = true;
31 StateDirectory = "prowlarr";
32 ExecStart = "${pkgs.prowlarr}/bin/Prowlarr -nobrowser -data=/var/lib/prowlarr";
33 Restart = "on-failure";
34 };
35 };
36
37 networking.firewall = mkIf cfg.openFirewall {
38 allowedTCPPorts = [ 9696 ];
39 };
40 };
41}