From 7c81f1eb6cbbc1b03e6e46df49d85e86bc9161a4 Mon Sep 17 00:00:00 2001 From: Charlotte Van Petegem Date: Wed, 7 Jun 2023 15:30:57 +0200 Subject: [PATCH] Fully migrate to transmission --- machines/kharbranth/default.nix | 1 + machines/kholinar/default.nix | 2 +- machines/urithiru/default.nix | 5 +- modules/programs/default.nix | 2 +- .../programs/{deluge => torrents}/default.nix | 4 +- modules/services/default.nix | 2 +- modules/services/deluge/default.nix | 93 ------------------- modules/services/torrents/default.nix | 38 ++++++++ 8 files changed, 45 insertions(+), 102 deletions(-) rename modules/programs/{deluge => torrents}/default.nix (72%) delete mode 100644 modules/services/deluge/default.nix create mode 100644 modules/services/torrents/default.nix diff --git a/machines/kharbranth/default.nix b/machines/kharbranth/default.nix index dd2f774b..b12246a5 100644 --- a/machines/kharbranth/default.nix +++ b/machines/kharbranth/default.nix @@ -46,6 +46,7 @@ element.enable = true; hledger.enable = true; obs.enable = true; + torrents.enable = true; }; work.enable = true; }; diff --git a/machines/kholinar/default.nix b/machines/kholinar/default.nix index 1ed6a664..14c2d4f7 100644 --- a/machines/kholinar/default.nix +++ b/machines/kholinar/default.nix @@ -40,11 +40,11 @@ graphical.enable = true; programs = { calibre.enable = true; - deluge.enable = true; eid.enable = true; element.enable = true; hledger.enable = true; obs.enable = true; + torrents.enable = true; }; # It's a pandemic. work.enable = true; diff --git a/machines/urithiru/default.nix b/machines/urithiru/default.nix index 37990798..b3889058 100644 --- a/machines/urithiru/default.nix +++ b/machines/urithiru/default.nix @@ -49,10 +49,7 @@ accentor.enable = true; containers.externalInterface = "eno3"; data-access.enable = true; - deluge = { - enable = true; - count = 6; - }; + torrents.enable = true; git.runner.enable = true; }; }; diff --git a/modules/programs/default.nix b/modules/programs/default.nix index 6b01c6e4..1a5de097 100644 --- a/modules/programs/default.nix +++ b/modules/programs/default.nix @@ -3,11 +3,11 @@ { imports = [ ./calibre - ./deluge ./eid ./element ./hledger ./obs + ./torrents ]; home-manager.users.charlotte = { ... }: { diff --git a/modules/programs/deluge/default.nix b/modules/programs/torrents/default.nix similarity index 72% rename from modules/programs/deluge/default.nix rename to modules/programs/torrents/default.nix index 9e810203..dbabea16 100644 --- a/modules/programs/deluge/default.nix +++ b/modules/programs/torrents/default.nix @@ -1,12 +1,12 @@ { config, lib, pkgs, ... }: { - options.chvp.programs.deluge.enable = lib.mkOption { + options.chvp.programs.torrents.enable = lib.mkOption { default = false; example = true; }; - config = lib.mkIf config.chvp.programs.deluge.enable { + config = lib.mkIf config.chvp.programs.torrents.enable { home-manager.users.charlotte = { pkgs, ... }: { home.packages = with pkgs; [ transmission-remote-gtk ]; }; diff --git a/modules/services/default.nix b/modules/services/default.nix index ea3de7b4..b19b001a 100644 --- a/modules/services/default.nix +++ b/modules/services/default.nix @@ -5,7 +5,6 @@ ./accentor ./containers ./data-access - ./deluge ./garmin-scraper ./git ./grafana @@ -15,6 +14,7 @@ ./nextcloud ./nginx ./syncthing + ./torrents ]; services.postgresql.package = pkgs.postgresql_15; diff --git a/modules/services/deluge/default.nix b/modules/services/deluge/default.nix deleted file mode 100644 index 03c0dcff..00000000 --- a/modules/services/deluge/default.nix +++ /dev/null @@ -1,93 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - options.chvp.services.deluge = { - enable = lib.mkOption { - default = false; - example = true; - }; - count = lib.mkOption { - default = 1; - example = 6; - }; - }; - - config = lib.mkIf config.chvp.services.deluge.enable { - chvp.services.nginx.hosts = (builtins.genList - (n: { - fqdn = "del${toString (n + 1)}.vanpetegem.me"; - basicProxy = "http://localhost:${toString (8112 + n)}"; - }) - config.chvp.services.deluge.count) ++ [ - { fqdn = "transmission.vanpetegem.me"; basicProxy = "http://localhost:9091"; } - ]; - - networking.firewall = { - allowedTCPPortRanges = [ - { from = 60000; to = 60000 + config.chvp.services.deluge.count - 1; } - { from = 58846; to = 58846 + config.chvp.services.deluge.count - 1; } - ]; - }; - - services.transmission = { - enable = true; - user = "charlotte"; - group = "users"; - home = "/data/var/lib/transmission"; - openRPCPort = true; - openPeerPorts = true; - credentialsFile = config.age.secrets."files/programs/transmission/config.json".path; - settings = { - umask = 18; - download-dir = "/srv/data"; - rpc-authentication-required = true; - rpc-bind-address = "0.0.0.0"; - rpc-enabled = true; - rpc-host-whitelist-enabled = false; - rpc-whitelist-enabled = false; - }; - }; - - age.secrets."files/programs/transmission/config.json" = { - file = ../../../secrets/files/programs/transmission/config.json.age; - owner = "charlotte"; - }; - - systemd.services = builtins.foldl' (x: y: x // y) { } (builtins.genList - (n: - let num = toString (n + 1); in - { - "del${num}" = { - after = [ "network-online.target" ]; - requires = [ "network-online.target" ]; - description = "Deluge daemon ${num}"; - wantedBy = [ "multi-user.target" ]; - path = [ pkgs.deluge ]; - serviceConfig = { - ExecStart = '' - ${pkgs.deluge}/bin/deluged --do-not-daemonize --config /data/var/lib/deluge/del${toString (n + 1)} - ''; - Restart = "on-success"; - User = "charlotte"; - Group = "users"; - UMask = "022"; - }; - }; - "del${num}-web" = { - after = [ "network.target" "del${num}.service" ]; - requires = [ "del${num}.service" ]; - description = "Deluge Web UI for daemon ${num}"; - wantedBy = [ "multi-user.target" ]; - path = [ pkgs.deluge ]; - serviceConfig = { - ExecStart = '' - ${pkgs.deluge}/bin/deluge-web --do-not-daemonize --config /data/var/lib/deluge/del${toString (n + 1)} --port ${toString (8112 + n)} - ''; - User = "charlotte"; - Group = "users"; - }; - }; - }) - config.chvp.services.deluge.count); - }; -} diff --git a/modules/services/torrents/default.nix b/modules/services/torrents/default.nix new file mode 100644 index 00000000..f61c3f72 --- /dev/null +++ b/modules/services/torrents/default.nix @@ -0,0 +1,38 @@ +{ config, lib, pkgs, ... }: + +{ + options.chvp.services.torrents = { + enable = lib.mkOption { + default = false; + example = true; + }; + }; + + config = lib.mkIf config.chvp.services.torrents.enable { + chvp.services.nginx.hosts = [{ fqdn = "transmission.vanpetegem.me"; basicProxy = "http://localhost:9091"; }]; + + services.transmission = { + enable = true; + user = "charlotte"; + group = "users"; + home = "/data/var/lib/transmission"; + openRPCPort = false; + openPeerPorts = true; + credentialsFile = config.age.secrets."files/programs/transmission/config.json".path; + settings = { + umask = 18; + download-dir = "/srv/data"; + rpc-authentication-required = true; + rpc-bind-address = "0.0.0.0"; + rpc-enabled = true; + rpc-host-whitelist-enabled = false; + rpc-whitelist-enabled = false; + }; + }; + + age.secrets."files/programs/transmission/config.json" = { + file = ../../../secrets/files/programs/transmission/config.json.age; + owner = "charlotte"; + }; + }; +}