52 lines
1.1 KiB
Nix
52 lines
1.1 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
namespace,
|
|
...
|
|
}:
|
|
with lib;
|
|
let
|
|
inherit (lib.${namespace}) mkOpt mkReverseProxyOpt;
|
|
cfg = config.${namespace}.services.jellyseerr;
|
|
|
|
jellyseerrPort = 5055;
|
|
in
|
|
{
|
|
options.${namespace}.services.jellyseerr = {
|
|
enable = mkEnableOption "enable jellyseerr";
|
|
|
|
port = mkOpt types.int 5055 "jellyseerr port";
|
|
|
|
dataDir = mkOpt types.str "" "data dir";
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
# Enable jellyseerr service
|
|
services.jellyseerr = {
|
|
enable = true;
|
|
port = cfg.port;
|
|
openFirewall = true;
|
|
configDir = cfg.dataDir;
|
|
};
|
|
|
|
systemd.services = {
|
|
jellyseerr = {
|
|
serviceConfig = {
|
|
WorkingDirectory = lib.mkForce cfg.dataDir;
|
|
StateDirectory = lib.mkForce cfg.dataDir;
|
|
StateDirectoryMode = lib.mkForce 700;
|
|
DynamicUser = lib.mkForce false;
|
|
ProtectSystem = lib.mkForce null;
|
|
};
|
|
};
|
|
};
|
|
|
|
users.users.jellyseerr = {
|
|
isSystemUser = true;
|
|
group = "jellyseerr";
|
|
home = cfg.dataDir;
|
|
};
|
|
users.groups.jellyseerr = {};
|
|
};
|
|
}
|