{ pkgs, lib, config, ... }: let enabled = config.mod.transmission.enable; nginxEnabled = config.mod.nginx.enable; in { options = { mod.transmission = { enable = lib.mkEnableOption "enable transmission module"; }; }; config = lib.mkIf enabled { services = { transmission = { enable = true; package = pkgs.transmission_4; user = "alex"; group = "users"; home = "/home/alex/media/ts-home"; downloadDirPermissions = "775"; settings = { rpc-bind-address = "0.0.0.0"; rpc-port = 9191; incomplete-dir-enabled = false; download-dir = "/home/alex/media/downloads"; rpc-authentication-required = true; rpc-whitelist-enabled = false; rpc-username = "transmission"; rpc-password = "{55d884e4042db67313da49e05d7089a368eb64b3Br.3X.Xi"; }; }; nginx = lib.mkIf nginxEnabled { virtualHosts."ts.ppp.pm" = { locations."/" = { proxyPass = "http://localhost:9191"; }; }; }; }; }; }