Compare commits
2 Commits
96e02457ff
...
e56456d7b2
| Author | SHA1 | Date | |
|---|---|---|---|
|
e56456d7b2
|
|||
|
00c1d3078a
|
18
flake.lock
generated
18
flake.lock
generated
@@ -285,11 +285,11 @@
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1773715509,
|
||||
"narHash": "sha256-b5BsanYeM4EzV1vhVvVWpE5nqBZ1ZjYxn4N56ncoGJ0=",
|
||||
"lastModified": 1773802295,
|
||||
"narHash": "sha256-luPLLgS8VR2fHo3xT04KbJm0RU2wep6SDh3smwF8e5E=",
|
||||
"owner": "Infinidoge",
|
||||
"repo": "nix-minecraft",
|
||||
"rev": "27420d2c7217d3b0f07d8f1478b668ba826b2c87",
|
||||
"rev": "41870283e080c46a6d33b6c3b3923e90348254c3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -316,11 +316,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1773705440,
|
||||
"narHash": "sha256-xB30bbAp0e7ogSEYyc126mAJMt4FRFh8wtm6ADE1xuM=",
|
||||
"lastModified": 1773814637,
|
||||
"narHash": "sha256-GNU+ooRmrHLfjlMsKdn0prEKVa0faVanm0jrgu1J/gY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "48652e9d5aea46e555b3df87354280d4f29cd3a3",
|
||||
"rev": "fea3b367d61c1a6592bc47c72f40a9f3e6a53e96",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -548,11 +548,11 @@
|
||||
"trackerlist": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1773702577,
|
||||
"narHash": "sha256-UVXLe8dXmucRyRfcqtgKVh2lCjiJeALezo4y8xveotI=",
|
||||
"lastModified": 1773788980,
|
||||
"narHash": "sha256-CuD+g/MNgcAlbZ2OXZUzZfPHwXzzKM8qovdkIVhHy+A=",
|
||||
"owner": "ngosang",
|
||||
"repo": "trackerslist",
|
||||
"rev": "0c36cb83b74930c6abe162600d8071843c147680",
|
||||
"rev": "03ae4d7ea81606a88aee4bef8683d61c288763f9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
@@ -8,18 +8,20 @@
|
||||
let
|
||||
radarrConfig = "${service_configs.radarr.dataDir}/config.xml";
|
||||
sonarrConfig = "${service_configs.sonarr.dataDir}/config.xml";
|
||||
appDataDir = "${service_configs.recyclarr.dataDir}/data";
|
||||
configPath = "/var/lib/recyclarr/config.json";
|
||||
|
||||
# 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 '(?<=<ApiKey>)[^<]+' ${radarrConfig})
|
||||
SONARR_KEY=$(${pkgs.gnugrep}/bin/grep -oP '(?<=<ApiKey>)[^<]+' ${sonarrConfig})
|
||||
cat > ${appDataDir}/secrets.yml <<EOF
|
||||
movies_api_key: $RADARR_KEY
|
||||
series_api_key: $SONARR_KEY
|
||||
EOF
|
||||
chown recyclarr:recyclarr ${appDataDir}/secrets.yml
|
||||
chmod 600 ${appDataDir}/secrets.yml
|
||||
# Runs as root (via + prefix) after the NixOS module writes config.json.
|
||||
# Extracts API keys from radarr/sonarr config.xml and injects them via jq.
|
||||
injectApiKeys = pkgs.writeShellScript "recyclarr-inject-api-keys" ''
|
||||
RADARR_KEY=$(${lib.getExe pkgs.gnugrep} -oP '(?<=<ApiKey>)[^<]+' ${radarrConfig})
|
||||
SONARR_KEY=$(${lib.getExe pkgs.gnugrep} -oP '(?<=<ApiKey>)[^<]+' ${sonarrConfig})
|
||||
${pkgs.jq}/bin/jq \
|
||||
--arg rk "$RADARR_KEY" \
|
||||
--arg sk "$SONARR_KEY" \
|
||||
'.radarr.movies.api_key = $rk | .sonarr.series.api_key = $sk' \
|
||||
${configPath} > ${configPath}.tmp
|
||||
mv ${configPath}.tmp ${configPath}
|
||||
chown recyclarr:recyclarr ${configPath}
|
||||
'';
|
||||
in
|
||||
{
|
||||
@@ -31,7 +33,6 @@ in
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d ${service_configs.recyclarr.dataDir} 0755 recyclarr recyclarr -"
|
||||
"d ${appDataDir} 0755 recyclarr recyclarr -"
|
||||
];
|
||||
|
||||
services.recyclarr = {
|
||||
@@ -55,11 +56,15 @@ in
|
||||
{
|
||||
name = "Remux + WEB 2160p";
|
||||
min_format_score = 0;
|
||||
reset_unmatched_scores = {
|
||||
enabled = true;
|
||||
};
|
||||
upgrade = {
|
||||
allowed = true;
|
||||
until_quality = "Remux-2160p";
|
||||
until_score = 0;
|
||||
until_score = 10000;
|
||||
};
|
||||
quality_sort = "top";
|
||||
qualities = [
|
||||
{ name = "Remux-2160p"; }
|
||||
{
|
||||
@@ -130,11 +135,15 @@ in
|
||||
{
|
||||
name = "WEB-2160p";
|
||||
min_format_score = 0;
|
||||
reset_unmatched_scores = {
|
||||
enabled = true;
|
||||
};
|
||||
upgrade = {
|
||||
allowed = true;
|
||||
until_quality = "WEB 2160p";
|
||||
until_score = 0;
|
||||
until_score = 10000;
|
||||
};
|
||||
quality_sort = "top";
|
||||
qualities = [
|
||||
{
|
||||
name = "WEB 2160p";
|
||||
@@ -201,6 +210,6 @@ in
|
||||
"sonarr.service"
|
||||
];
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig.ExecStartPre = "+${generateSecrets}";
|
||||
serviceConfig.ExecStartPre = [ "+${injectApiKeys}" ];
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user