diff options
author | Franck Cuny <franck@fcuny.net> | 2022-04-06 12:49:53 -0700 |
---|---|---|
committer | Franck Cuny <franck@fcuny.net> | 2022-04-06 12:49:53 -0700 |
commit | f61e0fe45e4f237828df01ee3bacf4bae78fdcf0 (patch) | |
tree | 986fcf274ee755313a35431781acc0a646fe0700 | |
parent | refactor traefik (diff) | |
download | world-f61e0fe45e4f237828df01ee3bacf4bae78fdcf0.tar.gz |
refactor transmission and metrics-exporter
-rw-r--r-- | hosts/common/server/monitoring.nix | 12 | ||||
-rw-r--r-- | hosts/common/server/transmission.nix | 27 | ||||
-rw-r--r-- | hosts/profiles/nas.nix | 8 | ||||
-rw-r--r-- | hosts/profiles/server.nix | 5 | ||||
-rw-r--r-- | modules/services/default.nix | 2 | ||||
-rw-r--r-- | modules/services/metrics-exporter/default.nix | 18 | ||||
-rw-r--r-- | modules/services/traefik/default.nix | 2 | ||||
-rw-r--r-- | modules/services/transmission/default.nix | 33 |
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 ]; + }; + }; +} |