From 53f42d17ced4e9b7ca1bed280777eac77e572d36 Mon Sep 17 00:00:00 2001 From: thespad Date: Sat, 18 May 2024 17:12:20 +0100 Subject: [PATCH 1/3] Check ffmepg path, use proper health endpoint --- root/etc/s6-overlay/s6-rc.d/svc-jellyfin/run | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/run b/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/run index 6196b0f..d227ab9 100755 --- a/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/run +++ b/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/run @@ -1,4 +1,9 @@ #!/usr/bin/with-contenv bash +# shellcheck shell=bash + +if [[ -z "${FFMPEG_PATH}" ]] || [[ ! -f "${FFMPEG_PATH}" ]]; then + FFMPEG_PATH=/usr/lib/jellyfin-ffmpeg/ffmpeg +fi export \ JELLYFIN_DATA_DIR="/config/data" \ @@ -8,6 +13,6 @@ export \ JELLYFIN_WEB_DIR="/usr/share/jellyfin/web" exec \ - s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 8096" \ + s6-notifyoncheck -d -n 300 -w 1000 -c "curl -s --output /dev/null http://localhost:8096/health" \ s6-setuidgid abc /usr/bin/jellyfin \ - --ffmpeg=/usr/lib/jellyfin-ffmpeg/ffmpeg + --ffmpeg="${FFMPEG_PATH}" From 72c8f9a3b4edbf7e4e8068b79122f53a8da424d3 Mon Sep 17 00:00:00 2001 From: thespad Date: Sat, 18 May 2024 17:16:33 +0100 Subject: [PATCH 2/3] Move check to file to match master --- Dockerfile | 5 +++-- Dockerfile.aarch64 | 5 +++-- root/etc/s6-overlay/s6-rc.d/svc-jellyfin/data/check | 9 +++++++++ root/etc/s6-overlay/s6-rc.d/svc-jellyfin/run | 2 +- 4 files changed, 16 insertions(+), 5 deletions(-) create mode 100755 root/etc/s6-overlay/s6-rc.d/svc-jellyfin/data/check diff --git a/Dockerfile b/Dockerfile index 0e6c46e..4684d63 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,7 +26,8 @@ RUN \ at \ jellyfin-server=${JELLYFIN_RELEASE} \ jellyfin-ffmpeg6 \ - mesa-va-drivers && \ + mesa-va-drivers \ + xmlstarlet && \ echo "**** cleanup ****" && \ rm -rf \ /tmp/* \ @@ -34,7 +35,7 @@ RUN \ /var/tmp/* # add local files -COPY root/ / +COPY root/ / # ports and volumes EXPOSE 8096 8920 diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 6c66d8c..2fa3997 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -28,7 +28,8 @@ RUN \ jellyfin-ffmpeg6 \ libomxil-bellagio0 \ libomxil-bellagio-bin \ - libraspberrypi0 && \ + libraspberrypi0 \ + xmlstarlet && \ echo "**** cleanup ****" && \ rm -rf \ /tmp/* \ @@ -36,7 +37,7 @@ RUN \ /var/tmp/* # add local files -COPY root/ / +COPY root/ / # ports and volumes EXPOSE 8096 8920 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/data/check b/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/data/check new file mode 100755 index 0000000..2b7be3e --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/data/check @@ -0,0 +1,9 @@ +#!/bin/bash + +PORT=$(xmlstarlet sel -T -t -v /NetworkConfiguration/HttpServerPortNumber /config/network.xml) + +if [[ $(curl -sL "http://localhost:${PORT:-8096}/health" 2>/dev/null) = "Healthy" ]]; then + exit 0 +else + exit 1 +fi diff --git a/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/run b/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/run index d227ab9..c9838e5 100755 --- a/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/run +++ b/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/run @@ -13,6 +13,6 @@ export \ JELLYFIN_WEB_DIR="/usr/share/jellyfin/web" exec \ - s6-notifyoncheck -d -n 300 -w 1000 -c "curl -s --output /dev/null http://localhost:8096/health" \ + s6-notifyoncheck -d -n 300 -w 1000 \ s6-setuidgid abc /usr/bin/jellyfin \ --ffmpeg="${FFMPEG_PATH}" From ec28cb14559f2706c8be1daf722396126f67b523 Mon Sep 17 00:00:00 2001 From: thespad Date: Sat, 18 May 2024 19:35:45 +0100 Subject: [PATCH 3/3] Don't try and read network.xml if it doesn't exist (like on first run) --- root/etc/s6-overlay/s6-rc.d/svc-jellyfin/data/check | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/data/check b/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/data/check index 2b7be3e..fa4205c 100755 --- a/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/data/check +++ b/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/data/check @@ -1,6 +1,8 @@ #!/bin/bash -PORT=$(xmlstarlet sel -T -t -v /NetworkConfiguration/HttpServerPortNumber /config/network.xml) +if [[ -f "/config/network.xml" ]]; then + PORT=$(xmlstarlet sel -T -t -v /NetworkConfiguration/HttpServerPortNumber /config/network.xml) +fi if [[ $(curl -sL "http://localhost:${PORT:-8096}/health" 2>/dev/null) = "Healthy" ]]; then exit 0