From 479af0caf581be119e6318ff143ba6b173ff031b Mon Sep 17 00:00:00 2001 From: Nikolaos Karaolidis Date: Thu, 10 Jul 2025 10:28:21 +0100 Subject: [PATCH] Add radarr, sonarr volume mounts Signed-off-by: Nikolaos Karaolidis --- .../configs/console/podman/media/default.nix | 36 ++++++++++++++++--- .../console/podman/media/radarr/setup.sh | 16 +++++++++ .../console/podman/media/sonarr/setup.sh | 16 +++++++++ packages/docker/prowlarr/entrypoint.sh | 6 ++-- packages/docker/radarr/entrypoint.sh | 8 +++-- packages/docker/sonarr/entrypoint.sh | 8 +++-- 6 files changed, 78 insertions(+), 12 deletions(-) diff --git a/hosts/jupiter/users/storm/configs/console/podman/media/default.nix b/hosts/jupiter/users/storm/configs/console/podman/media/default.nix index d68e21b..15e7f11 100644 --- a/hosts/jupiter/users/storm/configs/console/podman/media/default.nix +++ b/hosts/jupiter/users/storm/configs/console/podman/media/default.nix @@ -348,8 +348,15 @@ in [ "${setup}:/etc/radarr/setup.sh:ro" "${volumes.radarr-films.ref}:/var/lib/radarr" + "/mnt/storage/private/storm/containers/storage/volumes/transmission-data/_data:/var/lib/transmission" + "/mnt/storage/private/storm/containers/storage/volumes/media/_data:/var/lib/media" ]; - environments.RADARR_URL_BASE = "/manage/films"; + environments = { + RADARR_INSTANCE_NAME = "Radarr (Films)"; + RADARR_URL_BASE = "/manage/films"; + RADARR_ROOT_FOLDER = "/var/lib/media/films"; + RADARR_DOWNLOAD_CATEGORY = "radarr-films"; + }; environmentFiles = [ hmConfig.sops.templates.radarr-films-env.path ]; labels = [ "traefik.enable=true" @@ -390,8 +397,15 @@ in [ "${setup}:/etc/radarr/setup.sh:ro" "${volumes.radarr-anime-films.ref}:/var/lib/radarr" + "/mnt/storage/private/storm/containers/storage/volumes/transmission-data/_data:/var/lib/transmission" + "/mnt/storage/private/storm/containers/storage/volumes/media/_data:/var/lib/media" ]; - environments.RADARR_URL_BASE = "/manage/anime-films"; + environments = { + RADARR_INSTANCE_NAME = "Radarr (Anime Films)"; + RADARR_URL_BASE = "/manage/anime-films"; + RADARR_ROOT_FOLDER = "/var/lib/media/anime-films"; + RADARR_DOWNLOAD_CATEGORY = "radarr-anime-films"; + }; environmentFiles = [ hmConfig.sops.templates.radarr-anime-films-env.path ]; labels = [ "traefik.enable=true" @@ -432,8 +446,15 @@ in [ "${setup}:/etc/sonarr/setup.sh:ro" "${volumes.sonarr-shows.ref}:/var/lib/sonarr" + "/mnt/storage/private/storm/containers/storage/volumes/transmission-data/_data:/var/lib/transmission" + "/mnt/storage/private/storm/containers/storage/volumes/media/_data:/var/lib/media" ]; - environments.SONARR_URL_BASE = "/manage/shows"; + environments = { + SONARR_INSTANCE_NAME = "Sonarr (Shows)"; + SONARR_URL_BASE = "/manage/shows"; + SONARR_ROOT_FOLDER = "/var/lib/media/shows"; + SONARR_DOWNLOAD_CATEGORY = "sonarr-shows"; + }; environmentFiles = [ hmConfig.sops.templates.sonarr-shows-env.path ]; labels = [ "traefik.enable=true" @@ -474,8 +495,15 @@ in [ "${setup}:/etc/sonarr/setup.sh:ro" "${volumes.sonarr-anime-shows.ref}:/var/lib/sonarr" + "/mnt/storage/private/storm/containers/storage/volumes/transmission-data/_data:/var/lib/transmission" + "/mnt/storage/private/storm/containers/storage/volumes/media/_data:/var/lib/media" ]; - environments.SONARR_URL_BASE = "/manage/anime-shows"; + environments = { + SONARR_INSTANCE_NAME = "Sonarr (Anime Shows)"; + SONARR_URL_BASE = "/manage/anime-shows"; + SONARR_ROOT_FOLDER = "/var/lib/media/anime-shows"; + SONARR_DOWNLOAD_CATEGORY = "sonarr-anime-shows"; + }; environmentFiles = [ hmConfig.sops.templates.sonarr-anime-shows-env.path ]; labels = [ "traefik.enable=true" diff --git a/hosts/jupiter/users/storm/configs/console/podman/media/radarr/setup.sh b/hosts/jupiter/users/storm/configs/console/podman/media/radarr/setup.sh index 65eae13..5b35ee1 100644 --- a/hosts/jupiter/users/storm/configs/console/podman/media/radarr/setup.sh +++ b/hosts/jupiter/users/storm/configs/console/podman/media/radarr/setup.sh @@ -1,5 +1,9 @@ # shellcheck shell=sh +RADARR_DOWNLOAD_CATEGORY="${RADARR_DOWNLOAD_CATEGORY:-radarr}" + +mkdir -p "/var/lib/transmission/$RADARR_DOWNLOAD_CATEGORY" + { curl -sf --retry 5 "$RADARR_HOST/api/v3/downloadclient?forceSave=true" \ -X POST \ @@ -23,6 +27,10 @@ { "name": "urlBase", "value": "" + }, + { + "name": "movieCategory", + "value": "$RADARR_DOWNLOAD_CATEGORY" } ], "implementation": "Transmission", @@ -30,3 +38,11 @@ } EOF } || true + +if [ ! -z "${RADARR_ROOT_FOLDER:-}" ]; then + curl -sf "$RADARR_HOST/api/v3/rootfolder" \ + -X POST \ + -H 'Content-Type: application/json' \ + -H "X-Api-Key: $RADARR_API_KEY" \ + --data-raw "{\"path\": \"$RADARR_ROOT_FOLDER\"}" || true +fi diff --git a/hosts/jupiter/users/storm/configs/console/podman/media/sonarr/setup.sh b/hosts/jupiter/users/storm/configs/console/podman/media/sonarr/setup.sh index 1c86626..58a52e2 100644 --- a/hosts/jupiter/users/storm/configs/console/podman/media/sonarr/setup.sh +++ b/hosts/jupiter/users/storm/configs/console/podman/media/sonarr/setup.sh @@ -1,5 +1,9 @@ # shellcheck shell=sh +SONARR_DOWNLOAD_CATEGORY="${SONARR_DOWNLOAD_CATEGORY:-sonarr}" + +mkdir -p "/var/lib/transmission/$SONARR_DOWNLOAD_CATEGORY" + { curl -sf --retry 10 "$SONARR_HOST/api/v3/downloadclient?forceSave=true" \ -X POST \ @@ -23,6 +27,10 @@ { "name": "urlBase", "value": "" + }, + { + "name": "tvCategory", + "value": "$SONARR_DOWNLOAD_CATEGORY" } ], "implementation": "Transmission", @@ -30,3 +38,11 @@ } EOF } || true + +if [ ! -z "${SONARR_ROOT_FOLDER:-}" ]; then + curl -sf "$SONARR_HOST/api/v3/rootfolder" \ + -X POST \ + -H 'Content-Type: application/json' \ + -H "X-Api-Key: $SONARR_API_KEY" \ + --data-raw "{\"path\": \"$SONARR_ROOT_FOLDER\"}" || true +fi diff --git a/packages/docker/prowlarr/entrypoint.sh b/packages/docker/prowlarr/entrypoint.sh index d1ab8e8..452d3d1 100644 --- a/packages/docker/prowlarr/entrypoint.sh +++ b/packages/docker/prowlarr/entrypoint.sh @@ -3,6 +3,8 @@ set -o errexit set -o nounset +PROWLARR_URL_BASE="${PROWLARR_URL_BASE:-}" + if [ ! -f /var/lib/prowlarr/init ]; then echo '' > /var/lib/prowlarr/config.xml @@ -12,7 +14,7 @@ if [ ! -f /var/lib/prowlarr/init ]; then -s /Config -t elem -n AuthenticationMethod -v "External" \ -s /Config -t elem -n AuthenticationRequired -v "DisabledForLocalAddresses" \ -s /Config -t elem -n LogLevel -v "info" \ - -s /Config -t elem -n UrlBase -v "${PROWLARR_URL_BASE:-}" \ + -s /Config -t elem -n UrlBase -v "$PROWLARR_URL_BASE" \ -s /Config -t elem -n InstanceName -v "${PROWLARR_INSTANCE_NAME:-prowlarr}" \ -s /Config -t elem -n AnalyticsEnabled -v "False" \ /var/lib/prowlarr/config.xml @@ -21,7 +23,7 @@ fi Prowlarr -data=/var/lib/prowlarr -nobrowser "$@" & PID=$! -PROWLARR_HOST="http://localhost:9696${PROWLARR_URL_BASE:-}" +PROWLARR_HOST="http://localhost:9696$PROWLARR_URL_BASE" if [ ! -f /var/lib/prowlarr/init ]; then curl -sf --retry 10 --retry-connrefused \ diff --git a/packages/docker/radarr/entrypoint.sh b/packages/docker/radarr/entrypoint.sh index 898c305..8148fbc 100644 --- a/packages/docker/radarr/entrypoint.sh +++ b/packages/docker/radarr/entrypoint.sh @@ -3,6 +3,8 @@ set -o errexit set -o nounset +RADARR_URL_BASE="${RADARR_URL_BASE:-}" + if [ ! -f /var/lib/radarr/init ]; then echo '' > /var/lib/radarr/config.xml @@ -12,8 +14,8 @@ if [ ! -f /var/lib/radarr/init ]; then -s /Config -t elem -n AuthenticationMethod -v "External" \ -s /Config -t elem -n AuthenticationRequired -v "DisabledForLocalAddresses" \ -s /Config -t elem -n LogLevel -v "info" \ - -s /Config -t elem -n UrlBase -v "${RADARR_URL_BASE:-}" \ - -s /Config -t elem -n InstanceName -v "${RADARR_INSTANCE_NAME:-radarr}" \ + -s /Config -t elem -n UrlBase -v "$RADARR_URL_BASE" \ + -s /Config -t elem -n InstanceName -v "${RADARR_INSTANCE_NAME:-Radarr}" \ -s /Config -t elem -n AnalyticsEnabled -v "False" \ /var/lib/radarr/config.xml fi @@ -21,7 +23,7 @@ fi Radarr -data=/var/lib/radarr -nobrowser "$@" & PID=$! -RADARR_HOST="http://localhost:7878${RADARR_URL_BASE:-}" +RADARR_HOST="http://localhost:7878$RADARR_URL_BASE" if [ ! -f /var/lib/radarr/init ]; then curl -sf --retry 10 --retry-connrefused \ diff --git a/packages/docker/sonarr/entrypoint.sh b/packages/docker/sonarr/entrypoint.sh index 86f0bad..b74ea41 100644 --- a/packages/docker/sonarr/entrypoint.sh +++ b/packages/docker/sonarr/entrypoint.sh @@ -3,6 +3,8 @@ set -o errexit set -o nounset +SONARR_URL_BASE="${SONARR_URL_BASE:-}" + if [ ! -f /var/lib/sonarr/init ]; then echo '' > /var/lib/sonarr/config.xml @@ -12,8 +14,8 @@ if [ ! -f /var/lib/sonarr/init ]; then -s /Config -t elem -n AuthenticationMethod -v "External" \ -s /Config -t elem -n AuthenticationRequired -v "DisabledForLocalAddresses" \ -s /Config -t elem -n LogLevel -v "info" \ - -s /Config -t elem -n UrlBase -v "${SONARR_URL_BASE:-}" \ - -s /Config -t elem -n InstanceName -v "${SONARR_INSTANCE_NAME:-sonarr}" \ + -s /Config -t elem -n UrlBase -v "$SONARR_URL_BASE" \ + -s /Config -t elem -n InstanceName -v "${SONARR_INSTANCE_NAME:-Sonarr}" \ -s /Config -t elem -n AnalyticsEnabled -v "False" \ /var/lib/sonarr/config.xml fi @@ -21,7 +23,7 @@ fi Sonarr -data=/var/lib/sonarr -nobrowser "$@" & PID=$! -SONARR_HOST="http://localhost:8989${SONARR_URL_BASE:-}" +SONARR_HOST="http://localhost:8989$SONARR_URL_BASE" if [ ! -f /var/lib/sonarr/init ]; then curl -sf --retry 10 --retry-connrefused \