fix servarr
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
{ config, containerCfg, pkgs, lib, builder, name, ... }:
|
||||
let
|
||||
serverCfg = config.syscfg.server;
|
||||
defaultModules = ["prowlarr" "sonarr" "radarr" "flaresolverr" ];
|
||||
|
||||
mkServarrImage = appName: appPkg: binaryPath: pkgs.dockerTools.streamLayeredImage {
|
||||
name = appPkg.name;
|
||||
@@ -43,7 +42,7 @@ in
|
||||
];
|
||||
|
||||
containers = {
|
||||
}// lib.optionalAttrs (builtins.elem "prowlarr" (containerCfg.extra.modules or defaultModules)) {
|
||||
}// lib.optionalAttrs (builtins.elem "prowlarr" (containerCfg.extra.modules)) {
|
||||
prowlarr = builder.mkContainer {
|
||||
authentik = true;
|
||||
tmpfs = true;
|
||||
@@ -66,7 +65,7 @@ in
|
||||
overrides.volumes = sharedVolumes ++ [ "${serverCfg.path.config}/servarr/prowlarr:/config" ];
|
||||
};
|
||||
|
||||
}// lib.optionalAttrs (builtins.elem "radarr" (containerCfg.extra.modules or defaultModules)) {
|
||||
}// lib.optionalAttrs (builtins.elem "radarr" (containerCfg.extra.modules)) {
|
||||
radarr = builder.mkContainer {
|
||||
authentik = true;
|
||||
tmpfs = true;
|
||||
@@ -89,7 +88,7 @@ in
|
||||
overrides.volumes = sharedVolumes ++ [ "${serverCfg.path.config}/servarr/radarr:/config" ];
|
||||
};
|
||||
|
||||
}// lib.optionalAttrs (builtins.elem "sonarr" (containerCfg.extra.modules or defaultModules)) {
|
||||
}// lib.optionalAttrs (builtins.elem "sonarr" (containerCfg.extra.modules)) {
|
||||
sonarr = builder.mkContainer {
|
||||
authentik = true;
|
||||
tmpfs = true;
|
||||
@@ -112,7 +111,7 @@ in
|
||||
overrides.volumes = sharedVolumes ++ [ "${serverCfg.path.config}/servarr/sonarr:/config" ];
|
||||
};
|
||||
|
||||
}// lib.optionalAttrs (builtins.elem "lidarr" (containerCfg.extra.modules or defaultModules)) {
|
||||
}// lib.optionalAttrs (builtins.elem "lidarr" (containerCfg.extra.modules )) {
|
||||
lidarr = builder.mkContainer {
|
||||
authentik = true;
|
||||
tmpfs = true;
|
||||
@@ -135,15 +134,15 @@ in
|
||||
overrides.volumes = sharedVolumes ++ [ "${serverCfg.path.config}/servarr/lidarr:/config" ];
|
||||
};
|
||||
|
||||
}// lib.optionalAttrs (builtins.elem "readarr" (containerCfg.extra.modules or defaultModules)) {
|
||||
}// lib.optionalAttrs (builtins.elem "readarr" (containerCfg.extra.modules)) {
|
||||
readarr = throw "Not Implemented";
|
||||
}// lib.optionalAttrs (builtins.elem "mylarr" (containerCfg.extra.modules or defaultModules)) {
|
||||
}// lib.optionalAttrs (builtins.elem "mylarr" (containerCfg.extra.modules)) {
|
||||
mylarr = throw "Not Implemented";
|
||||
}// lib.optionalAttrs (builtins.elem "bazarr" (containerCfg.extra.modules or defaultModules)) {
|
||||
}// lib.optionalAttrs (builtins.elem "bazarr" (containerCfg.extra.modules)) {
|
||||
bazarr = throw "Not Implemented";
|
||||
}// lib.optionalAttrs (builtins.elem "seerr" (containerCfg.extra.modules or defaultModules)) {
|
||||
}// lib.optionalAttrs (builtins.elem "seerr" (containerCfg.extra.modules)) {
|
||||
seerr = throw "Not Implemented";
|
||||
}// lib.optionalAttrs (builtins.elem "flaresolverr" (containerCfg.extra.modules or defaultModules)) {
|
||||
}// lib.optionalAttrs (builtins.elem "flaresolverr" (containerCfg.extra.modules)) {
|
||||
flaresolverr = builder.mkContainer {
|
||||
image = "ghcr.io/flaresolverr/flaresolverr:latest";
|
||||
port = 8191;
|
||||
@@ -158,10 +157,10 @@ in
|
||||
envFile = config.sops.secrets."SERVARR".path;
|
||||
script = pkgs.writeShellScript "setup-servarr" ''
|
||||
|
||||
${lib.optionalString (builtins.elem "prowlarr" (containerCfg.extra.modules or defaultModules)) ''
|
||||
${lib.optionalString (builtins.elem "prowlarr" (containerCfg.extra.modules)) ''
|
||||
echo "Prowlarr Setup - START"
|
||||
PROWLARR_URL="https://${containerCfg.subdomain}.${serverCfg.domain}/prowlarr"
|
||||
${lib.optionalString (builtins.elem "flaresolverr" (containerCfg.extra.modules or defaultModules)) ''
|
||||
${lib.optionalString (builtins.elem "flaresolverr" (containerCfg.extra.modules)) ''
|
||||
PROWL_TAG=$(${pkgs.curl}/bin/curl -s -X GET "$PROWLARR_URL/api/v1/tag" \
|
||||
-H "X-Api-Key: $PROWLARR__AUTH__APIKEY" -H 'X-Prowlarr-Client: true' \
|
||||
-H 'Accept: application/json' -H 'Content-Type: application/json')
|
||||
@@ -190,7 +189,7 @@ in
|
||||
-H "X-Api-Key: $PROWLARR__AUTH__APIKEY" -H 'X-Prowlarr-Client: true' \
|
||||
-H 'Accept: application/json' -H 'Content-Type: application/json')
|
||||
|
||||
${lib.optionalString (builtins.elem "sonarr" (containerCfg.extra.modules or defaultModules)) ''
|
||||
${lib.optionalString (builtins.elem "sonarr" (containerCfg.extra.modules)) ''
|
||||
if ! echo "$PROWL_APPS" | ${pkgs.jq}/bin/jq -e 'any(.[]? ; .name == "Sonarr")' > /dev/null; then
|
||||
echo "Prowlarr Setup - Sonarr"
|
||||
${pkgs.curl}/bin/curl -s -X POST "$PROWLARR_URL/api/v1/applications" \
|
||||
@@ -199,7 +198,7 @@ in
|
||||
-d '{"syncLevel":"fullSync","enable":true,"fields":[{"name":"prowlarrUrl","value":"http://servarr-prowlarr:8989/prowlarr"},{"name":"baseUrl","value":"http://servarr-sonarr:8989/sonarr"},{"name":"apiKey","value":"'"$SONARR__AUTH__APIKEY"'"},{"name":"syncCategories","value":[5000,5010,5020,5030,5040,5045,5050,5090]},{"name":"animeSyncCategories","value":[5070]},{"name":"syncAnimeStandardFormatSearch","value":true},{"name":"syncRejectBlocklistedTorrentHashesWhileGrabbing","value":false}],"implementationName":"Sonarr","implementation":"Sonarr","configContract":"SonarrSettings","infoLink":"https://wiki.servarr.com/prowlarr/supported#sonarr","tags":[],"name":"Sonarr"}'
|
||||
fi
|
||||
''}
|
||||
${lib.optionalString (builtins.elem "lidarr" (containerCfg.extra.modules or defaultModules)) ''
|
||||
${lib.optionalString (builtins.elem "lidarr" (containerCfg.extra.modules)) ''
|
||||
if ! echo "$PROWL_APPS" | ${pkgs.jq}/bin/jq -e 'any(.[]? ; .name == "Lidarr")' > /dev/null; then
|
||||
echo "Prowlarr Setup - Lidarr"
|
||||
${pkgs.curl}/bin/curl -s -X POST "$PROWLARR_URL/api/v1/applications" \
|
||||
@@ -208,7 +207,7 @@ in
|
||||
-d '{"syncLevel":"fullSync","enable":true,"fields":[{"name":"prowlarrUrl","value":"http://servarr-prowlarr:8989/prowlarr"},{"name":"baseUrl","value":"http://servarr-lidarr:8989/lidarr"},{"name":"apiKey","value":"'"$LIDARR__AUTH__APIKEY"'"},{"name":"syncCategories","value":[3000,3010,3030,3040,3050,3060]},{"name":"syncRejectBlocklistedTorrentHashesWhileGrabbing","value":false}],"implementationName":"Lidarr","implementation":"Lidarr","configContract":"LidarrSettings","infoLink":"https://wiki.servarr.com/prowlarr/supported#lidarr","tags":[],"name":"Lidarr"}'
|
||||
fi
|
||||
''}
|
||||
${lib.optionalString (builtins.elem "radarr" (containerCfg.extra.modules or defaultModules)) ''
|
||||
${lib.optionalString (builtins.elem "radarr" (containerCfg.extra.modules)) ''
|
||||
if ! echo "$PROWL_APPS" | ${pkgs.jq}/bin/jq -e 'any(.[]? ; .name == "Radarr")' > /dev/null; then
|
||||
echo "Prowlarr Setup - Radarr"
|
||||
${pkgs.curl}/bin/curl -s -X POST "$PROWLARR_URL/api/v1/applications" \
|
||||
@@ -217,12 +216,12 @@ in
|
||||
-d '{"syncLevel":"fullSync","enable":true,"fields":[{"name":"prowlarrUrl","value":"http://servarr-prowlarr:8989/prowlarr"},{"name":"baseUrl","value":"http://servarr-radarr:8989/radarr"},{"name":"apiKey","value":"'"$RADARR__AUTH__APIKEY"'"},{"name":"syncCategories","value":[2000,2010,2020,2030,2040,2045,2050,2060,2070,2080,2090]},{"name":"syncRejectBlocklistedTorrentHashesWhileGrabbing","value":false}],"implementationName":"Radarr","implementation":"Radarr","configContract":"RadarrSettings","infoLink":"https://wiki.servarr.com/prowlarr/supported#radarr","tags":[],"name":"Radarr"}'
|
||||
fi
|
||||
''}
|
||||
${lib.optionalString (builtins.elem "mylarr" (containerCfg.extra.modules or defaultModules)) ''
|
||||
${lib.optionalString (builtins.elem "mylarr" (containerCfg.extra.modules)) ''
|
||||
if ! echo "$PROWL_APPS" | ${pkgs.jq}/bin/jq -e 'any(.[]? ; .name == "Mylar")' > /dev/null; then
|
||||
echo "Prowlarr Setup - Mylarr"
|
||||
fi
|
||||
''}
|
||||
${lib.optionalString (builtins.elem "readarr" (containerCfg.extra.modules or defaultModules)) ''
|
||||
${lib.optionalString (builtins.elem "readarr" (containerCfg.extra.modules)) ''
|
||||
if ! echo "$PROWL_APPS" | ${pkgs.jq}/bin/jq -e 'any(.[]? ; .name == "Readarr")' > /dev/null; then
|
||||
echo "Prowlarr Setup - Readarr"
|
||||
fi
|
||||
@@ -292,7 +291,7 @@ in
|
||||
|
||||
''}
|
||||
|
||||
${lib.optionalString (builtins.elem "sonarr" (containerCfg.extra.modules or defaultModules)) ''
|
||||
${lib.optionalString (builtins.elem "sonarr" (containerCfg.extra.modules)) ''
|
||||
echo "Sonarr Setup - START"
|
||||
SONARR_URL="https://${containerCfg.subdomain}.${serverCfg.domain}/sonarr"
|
||||
|
||||
@@ -399,7 +398,7 @@ in
|
||||
|
||||
''}
|
||||
|
||||
${lib.optionalString (builtins.elem "radarr" (containerCfg.extra.modules or defaultModules)) ''
|
||||
${lib.optionalString (builtins.elem "radarr" (containerCfg.extra.modules)) ''
|
||||
echo "Radarr Setup - START"
|
||||
RADARR_URL="https://${containerCfg.subdomain}.${serverCfg.domain}/radarr"
|
||||
|
||||
@@ -506,15 +505,15 @@ in
|
||||
|
||||
''}
|
||||
|
||||
${lib.optionalString (builtins.elem "lidarr" (containerCfg.extra.modules or defaultModules)) ''
|
||||
${lib.optionalString (builtins.elem "lidarr" (containerCfg.extra.modules)) ''
|
||||
''}
|
||||
${lib.optionalString (builtins.elem "readarr" (containerCfg.extra.modules or defaultModules)) ''
|
||||
${lib.optionalString (builtins.elem "readarr" (containerCfg.extra.modules)) ''
|
||||
''}
|
||||
${lib.optionalString (builtins.elem "mylarr" (containerCfg.extra.modules or defaultModules)) ''
|
||||
${lib.optionalString (builtins.elem "mylarr" (containerCfg.extra.modules)) ''
|
||||
''}
|
||||
${lib.optionalString (builtins.elem "bazarr" (containerCfg.extra.modules or defaultModules)) ''
|
||||
${lib.optionalString (builtins.elem "bazarr" (containerCfg.extra.modules)) ''
|
||||
''}
|
||||
${lib.optionalString (builtins.elem "seerr" (containerCfg.extra.modules or defaultModules)) ''
|
||||
${lib.optionalString (builtins.elem "seerr" (containerCfg.extra.modules)) ''
|
||||
''}
|
||||
|
||||
'';
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
invidious.subdomain = "yt";
|
||||
jellyfin.subdomain = "flix";
|
||||
servarr.subdomain = "arr";
|
||||
servarr.extra.modules = ["prowlarr" "sonarr" "radarr" "flaresolverr" ];
|
||||
transmission = { subdomain = "arr"; subpath = "transmission"; };
|
||||
handbrake = { subdomain = "arr"; subpath = "hb"; };
|
||||
# ===== DEV =====
|
||||
|
||||
Reference in New Issue
Block a user