about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2023-05-10 20:03:29 -0700
committerFranck Cuny <franck@fcuny.net>2023-05-10 20:03:29 -0700
commit827655f87d99a1c88d64bdc2a1ea6cdc768c0b55 (patch)
tree94e07c026124c4721a3bf4aa0153378bb1a08bad
parentprofiles/samba: fix variable (diff)
downloadworld-827655f87d99a1c88d64bdc2a1ea6cdc768c0b55.tar.gz
profiles/seedbox: move transmission to it
Note that this is not used by anything yet, as a password needs to be
set first.
-rw-r--r--modules/services/default.nix1
-rw-r--r--modules/services/transmission/default.nix62
-rw-r--r--profiles/seedbox.nix49
3 files changed, 49 insertions, 63 deletions
diff --git a/modules/services/default.nix b/modules/services/default.nix
index 2cf7f86..531ce7b 100644
--- a/modules/services/default.nix
+++ b/modules/services/default.nix
@@ -6,6 +6,5 @@
     ./monitoring
     ./sendsms
     ./syncthing
-    ./transmission
   ];
 }
diff --git a/modules/services/transmission/default.nix b/modules/services/transmission/default.nix
deleted file mode 100644
index 43c4675..0000000
--- a/modules/services/transmission/default.nix
+++ /dev/null
@@ -1,62 +0,0 @@
-{ config, lib, pkgs, ... }:
-let
-  cfg = config.my.services.transmission;
-  secrets = config.age.secrets;
-in
-{
-  options.my.services.transmission = with lib; {
-    enable = mkEnableOption "transmission torrent server";
-    vhostName = mkOption {
-      type = types.str;
-      example = "music.fcuny.net";
-      description = "Name for the virtual host";
-    };
-  };
-
-  config = lib.mkIf cfg.enable {
-    services.transmission = {
-      enable = true;
-      group = "nas";
-      performanceNetParameters = true;
-      home = "/data/fast/torrents";
-      settings = {
-        dht-enabled = false;
-        cache-size-mb = 128;
-        peer-port = 52213;
-        peer-port-random-low = 49152;
-        peer-port-random-high = 65535;
-        message-level = 2;
-
-        rpc-enabled = true;
-        rpc-host-whitelist-enabled = false;
-        verify-threads = 4;
-      };
-    };
-
-    services.nginx.virtualHosts."${cfg.vhostName}" = {
-      forceSSL = true;
-      useACMEHost = config.homelab.domain;
-      listen = [
-        {
-          addr = "192.168.6.40";
-          port = 443;
-          ssl = true;
-        }
-        {
-          addr = "192.168.6.40";
-          port = 80;
-          ssl = false;
-        }
-      ];
-      locations."/" = {
-        proxyPass = "http://127.0.0.1:9091";
-        proxyWebsockets = true;
-      };
-    };
-
-    networking.firewall = {
-      allowedTCPPorts = [ 52213 ];
-      allowedUDPPorts = [ 52213 ];
-    };
-  };
-}
diff --git a/profiles/seedbox.nix b/profiles/seedbox.nix
new file mode 100644
index 0000000..9825a44
--- /dev/null
+++ b/profiles/seedbox.nix
@@ -0,0 +1,49 @@
+{ config, lib, pkgs, ... }:
+let
+  secrets = config.age.secrets;
+  vhostName = "bt.${config.homelab.domain}";
+in
+{
+
+  # https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/torrent/transmission.nix
+  services.transmission = {
+    enable = true;
+    group = "nas";
+    performanceNetParameters = true;
+    home = "/data/fast/torrents";
+    openPeerPorts = true;
+    settings = {
+      dht-enabled = false;
+      cache-size-mb = 128;
+      peer-port = 52213;
+      peer-port-random-low = 49152;
+      peer-port-random-high = 65535;
+      message-level = 2;
+
+      rpc-enabled = true;
+      rpc-host-whitelist-enabled = false;
+      verify-threads = 4;
+    };
+  };
+
+  services.nginx.virtualHosts."${vhostName}" = {
+    forceSSL = true;
+    useACMEHost = config.homelab.domain;
+    listen = [
+      {
+        addr = "192.168.6.40";
+        port = 443;
+        ssl = true;
+      }
+      {
+        addr = "192.168.6.40";
+        port = 80;
+        ssl = false;
+      }
+    ];
+    locations."/" = {
+      proxyPass = "http://127.0.0.1:9091";
+      proxyWebsockets = true;
+    };
+  };
+}