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 2919f8f..3f96036 100644 --- a/flake.nix +++ b/flake.nix @@ -218,6 +218,10 @@ jellyseerr = { configDir = services_dir + "/jellyseerr"; }; + + recyclarr = { + dataDir = services_dir + "/recyclarr"; + }; }; pkgs = import nixpkgs { 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 <