{ pkgs, lib, config, ... }: let enabled = config.mod.transmission.enable; in { options = { mod.transmission = { enable = lib.mkEnableOption "enable transmission module"; }; }; config = lib.mkIf enabled { services = { transmission = { enable = true; package = pkgs.transmission_4; openFirewall = true; user = "storage"; group = "storage"; home = "/mnt/media/public/.ts-home"; downloadDirPermissions = "775"; settings = { incomplete-dir-enabled = false; download-dir = "/mnt/media/public/downloads"; rpc-bind-address = "0.0.0.0"; # Required to have empty user/pass to satisfy transmissionA # https://github.com/transmission/transmission/discussions/1941#discussioncomment-1472352 rpc-whitelist-enabled = false; rpc-authentication-required = true; rpc-username = ""; rpc-password = ""; }; }; }; }; }