1
0
Fork 0

expose some deluge settings

This commit is contained in:
ibizaman 2023-12-27 07:57:48 -08:00 committed by Pierre Penninckx
parent 0c5f9b1c24
commit db405d6b7e

View file

@ -51,12 +51,95 @@ in
default = null; default = null;
}; };
settings = lib.mkOption {
description = "Deluge operational settings.";
type = lib.types.submodule {
options = {
downloadLocation = lib.mkOption { downloadLocation = lib.mkOption {
type = lib.types.str; type = lib.types.str;
description = "Folder where torrents gets downloaded"; description = "Folder where torrents gets downloaded";
example = "/srv/torrents"; example = "/srv/torrents";
}; };
max_active_limit = lib.mkOption {
type = lib.types.int;
description = "Maximum Active Limit";
default = 200;
};
max_active_downloading = lib.mkOption {
type = lib.types.int;
description = "Maximum Active Downloading";
default = 30;
};
max_active_seeding = lib.mkOption {
type = lib.types.int;
description = "Maximum Active Seeding";
default = 100;
};
max_connections_global = lib.mkOption {
type = lib.types.int;
description = "Maximum Connections Global";
default = 200;
};
max_connections_per_torrent = lib.mkOption {
type = lib.types.int;
description = "Maximum Connections Per Torrent";
default = 50;
};
max_download_speed = lib.mkOption {
type = lib.types.int;
description = "Maximum Download Speed";
default = 1000;
};
max_download_speed_per_torrent = lib.mkOption {
type = lib.types.int;
description = "Maximum Download Speed Per Torrent";
default = -1;
};
max_upload_slots_global = lib.mkOption {
type = lib.types.int;
description = "Maximum Upload Slots Global";
default = 100;
};
max_upload_slots_per_torrent = lib.mkOption {
type = lib.types.int;
description = "Maximum Upload Slots Per Torrent";
default = 4;
};
max_upload_speed = lib.mkOption {
type = lib.types.int;
description = "Maximum Upload Speed";
default = 200;
};
max_upload_speed_per_torrent = lib.mkOption {
type = lib.types.int;
description = "Maximum Upload Speed Per Torrent";
default = 50;
};
dont_count_slow_torrents = lib.mkOption {
type = lib.types.bool;
description = "Do not count slow torrents towards any limits.";
default = true;
};
};
};
};
extraServiceConfig = lib.mkOption {
type = lib.types.attrsOf lib.types.str;
description = "Extra configuration given to the systemd service file.";
default = {};
example = lib.literalExpression ''
{
MemoryHigh = "512M";
MemoryMax = "900M";
}
'';
};
authEndpoint = lib.mkOption { authEndpoint = lib.mkOption {
type = lib.types.str; type = lib.types.str;
description = "OIDC endpoint for SSO"; description = "OIDC endpoint for SSO";
@ -90,13 +173,13 @@ in
}; };
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable (lib.mkMerge [{
services.deluge = { services.deluge = {
enable = true; enable = true;
declarative = true; declarative = true;
openFirewall = true; openFirewall = true;
config = { config = {
download_location = cfg.downloadLocation; download_location = cfg.settings.downloadLocation;
allow_remote = true; allow_remote = true;
daemon_port = cfg.daemonPort; daemon_port = cfg.daemonPort;
listen_ports = cfg.daemonListenPorts; listen_ports = cfg.daemonListenPorts;
@ -120,22 +203,23 @@ in
config.shb.arr.lidarr config.shb.arr.lidarr
]) "Label"; ]) "Label";
# TODO: expose these inherit (cfg.settings)
max_active_limit = 10000; max_active_limit
max_active_downloading = 30; max_active_downloading
max_active_seeding = 10000; max_active_seeding
max_connections_global = 1000; max_connections_global
max_connections_per_torrent = 50; max_connections_per_torrent
max_download_speed = 1000; max_download_speed
max_download_speed_per_torrent = -1; max_download_speed_per_torrent
max_upload_slots_global = 100; max_upload_slots_global
max_upload_slots_per_torrent = 4; max_upload_slots_per_torrent
max_upload_speed = 200; max_upload_speed
max_upload_speed_per_torrent = 50; max_upload_speed_per_torrent
dont_count_slow_torrents;
dont_count_slow_torrents = true;
new_release_check = false; new_release_check = false;
}; };
authFile = config.sops.secrets."deluge/auth".path; authFile = config.sops.secrets."deluge/auth".path;
@ -197,5 +281,7 @@ in
config.services.deluge.dataDir config.services.deluge.dataDir
]; ];
}; };
}; } {
systemd.services.deluged.serviceConfig = cfg.extraServiceConfig;
}]);
} }