monitoring: add radarr, sonarr and transmission

This commit is contained in:
xinyangli 2025-02-11 16:47:35 +08:00
parent bc55ae7b8b
commit fe404baad0
Signed by: xin
SSH key fingerprint: SHA256:UU5pRTl7NiLFJbWJZa+snLylZSXIz5rgHmwjzv8v4oE
7 changed files with 115 additions and 3 deletions

View file

@ -1,5 +1,14 @@
{ config, pkgs, ... }:
let
inherit (config.my-lib.settings)
internalDomain
;
in
{
sops.secrets = {
"sonarr/api-key" = { };
"radarr/api-key" = { };
};
services.jackett = {
enable = true;
openFirewall = false;
@ -20,6 +29,22 @@
enable = true;
};
services.prometheus.exporters.exportarr-sonarr = {
enable = true;
url = "http://127.0.0.1:8989";
apiKeyFile = config.sops.secrets."sonarr/api-key".path;
listenAddress = "weilite.${internalDomain}";
port = 21560;
};
services.prometheus.exporters.exportarr-radarr = {
enable = true;
url = "http://127.0.0.1:7878";
apiKeyFile = config.sops.secrets."radarr/api-key".path;
listenAddress = "weilite.${internalDomain}";
port = 21561;
};
users.groups.media.members = [
config.services.sonarr.user
config.services.radarr.user

View file

@ -1,6 +1,12 @@
{ config, pkgs, ... }:
{
config,
pkgs,
lib,
...
}:
let
cfg = config.services.transmission;
inherit (config.my-lib.settings) transmissionExporterUrl;
in
{
sops.secrets = {
@ -13,6 +19,12 @@ in
};
};
sops.templates."transmission-cred.env" = {
content = ''
TRANSMISSION_PASSWORD=${config.sops.placeholder."transmission/rpc-password"}
'';
};
services.transmission = {
enable = true;
package = pkgs.transmission_4;
@ -64,6 +76,22 @@ in
services.caddy.virtualHosts."https://weilite.coho-tet.ts.net:9091".extraConfig = ''
reverse_proxy 127.0.0.1:${toString cfg.settings.rpc-port}
'';
systemd.services.prometheus-transmission-exporter = {
enable = true;
wantedBy = [ "transmission.service" ];
environment = {
WEB_ADDR = transmissionExporterUrl;
TRANSMISSION_ADDR = "http://127.0.0.1:${toString cfg.settings.rpc-port}";
TRANSMISSION_USERNAME = "xin";
};
after = [ "tailscaled.service" ];
serviceConfig = {
ExecStart = "${lib.getExe pkgs.transmission-exporter}";
EnvironmentFile = config.sops.templates."transmission-cred.env".path;
};
};
networking.firewall.allowedTCPPorts = [ 9091 ]; # allow on lan
users.groups.media.members = [ cfg.user ];
}