48 lines
1.3 KiB
Nix
48 lines
1.3 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}: let
|
|
inherit (lib) mkIf getExe;
|
|
inherit (config.ooknet.server) media-server;
|
|
inherit (config.ooknet.server.media-server) storage users groups domain proxy;
|
|
in {
|
|
config = mkIf media-server.prowlarr.enable {
|
|
# we dont use the nixpkgs prowlarr service module because it lacks the option to
|
|
# declare dataDir, user and group.
|
|
|
|
# setup user
|
|
users.users.prowlarr = {
|
|
group = groups.prowlarr;
|
|
home = storage.state.prowlarr;
|
|
};
|
|
users.groups.prowlarr = {};
|
|
|
|
# basic systemd service
|
|
systemd = {
|
|
services.prowlarr = {
|
|
description = "Prowlarr";
|
|
after = ["network.target"];
|
|
wantedBy = ["multi-user.target"];
|
|
|
|
serviceConfig = {
|
|
Type = "simple";
|
|
User = users.prowlarr;
|
|
group = groups.prowlarr;
|
|
ExecStart = "${getExe pkgs.prowlarr} -nobrowser -data=${storage.state.prowlarr}";
|
|
Restart = "on-failure";
|
|
};
|
|
};
|
|
tmpfiles.settings.prowlarrDirs = {
|
|
"${storage.state.prowlarr}"."d" = {
|
|
mode = "700";
|
|
user = users.prowlarr;
|
|
group = groups.prowlarr;
|
|
};
|
|
};
|
|
};
|
|
ooknet.server.webserver.caddy.enable = true;
|
|
services.caddy.virtualHosts."${domain.prowlarr}".extraConfig = proxy.prowlarr;
|
|
};
|
|
}
|