From abfd06a50d5bacb8506cd94e2c64fca8d7090cc8 Mon Sep 17 00:00:00 2001 From: pazpi Date: Mon, 7 Oct 2024 22:02:52 +0200 Subject: [PATCH] Done with arr stack (for now) --- hosts/arr/default.nix | 6 ---- hosts/metrics/default.nix | 18 ++---------- modules/services/media-mgr.nix | 52 ++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 21 deletions(-) diff --git a/hosts/arr/default.nix b/hosts/arr/default.nix index 80db34a..45a7353 100644 --- a/hosts/arr/default.nix +++ b/hosts/arr/default.nix @@ -8,12 +8,6 @@ my = { utils.commons.enable = true; - networking.tailscale = { - enable = false; - exitNode = "vps.neon-dory.ts.net"; - # authKeyFile = builtins.toFile "authKey" ''${parameters.tailscaleAuthKey}''; - }; - services.media-mgr = { programs.enable = true; }; diff --git a/hosts/metrics/default.nix b/hosts/metrics/default.nix index 7b7276c..ac198d4 100644 --- a/hosts/metrics/default.nix +++ b/hosts/metrics/default.nix @@ -18,21 +18,12 @@ in services.media-mgr = { exportMetrics.enable = true; - # proxy = { - # enable = true; - # domain = "tegola.pro"; - # host = "arr.internal"; - # }; }; monitoring = { - prometheus = { - enable = true; - # proxy = { - # domain = "tegola.pro"; - # host = "metrics.internal"; - # }; - }; + grafana.enable = true; + prometheus.enable = true; + loki.enable = true; }; networking = { @@ -42,7 +33,6 @@ in authKeyFile = config.age.secrets.tailscale-authKey.path; }; - # caddy.enable = true; }; virtualisation = { @@ -81,7 +71,5 @@ in }; }; - # networking.nameservers = [ "192.168.1.2" ]; - system.stateVersion = "24.05"; } diff --git a/modules/services/media-mgr.nix b/modules/services/media-mgr.nix index ed12f04..6c42691 100644 --- a/modules/services/media-mgr.nix +++ b/modules/services/media-mgr.nix @@ -103,6 +103,19 @@ in openFirewall = true; }; + # Subtitles + bazarr = { + enable = true; + openFirewall = true; + }; + + # Request management and media discovery tool for the Plex ecosystem + jellyseerr = { + enable = true; + port = 5055; + openFirewall = true; + }; + }; my.virtualisation.podmanPods = { @@ -140,6 +153,14 @@ in reverse_proxy http://${host}:8787 import cloudflare ''; + virtualHosts."bazarr.${domain}".extraConfig = '' + reverse_proxy http://${host}:6767 + import cloudflare + ''; + virtualHosts."jellyseerr.${domain}".extraConfig = '' + reverse_proxy http://${host}:5055 + import cloudflare + ''; }; }) @@ -192,6 +213,29 @@ in mode = "770"; }; }; + age.secrets = { + bazarr-apiKey = { + file = ../../secrets/bazarr-apiKey.age; + owner = "exportarr"; + group = "exportarr"; + mode = "770"; + }; + }; + + systemd.services = { + prometheus-exportarr-prowlarr-exporter.serviceConfig.EnvironmentFile = + config.age.secrets.prowlarr-apiKey.path; + prometheus-exportarr-radarr-exporter.serviceConfig.EnvironmentFile = + config.age.secrets.radarr-apiKey.path; + prometheus-exportarr-sonarr-exporter.serviceConfig.EnvironmentFile = + config.age.secrets.sonarr-apiKey.path; + prometheus-exportarr-lidarr-exporter.serviceConfig.EnvironmentFile = + config.age.secrets.lidarr-apiKey.path; + prometheus-exportarr-readarr-exporter.serviceConfig.EnvironmentFile = + config.age.secrets.readarr-apiKey.path; + prometheus-exportarr-bazarr-exporter.serviceConfig.EnvironmentFile = + config.age.secrets.bazarr-apiKey.path; + }; services.prometheus.exporters = { exportarr-prowlarr = { @@ -234,6 +278,14 @@ in group = "exportarr"; apiKeyFile = config.age.secrets.readarr-apiKey.path; }; + exportarr-bazarr = { + enable = true; + url = "http://arr.internal:6767"; + port = 9706; + user = "exportarr"; + group = "exportarr"; + apiKeyFile = config.age.secrets.bazarr-apiKey.path; + }; }; })