From 44b7b74843ba3d9169ba06bd1cccb39a174cf02f Mon Sep 17 00:00:00 2001 From: Alexandre <44178713+alexbelgium@users.noreply.github.com> Date: Sat, 15 Nov 2025 11:17:50 +0100 Subject: [PATCH] Fix Calibre ingress for Selkies dashboard --- calibre/README.md | 1 - calibre/rootfs/etc/cont-init.d/90-ingress.sh | 31 ++++++++++---------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/calibre/README.md b/calibre/README.md index 1c8cb72dc..7b191e860 100644 --- a/calibre/README.md +++ b/calibre/README.md @@ -1,4 +1,3 @@ -## ⚠ Open Issue : [🐛 [Calibre] Waiting for stream... / WebSocket disconnected. Attempting to reconnect... / Connection established. Waiting for server mode... (opened 2025-09-25)](https://github.com/alexbelgium/hassio-addons/issues/2126) by [@codyc1515](https://github.com/codyc1515) # Home assistant add-on: calibre [![Donate][donation-badge]](https://www.buymeacoffee.com/alexbelgium) diff --git a/calibre/rootfs/etc/cont-init.d/90-ingress.sh b/calibre/rootfs/etc/cont-init.d/90-ingress.sh index 18552d5a2..d4c8b35a0 100755 --- a/calibre/rootfs/etc/cont-init.d/90-ingress.sh +++ b/calibre/rootfs/etc/cont-init.d/90-ingress.sh @@ -2,34 +2,33 @@ # shellcheck shell=bash set -e -# nginx Path NGINX_CONFIG=/etc/nginx/sites-available/ingress.conf SUBFOLDER="$(bashio::addon.ingress_entry)" -# Copy template +# Ensure subfolder ends with a trailing slash (except for root) +if [[ -n "${SUBFOLDER}" && "${SUBFOLDER}" != "/" ]]; then + [[ "${SUBFOLDER}" == */ ]] || SUBFOLDER="${SUBFOLDER}/" +else + SUBFOLDER="/" +fi + cp /defaults/default.conf "${NGINX_CONFIG}" # Keep only the first (non-SSL) server block awk -v n=2 '/^[[:space:]]*server[[:space:]]*\{/{n--} n>0' "${NGINX_CONFIG}" > tmpfile mv tmpfile "${NGINX_CONFIG}" -# Remove ipv6 +# Disable IPv6 listeners for ingress proxying sed -i '/listen \[::\]/d' "${NGINX_CONFIG}" -# Add ingress parameters +# Adapt ports and upstream paths for Home Assistant ingress sed -i "s|3000|$(bashio::addon.ingress_port)|g" "${NGINX_CONFIG}" -sed -i '/proxy_buffering/a proxy_set_header Accept-Encoding "";' "${NGINX_CONFIG}" -sed -i '/proxy_buffering/a sub_filter_once off;' "${NGINX_CONFIG}" -sed -i '/proxy_buffering/a sub_filter_types *;' "${NGINX_CONFIG}" -sed -i '/proxy_buffering/a sub_filter "vnc/index.html?autoconnect" "vnc/index.html?path=%%path%%/websockify?autoconnect";' "${NGINX_CONFIG}" -sed -i "s|%%path%%|${SUBFOLDER:1}|g" "${NGINX_CONFIG}" - -# Replace placeholders +sed -i "s|SUBFOLDER|${SUBFOLDER}|g" "${NGINX_CONFIG}" sed -i "s|CWS|8082|g" "${NGINX_CONFIG}" -sed -i "s|REPLACE_HOME|${HOME:-/root}|g" "${NGINX_CONFIG}" +sed -i "s|REPLACE_DOWNLOADS_PATH|${HOME:-/config}|g" "${NGINX_CONFIG}" -# Correct image -sed -i "s|SUBFOLDER|/|g" "${NGINX_CONFIG}" +# Avoid content encoding on proxied responses to keep Selkies happy +sed -i '/proxy_buffering/a \ + proxy_set_header Accept-Encoding "";' "${NGINX_CONFIG}" -# Enable ingress -cp /etc/nginx/sites-available/ingress.conf /etc/nginx/sites-enabled +cp "${NGINX_CONFIG}" /etc/nginx/sites-enabled