33 lines
860 B
Nix
33 lines
860 B
Nix
|
{ config, options, pkgs, lib, ... }:
|
||
|
with lib;
|
||
|
with lib.custom;
|
||
|
let
|
||
|
cfg = config.modules.services.transmission;
|
||
|
in {
|
||
|
options.modules.services.transmission = {
|
||
|
enable = mkBoolOpt false;
|
||
|
};
|
||
|
|
||
|
config = mkIf cfg.enable {
|
||
|
services.transmission = {
|
||
|
enable = true;
|
||
|
home = "${config.user.home}/torrents";
|
||
|
settings = {
|
||
|
incomplete-dir-enabled = true;
|
||
|
rpc-whitelist = "127.0.0.1,192.168.*.*";
|
||
|
rpc-host-whitelist = "*";
|
||
|
rpc-host-whitelist-enabled = true;
|
||
|
ratio-limit = 0;
|
||
|
ratio-limit-enabled = true;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
networking.firewall = {
|
||
|
allowedTCPPorts = [ 51413 ];
|
||
|
allowedUDPPorts = [ 51413 ];
|
||
|
};
|
||
|
|
||
|
user.extraGroups = [ "transmission" ];
|
||
|
};
|
||
|
}
|