{ config, lib, pkgs, ... }: let cfg = config.my.services.transmission; in { options.my.services.transmission = with lib; { enable = mkEnableOption "transmission torrent server"; }; config = lib.mkIf cfg.enable { services.transmission = { enable = true; group = "nas"; performanceNetParameters = true; home = "/data/fast/torrents"; settings = { dht-enabled = false; cache-size-mb = 128; peer-port = 52213; peer-port-random-low = 49152; peer-port-random-high = 65535; message-level = 2; rpc-enabled = true; rpc-host-whitelist-enabled = false; verify-threads = 4; }; }; networking.firewall = { allowedTCPPorts = [ 52213 ]; allowedUDPPorts = [ 52213 ]; }; }; }