From d72b1c1f789df0367e2db31a2d3dc02da178cec2 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sun, 18 Jun 2023 10:54:50 +0200 Subject: [PATCH] `minidlna` and `transmission` on `rock5b` --- hosts/rock5b/default.nix | 2 ++ hosts/thinkpad/default.nix | 2 +- modules/ccr/default.nix | 2 ++ modules/minidlna/default.nix | 19 ++++++++++++++++ modules/transmission/default.nix | 38 +++++++++++++++++++++++++------- 5 files changed, 54 insertions(+), 9 deletions(-) create mode 100644 modules/minidlna/default.nix diff --git a/hosts/rock5b/default.nix b/hosts/rock5b/default.nix index 7733625..7d9c559 100644 --- a/hosts/rock5b/default.nix +++ b/hosts/rock5b/default.nix @@ -12,6 +12,8 @@ "ssh" "ccr" "wireguard-client" + "minidlna" + "transmission" ] ++ [ ./disko.nix diff --git a/hosts/thinkpad/default.nix b/hosts/thinkpad/default.nix index 3e573a0..1e83852 100644 --- a/hosts/thinkpad/default.nix +++ b/hosts/thinkpad/default.nix @@ -27,7 +27,7 @@ "qmk-udev" "ssh" "mosh" - "transmission" + # "transmission" "udisks2" "xdg" "nix-development" diff --git a/modules/ccr/default.nix b/modules/ccr/default.nix index e3b4347..995fe93 100644 --- a/modules/ccr/default.nix +++ b/modules/ccr/default.nix @@ -44,6 +44,8 @@ }; config = lib.mkIf config.ccr.enable { + ccr.extraGroups = ["wheel" "fuse" "networkmanager" "dialout"]; + users.users.ccr = { uid = 1000; inherit (config.ccr) hashedPassword; diff --git a/modules/minidlna/default.nix b/modules/minidlna/default.nix new file mode 100644 index 0000000..b19fc73 --- /dev/null +++ b/modules/minidlna/default.nix @@ -0,0 +1,19 @@ +{config, ...}: { + services.minidlna = { + enable = true; + openFirewall = true; + settings = { + friendly_name = config.networking.hostName; + inotify = "yes"; + media_dir = [ + "/mnt/raid" + ]; + }; + }; + + systemd.tmpfiles.rules = [ + "d /mnt/raid/film 770 minidlna minidlna" + ]; + + ccr.extraGroups = ["minidlna"]; +} diff --git a/modules/transmission/default.nix b/modules/transmission/default.nix index 699d538..dd80ac9 100644 --- a/modules/transmission/default.nix +++ b/modules/transmission/default.nix @@ -1,17 +1,39 @@ -{ - config, - lib, - pkgs, - ... -}: { +{config, ...}: { services.transmission = { enable = true; + openRPCPort = true; + openPeerPorts = true; settings = { - rpc-port = 9091; + download-dir = "/mnt/raid/torrent"; + incomplete-dir = "/mnt/raid/torrent/.incomplete"; + + rpc-bind-address = "0.0.0.0"; + peer-port = 51413; # Forward both TCP and UDP on router traffic from router rpc-whitelist-enabled = false; rpc-host-whitelist-enabled = false; + + upload-slots-per-torrent = 1000; + + alt-speed-up = "1000"; # 1MB/s + alt-speed-down = "2000"; # 3MB/s + alt-speed-time-enabled = true; + alt-speed-time-begin = 540; # 9AM, minutes after midnight + alt-speed-time-end = 1380; # 11PM + alt-speed-time-day = 127; # all days, bitmap, 0111110 is weekends and 1000001 is weekdays + + ratio-limit-enabled = true; + ratio-limit = 2; }; }; - users.users.ccr.extraGroups = ["transmission"]; + networking.firewall.allowedTCPPorts = [ + config.services.transmission.settings.rpc-port + ]; + + systemd.tmpfiles.rules = [ + "d /mnt/raid/torrent 770 transmission transmission" + "d /mnt/raid/torrent/.incomplete 770 transmission transmission" + ]; + + ccr.extraGroups = ["transmission"]; }