mkModule various

This commit is contained in:
mjallen18
2025-12-17 12:52:42 -06:00
parent 50345adeb5
commit 96ce0001c5
16 changed files with 462 additions and 636 deletions

View File

@@ -6,44 +6,36 @@
}:
with lib;
let
inherit (lib.${namespace}) mkOpt;
cfg = config.${namespace}.services.jellyseerr;
in
{
options.${namespace}.services.jellyseerr = {
enable = mkEnableOption "enable jellyseerr";
name = "jellyseerr";
cfg = config.${namespace}.services.${name};
port = mkOpt types.int 5055 "jellyseerr port";
jellyseerrConfig = lib.${namespace}.mkModule {
inherit config name;
description = "jellyseerr";
options = { };
moduleConfig = {
# Enable jellyseerr service
services.jellyseerr = {
enable = true;
port = cfg.port;
openFirewall = cfg.openFirewall;
configDir = "${cfg.configDir}/jellyseerr";
};
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;
systemd.services = {
jellyseerr = {
serviceConfig = {
WorkingDirectory = lib.mkForce "${cfg.configDir}/jellyseerr";
StateDirectory = lib.mkForce "${cfg.configDir}/jellyseerr";
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 = { };
};
in
{
imports = [ jellyseerrConfig ];
}