From 2a32e88f478cd019eb60b934379b68ac26719d2e Mon Sep 17 00:00:00 2001 From: Alexandre <44178713+alexbelgium@users.noreply.github.com> Date: Sun, 16 Nov 2025 20:43:20 +0100 Subject: [PATCH] Enhance ingress.sh for subfolder and IPv6 handling Updated ingress configuration script to ensure subfolder handling and disable IPv6 listeners. --- calibre/rootfs/etc/cont-init.d/90-ingress.sh | 29 ++++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/calibre/rootfs/etc/cont-init.d/90-ingress.sh b/calibre/rootfs/etc/cont-init.d/90-ingress.sh index 18552d5a2..5b533f43e 100755 --- a/calibre/rootfs/etc/cont-init.d/90-ingress.sh +++ b/calibre/rootfs/etc/cont-init.d/90-ingress.sh @@ -2,34 +2,39 @@ # 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 "s|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}" 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|CWS|8082|g" "${NGINX_CONFIG}" -sed -i "s|REPLACE_HOME|${HOME:-/root}|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}" -# Correct image -sed -i "s|SUBFOLDER|/|g" "${NGINX_CONFIG}" - -# Enable ingress -cp /etc/nginx/sites-available/ingress.conf /etc/nginx/sites-enabled +cp "${NGINX_CONFIG}" /etc/nginx/sites-enabled