mirror of
https://github.com/alexbelgium/hassio-addons.git
synced 2026-01-09 17:31:03 +01:00
Enhance ingress.sh for subfolder and IPv6 handling
Updated ingress configuration script to ensure subfolder handling and disable IPv6 listeners.
This commit is contained in:
@@ -2,34 +2,39 @@
|
|||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# nginx Path
|
|
||||||
NGINX_CONFIG=/etc/nginx/sites-available/ingress.conf
|
NGINX_CONFIG=/etc/nginx/sites-available/ingress.conf
|
||||||
SUBFOLDER="$(bashio::addon.ingress_entry)"
|
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}"
|
cp /defaults/default.conf "${NGINX_CONFIG}"
|
||||||
|
|
||||||
# Keep only the first (non-SSL) server block
|
# Keep only the first (non-SSL) server block
|
||||||
awk -v n=2 '/^[[:space:]]*server[[:space:]]*\{/{n--} n>0' "${NGINX_CONFIG}" > tmpfile
|
awk -v n=2 '/^[[:space:]]*server[[:space:]]*\{/{n--} n>0' "${NGINX_CONFIG}" > tmpfile
|
||||||
mv tmpfile "${NGINX_CONFIG}"
|
mv tmpfile "${NGINX_CONFIG}"
|
||||||
|
|
||||||
# Remove ipv6
|
# Disable IPv6 listeners for ingress proxying
|
||||||
sed -i '/listen \[::\]/d' "${NGINX_CONFIG}"
|
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|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 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_once off;' "${NGINX_CONFIG}"
|
||||||
sed -i '/proxy_buffering/a sub_filter_types *;' "${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 '/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}"
|
sed -i "s|%%path%%|${SUBFOLDER:1}|g" "${NGINX_CONFIG}"
|
||||||
|
|
||||||
# Replace placeholders
|
# Avoid content encoding on proxied responses to keep Selkies happy
|
||||||
sed -i "s|CWS|8082|g" "${NGINX_CONFIG}"
|
sed -i '/proxy_buffering/a \
|
||||||
sed -i "s|REPLACE_HOME|${HOME:-/root}|g" "${NGINX_CONFIG}"
|
proxy_set_header Accept-Encoding "";' "${NGINX_CONFIG}"
|
||||||
|
|
||||||
# Correct image
|
cp "${NGINX_CONFIG}" /etc/nginx/sites-enabled
|
||||||
sed -i "s|SUBFOLDER|/|g" "${NGINX_CONFIG}"
|
|
||||||
|
|
||||||
# Enable ingress
|
|
||||||
cp /etc/nginx/sites-available/ingress.conf /etc/nginx/sites-enabled
|
|
||||||
|
|||||||
Reference in New Issue
Block a user