From 4b90a1cdaf26f336fd45e9a2e0baa76ac8f74263 Mon Sep 17 00:00:00 2001 From: Charlotte Van Petegem Date: Fri, 12 May 2023 18:03:22 +0200 Subject: [PATCH] Setup transmission --- modules/services/deluge/default.nix | 31 +++++++++++++++++-- secrets.nix | 2 ++ .../programs/transmission/config.json.age | 12 +++++++ 3 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 secrets/files/programs/transmission/config.json.age diff --git a/modules/services/deluge/default.nix b/modules/services/deluge/default.nix index 543e5396..448b697f 100644 --- a/modules/services/deluge/default.nix +++ b/modules/services/deluge/default.nix @@ -13,12 +13,13 @@ }; config = lib.mkIf config.chvp.services.deluge.enable { - chvp.services.nginx.hosts = builtins.genList + 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; + }) config.chvp.services.deluge.count) ++ [ + { fqdn = "transmission.vanpetegem.me"; basicProxy = "http://localhost:9091"; } + ]; networking.firewall = { allowedTCPPortRanges = [ @@ -27,6 +28,30 @@ ]; }; + 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 diff --git a/secrets.nix b/secrets.nix index c1adc441..de1c1e41 100644 --- a/secrets.nix +++ b/secrets.nix @@ -82,6 +82,8 @@ in "secrets/files/programs/ssh/host_configuration.age".publicKeys = hosts ++ users; + "secrets/files/programs/transmission/config.json.age".publicKeys = [ urithiru ] ++ users; + "secrets/files/services/matrix-appservice-slack/config.yml.age".publicKeys = [ lasting-integrity ] ++ users; "secrets/files/services/matrix-appservice-slack/registration.yml.age".publicKeys = [ lasting-integrity ] ++ users; "secrets/files/services/matrix-hookshot/config.yml.age".publicKeys = [ lasting-integrity ] ++ users; diff --git a/secrets/files/programs/transmission/config.json.age b/secrets/files/programs/transmission/config.json.age new file mode 100644 index 00000000..31c26834 --- /dev/null +++ b/secrets/files/programs/transmission/config.json.age @@ -0,0 +1,12 @@ +age-encryption.org/v1 +-> ssh-ed25519 9PfEBQ KOsHOp4tweYreyf3BoLb2aVUIJZAyrwp+PrWUaq6sRg +uC+VtZiyBcmnZTxXlZ8z94kWamrowxvslnskmGujOtk +-> ssh-ed25519 s9rb8g 56Ojmt+PJTnSwy0QngEIzXs3p3JiL6SedWVxIOvy31I +HwGefPNgUId1lud7EGas66u4WNNVxw5St9iUjpA6wi4 +-> ssh-ed25519 yad4VQ 9/KQmUD/Mm+xsc1au0pYer1diPge6Xmw0J8bmDgoHTc +rkd0Gn8WDw9dWt2ddlRp8/XwDujw09DXvF6JRcQOtbI +-> X-grease O'QW_: 1]|~R5W= 19I,IA^] +PPg4W3VuI9WVFMKdMDqYYTOaKCNN/Qa5JX0hKobyd5L94E+yJYdAQS/LedBX6ISR +my8T/QWM0YX+ZoccL6XrMvw4Gdz576aoSa0s +--- AteHXtSoQ9ymmax27TzVSEez+gAcQ8Gz+vryJhB77PI +sMxRgXoH7HᯣE;1pmS|KU7frg