From dd1b4160b0a3b92bba3308b109d023d0f25b3f7c Mon Sep 17 00:00:00 2001 From: Simon Gardling Date: Thu, 19 Feb 2026 19:07:29 -0500 Subject: [PATCH] recyclarr: init --- configuration.nix | 1 + flake.nix | 4 + services/arr/recyclarr.nix | 202 +++++++++++++++++++++++++++++++++++++ 3 files changed, 207 insertions(+) create mode 100644 services/arr/recyclarr.nix diff --git a/configuration.nix b/configuration.nix index 4e29949..48980b2 100644 --- a/configuration.nix +++ b/configuration.nix @@ -37,6 +37,7 @@ ./services/arr/radarr.nix ./services/arr/bazarr.nix ./services/arr/jellyseerr.nix + ./services/arr/recyclarr.nix ./services/soulseek.nix diff --git a/flake.nix b/flake.nix index 1162c13..e49a82b 100644 --- a/flake.nix +++ b/flake.nix @@ -217,6 +217,10 @@ jellyseerr = { configDir = services_dir + "/jellyseerr"; }; + + recyclarr = { + dataDir = services_dir + "/recyclarr"; + }; }; }; diff --git a/services/arr/recyclarr.nix b/services/arr/recyclarr.nix new file mode 100644 index 0000000..6727e52 --- /dev/null +++ b/services/arr/recyclarr.nix @@ -0,0 +1,202 @@ +{ + pkgs, + config, + service_configs, + lib, + ... +}: +let + radarrConfig = "${service_configs.radarr.dataDir}/config.xml"; + sonarrConfig = "${service_configs.sonarr.dataDir}/config.xml"; + appDataDir = "${service_configs.recyclarr.dataDir}/data"; + + # Runs as root (via + prefix) to read API keys, writes secrets.yml for recyclarr + generateSecrets = pkgs.writeShellScript "recyclarr-generate-secrets" '' + RADARR_KEY=$(${pkgs.gnugrep}/bin/grep -oP '(?<=)[^<]+' ${radarrConfig}) + SONARR_KEY=$(${pkgs.gnugrep}/bin/grep -oP '(?<=)[^<]+' ${sonarrConfig}) + cat > ${appDataDir}/secrets.yml <