kubernetes-deployments/nixng-modules/sonarr.nix
Pim Kunis 0c75d07f73 Add deployment options for media kubenix manifest
Cleanup sonarr log files
Increase size of sonarr volume
2025-01-18 16:20:24 +01:00

48 lines
1.3 KiB
Nix

{
lib,
nglib,
config,
pkgs,
...
}: let
cfg = config.services.sonarr;
cfgInit = config.init.services.sonarr;
in {
options.services.sonarr = {
enable = lib.mkEnableOption "sonarr";
package = lib.mkPackageOption pkgs "sonarr" {};
dataDir = lib.mkOption {
type = lib.types.str;
default = "/var/lib/sonarr/.config/NzbDrone";
description = "The directory where Sonarr stores its data files.";
};
};
config = lib.mkIf cfg.enable {
init.services.sonarr = {
enabled = true;
user = lib.mkDefault "sonarr";
group = lib.mkDefault "sonarr";
tmpfiles = with nglib.nottmpfiles.dsl; [(e "${cfg.dataDir}/logs" "-" cfgInit.user cfgInit.group "7d" _)];
script = pkgs.writeShellScript "sonarr-run" ''
umask 0002
${lib.getExe cfg.package} -nobrowser -data=${cfg.dataDir}
'';
};
environment.systemPackages = [cfg.package];
users.users.${cfgInit.user} = lib.mkIf (cfgInit.user == "sonarr") (nglib.mkDefaultRec {
description = "sonarr";
inherit (cfgInit) group;
createHome = false;
home = "/var/empty";
useDefaultShell = true;
uid = config.ids.uids.sonarr;
});
users.groups.${cfgInit.group} = lib.mkIf (cfgInit.group == "sonarr") (nglib.mkDefaultRec {gid = config.ids.gids.sonarr;});
};
}