about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--hosts/common/server/monitoring.nix12
-rw-r--r--hosts/common/server/transmission.nix27
-rw-r--r--hosts/profiles/nas.nix8
-rw-r--r--hosts/profiles/server.nix5
-rw-r--r--modules/services/default.nix2
-rw-r--r--modules/services/metrics-exporter/default.nix18
-rw-r--r--modules/services/traefik/default.nix2
-rw-r--r--modules/services/transmission/default.nix33
8 files changed, 56 insertions, 51 deletions
diff --git a/hosts/common/server/monitoring.nix b/hosts/common/server/monitoring.nix
deleted file mode 100644
index 82cef4d..0000000
--- a/hosts/common/server/monitoring.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ config, pkgs, lib, ... }:
-
-{
-  services.prometheus = {
-    exporters = {
-      node = {
-        enable = true;
-        enabledCollectors = [ "tcpstat" "systemd" "interrupts" ];
-      };
-    };
-  };
-}
diff --git a/hosts/common/server/transmission.nix b/hosts/common/server/transmission.nix
deleted file mode 100644
index 2eae585..0000000
--- a/hosts/common/server/transmission.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-{
-  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;
-    };
-  };
-
-  networking.firewall = {
-    allowedTCPPorts = [ 52213 ];
-    allowedUDPPorts = [ 52213 ];
-  };
-}
diff --git a/hosts/profiles/nas.nix b/hosts/profiles/nas.nix
index 9ac834f..5ec18d0 100644
--- a/hosts/profiles/nas.nix
+++ b/hosts/profiles/nas.nix
@@ -1,10 +1,4 @@
 { config, pkgs, lib, ... }: {
-  imports = [
-    # other profiles
-    ./server.nix
-    ../common/server/transmission.nix
-  ];
-
   users.groups.nas.gid = 5000;
   users.users.nas = {
     uid = 5000;
@@ -30,6 +24,8 @@
     };
     rclone = { enable = true; };
     traefik = { enable = true; };
+    transmission = { enable = true; };
+    metrics-exporter = { enable = true; };
   };
 
   services.restic.backups = {
diff --git a/hosts/profiles/server.nix b/hosts/profiles/server.nix
deleted file mode 100644
index 0029d03..0000000
--- a/hosts/profiles/server.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{ config, pkgs, lib, ... }:
-
-{
-  imports = [ ../common/server/monitoring.nix ];
-}
diff --git a/modules/services/default.nix b/modules/services/default.nix
index 95c5f21..085e881 100644
--- a/modules/services/default.nix
+++ b/modules/services/default.nix
@@ -5,6 +5,7 @@
     ./fwupd
     ./gitea
     ./grafana
+    ./metrics-exporter
     ./navidrome
     ./prometheus
     ./rclone
@@ -14,6 +15,7 @@
     ./thermald
     ./tlp
     ./traefik
+    ./transmission
     ./unifi
   ];
 }
diff --git a/modules/services/metrics-exporter/default.nix b/modules/services/metrics-exporter/default.nix
new file mode 100644
index 0000000..b461bd2
--- /dev/null
+++ b/modules/services/metrics-exporter/default.nix
@@ -0,0 +1,18 @@
+{ config, pkgs, lib, ... }:
+let cfg = config.my.services.metrics-exporter;
+in {
+  options.my.services.metrics-exporter = with lib; {
+    enable = mkEnableOption "Prometheus metrics exporter";
+  };
+
+  config = lib.mkIf cfg.enable {
+    services.prometheus = {
+      exporters = {
+        node = {
+          enable = true;
+          enabledCollectors = [ "tcpstat" "systemd" "interrupts" ];
+        };
+      };
+    };
+  };
+}
diff --git a/modules/services/traefik/default.nix b/modules/services/traefik/default.nix
index 980faee..d6a8c8c 100644
--- a/modules/services/traefik/default.nix
+++ b/modules/services/traefik/default.nix
@@ -3,7 +3,7 @@
 with lib;
 
 let
-  cfg = config.my.services.navidrome;
+  cfg = config.my.services.traefik;
   domainPublic = "fcuny.net";
   domainPrivate = "fcuny.xyz";
   mkServiceConfig = name: url: domain: certResolver: {
diff --git a/modules/services/transmission/default.nix b/modules/services/transmission/default.nix
new file mode 100644
index 0000000..a1e14ab
--- /dev/null
+++ b/modules/services/transmission/default.nix
@@ -0,0 +1,33 @@
+{ config, lib, pkgs, ... }:
+let cfg = config.my.services.transmission;
+in {
+  options.my.services.transmission = with lib; {
+    enable = mkEnableOption "transmission torrent server";
+  };
+
+  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;
+      };
+    };
+
+    networking.firewall = {
+      allowedTCPPorts = [ 52213 ];
+      allowedUDPPorts = [ 52213 ];
+    };
+  };
+}