diff --git a/qbittorrent/CHANGELOG.md b/qbittorrent/CHANGELOG.md index 54ef069ed5..68bb71478c 100644 --- a/qbittorrent/CHANGELOG.md +++ b/qbittorrent/CHANGELOG.md @@ -1,15 +1,3 @@ -## 5.2.0-5 (10-05-2026) -- Minor bugs fixed - -## 5.2.0-4 (2026-05-10) -- Fix "unbound variable" crash: use \`${LSIO_NON_ROOT_USER:-}\` so the variable is safely empty when unset; remove duplicate QB_BIN detection block - -## 5.2.0-3 (2026-05-10) -- Fix qBittorrent restart loop: remove s6-notifyoncheck (notification-fd 3 EBADF when not running under s6-rc), discover binary path dynamically across LSIO image layouts, remove `/dev/stdout` redirect that fails on some ARM runtimes, align with upstream LSIO run script (WebUI address from config, LSIO_NON_ROOT_USER) -- Fix Dockerfile: add missing `-i` flag to `sed '11,13d'` so default config lines are actually removed at build time - -## 5.2.0-2 (2026-05-10) -- Fix qBittorrent restart loop: remove s6-notifyoncheck (avoids notification-fd EBADF crash) and discover binary path dynamically across LSIO image layouts ## 5.2.0-1 (2026-05-10) - Fix qbittorrent-nox path (/usr/bin → /app) after LSIO image update diff --git a/qbittorrent/Dockerfile b/qbittorrent/Dockerfile index ef7301c647..bc70c27c07 100644 --- a/qbittorrent/Dockerfile +++ b/qbittorrent/Dockerfile @@ -46,8 +46,8 @@ RUN \ # Set download folder to /share sed -i 's|/downloads/|/share/qBittorrent/|g' /defaults/qBittorrent.conf \ \ - # Remove fixed folders (SavePath/ScanDirsV2/TempPath), handled by init script - && sed -i '11,13d' /defaults/qBittorrent.conf \ + # Remove fixed folders, allows connection to webUI + && sed '11,13d' /defaults/qBittorrent.conf \ && echo 'WebUI\HostHeaderValidation=false' >> /defaults/qBittorrent.conf \ && echo 'WebUI\LocalHostAuth=false' >> /defaults/qBittorrent.conf \ \ diff --git a/qbittorrent/config.yaml b/qbittorrent/config.yaml index 4f18290de7..559a7ad4f0 100644 --- a/qbittorrent/config.yaml +++ b/qbittorrent/config.yaml @@ -143,4 +143,4 @@ schema: slug: qbittorrent udev: true url: https://github.com/alexbelgium/hassio-addons -version: "5.2.0-5" +version: "5.2.0-1" diff --git a/qbittorrent/rootfs/etc/s6-overlay/s6-rc.d/svc-qbittorrent/run b/qbittorrent/rootfs/etc/s6-overlay/s6-rc.d/svc-qbittorrent/run index 25ec5ca354..3f9c6b71f5 100644 --- a/qbittorrent/rootfs/etc/s6-overlay/s6-rc.d/svc-qbittorrent/run +++ b/qbittorrent/rootfs/etc/s6-overlay/s6-rc.d/svc-qbittorrent/run @@ -4,12 +4,6 @@ WEBUI_PORT=${WEBUI_PORT:-8080} export PATH="/usr/local/sbin:/usr/local/bin:${PATH}" -# Read WebUI bind address from config (mirrors upstream LSIO approach) -WEBUI_ADDRESS=$(grep -Po "^WebUI\\\\Address=\K(.*)" /config/qBittorrent/qBittorrent.conf 2>/dev/null || echo "") -if [[ -z ${WEBUI_ADDRESS} ]] || [[ ${WEBUI_ADDRESS} == "*" ]]; then - WEBUI_ADDRESS="localhost" -fi - # --- Configuration & Pre-checks --- if bashio::config.true 'silent'; then @@ -42,32 +36,14 @@ fi # --- Launch qBittorrent --- -# Find qbittorrent-nox binary across different LSIO image layouts -QB_BIN="" -for candidate in /app/qbittorrent-nox /usr/bin/qbittorrent-nox /usr/local/bin/qbittorrent-nox; do - if [[ -x "${candidate}" ]]; then - QB_BIN="${candidate}" - break - fi -done - -if [[ -z "${QB_BIN}" ]]; then - bashio::log.fatal "qbittorrent-nox binary not found" - exit 1 +# Determine log output based on silent mode +QB_OUTPUT="/dev/stdout" +if bashio::config.true 'silent'; then + QB_OUTPUT="/dev/null" fi bashio::log.info "Starting qBittorrent..." -# Suppress output in silent mode by redirecting the current shell's stdout/stderr -# before exec replaces the process (avoids opening /dev/stdout which may fail on -# some ARM platforms / container runtimes). -if bashio::config.true 'silent'; then - exec >/dev/null 2>&1 -fi - -set +u -if [[ -z ${LSIO_NON_ROOT_USER} ]]; then - exec s6-setuidgid abc "${QB_BIN}" --webui-port="${WEBUI_PORT}" -else - exec "${QB_BIN}" --webui-port="${WEBUI_PORT}" -fi +exec \ + s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost ${WEBUI_PORT}" \ + s6-setuidgid abc /app/qbittorrent-nox --webui-port="${WEBUI_PORT}" > "${QB_OUTPUT}"