Compare commits

..

3 Commits

Author SHA1 Message Date
b8b8dd58e1 jellyseerr: disable caddy_auth 2026-02-18 21:02:53 -05:00
88b506b08c feat(media): add recyclarr service for automated TRaSH Guides sync
Add systemd oneshot + daily timer to sync TRaSH Guides quality profiles
and custom formats to Radarr/Sonarr via recyclarr.
2026-02-18 21:02:53 -05:00
93a7645d3f feat(media): add arr stack (sonarr, radarr, bazarr, prowlarr, jellyseerr) 2026-02-18 21:02:47 -05:00
4 changed files with 45 additions and 1 deletions

View File

@@ -37,6 +37,7 @@
./services/radarr.nix
./services/bazarr.nix
./services/jellyseerr.nix
./services/recyclarr.nix
./services/soulseek.nix

View File

@@ -219,6 +219,10 @@
configDir = services_dir + "/jellyseerr";
};
recyclarr = {
dataDir = services_dir + "/recyclarr";
};
media = {
moviesDir = torrents_path + "/media/movies";
tvDir = torrents_path + "/media/tv";

View File

@@ -37,7 +37,7 @@
users.groups.jellyseerr = { };
services.caddy.virtualHosts."jellyseerr.${service_configs.https.domain}".extraConfig = ''
import ${config.age.secrets.caddy_auth.path}
# import ${config.age.secrets.caddy_auth.path}
reverse_proxy :${builtins.toString service_configs.ports.jellyseerr}
'';
}

39
services/recyclarr.nix Normal file
View File

@@ -0,0 +1,39 @@
{
pkgs,
config,
service_configs,
lib,
...
}:
{
imports = [
(lib.serviceMountWithZpool "recyclarr" service_configs.zpool_ssds [
service_configs.recyclarr.dataDir
])
];
systemd.tmpfiles.rules = [
"d ${service_configs.recyclarr.dataDir} 0755 root root -"
"d ${service_configs.recyclarr.dataDir}/data 0755 root root -"
];
systemd.services.recyclarr = {
description = "Recyclarr TRaSH Guides Sync";
after = [ "network-online.target" "radarr.service" "sonarr.service" ];
wants = [ "network-online.target" ];
serviceConfig = {
Type = "oneshot";
ExecStart = "${pkgs.recyclarr}/bin/recyclarr sync --config ${service_configs.recyclarr.dataDir}/recyclarr.yml --app-data ${service_configs.recyclarr.dataDir}/data";
};
};
systemd.timers.recyclarr = {
description = "Run Recyclarr daily";
wantedBy = [ "timers.target" ];
timerConfig = {
OnCalendar = "daily";
Persistent = true;
RandomizedDelaySec = "1h";
};
};
}