mirror of
https://github.com/alexbelgium/hassio-addons.git
synced 2026-06-01 05:14:04 +02:00
Use fixed /seerr ingress_entry path matching official Seerr reverse proxy docs
Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
This commit is contained in:
@@ -68,6 +68,7 @@ devices:
|
|||||||
environment: {}
|
environment: {}
|
||||||
image: ghcr.io/alexbelgium/seerr-{arch}
|
image: ghcr.io/alexbelgium/seerr-{arch}
|
||||||
ingress: true
|
ingress: true
|
||||||
|
ingress_entry: /seerr
|
||||||
ingress_port: 0
|
ingress_port: 0
|
||||||
ingress_stream: true
|
ingress_stream: true
|
||||||
webui: "[PROTO:ssl]://[HOST]:[PORT:5055]"
|
webui: "[PROTO:ssl]://[HOST]:[PORT:5055]"
|
||||||
|
|||||||
@@ -10,15 +10,9 @@ bashio::log.info "Configuring Nginx for ingress..."
|
|||||||
|
|
||||||
ingress_port=$(bashio::addon.ingress_port)
|
ingress_port=$(bashio::addon.ingress_port)
|
||||||
ingress_interface=$(bashio::addon.ip_address)
|
ingress_interface=$(bashio::addon.ip_address)
|
||||||
ingress_entry=$(bashio::addon.ingress_entry)
|
|
||||||
|
|
||||||
# Build escaped version of ingress_entry for JavaScript contexts (e.g., \/_next)
|
|
||||||
ingress_entry_escaped="${ingress_entry//\//\\\\/}"
|
|
||||||
|
|
||||||
# Update ingress.conf with actual values
|
# Update ingress.conf with actual values
|
||||||
sed -i "s|%%port%%|${ingress_port}|g" /etc/nginx/servers/ingress.conf
|
sed -i "s|%%port%%|${ingress_port}|g" /etc/nginx/servers/ingress.conf
|
||||||
sed -i "s|%%interface%%|${ingress_interface}|g" /etc/nginx/servers/ingress.conf
|
sed -i "s|%%interface%%|${ingress_interface}|g" /etc/nginx/servers/ingress.conf
|
||||||
sed -i "s|%%ingress_entry_escaped%%|${ingress_entry_escaped}|g" /etc/nginx/servers/ingress.conf
|
|
||||||
sed -i "s|%%ingress_entry%%|${ingress_entry}|g" /etc/nginx/servers/ingress.conf
|
|
||||||
|
|
||||||
bashio::log.info "Nginx ingress configured on ${ingress_interface}:${ingress_port}"
|
bashio::log.info "Nginx ingress configured on ${ingress_interface}:${ingress_port}"
|
||||||
|
|||||||
@@ -7,8 +7,13 @@ server {
|
|||||||
gzip_static off;
|
gzip_static off;
|
||||||
client_max_body_size 0;
|
client_max_body_size 0;
|
||||||
|
|
||||||
location / {
|
# Based on https://github.com/seerr-team/seerr/blob/develop/docs/extending-seerr/reverse-proxy.mdx
|
||||||
proxy_pass http://127.0.0.1:5055;
|
location ^~ /seerr {
|
||||||
|
set $app 'seerr';
|
||||||
|
|
||||||
|
# Remove /seerr path to pass to the app
|
||||||
|
rewrite ^/seerr/?(.*)$ /$1 break;
|
||||||
|
proxy_pass http://127.0.0.1:5055; # NO TRAILING SLASH
|
||||||
|
|
||||||
proxy_http_version 1.1;
|
proxy_http_version 1.1;
|
||||||
proxy_set_header Upgrade $http_upgrade;
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
@@ -24,29 +29,27 @@ server {
|
|||||||
add_header 'Referrer-Policy' 'no-referrer';
|
add_header 'Referrer-Policy' 'no-referrer';
|
||||||
|
|
||||||
# Redirect location headers
|
# Redirect location headers
|
||||||
absolute_redirect off;
|
proxy_redirect ^ /$app;
|
||||||
proxy_redirect ^ %%ingress_entry%%;
|
proxy_redirect /setup /$app/setup;
|
||||||
proxy_redirect /setup %%ingress_entry%%/setup;
|
proxy_redirect /login /$app/login;
|
||||||
proxy_redirect /login %%ingress_entry%%/login;
|
|
||||||
|
|
||||||
# Sub filters to replace hardcoded paths
|
# Sub filters to replace hardcoded paths
|
||||||
# Based on https://github.com/seerr-team/seerr/blob/develop/docs/extending-seerr/reverse-proxy.mdx
|
|
||||||
sub_filter_once off;
|
sub_filter_once off;
|
||||||
sub_filter_types *;
|
sub_filter_types *;
|
||||||
sub_filter 'href="/"' 'href="%%ingress_entry%%"';
|
sub_filter 'href="/"' 'href="/$app"';
|
||||||
sub_filter 'href="/login"' 'href="%%ingress_entry%%/login"';
|
sub_filter 'href="/login"' 'href="/$app/login"';
|
||||||
sub_filter 'href:"/"' 'href:"%%ingress_entry%%"';
|
sub_filter 'href:"/"' 'href:"/$app"';
|
||||||
sub_filter '\/_next' '%%ingress_entry_escaped%%\/_next';
|
sub_filter '\/_next' '\/$app\/_next';
|
||||||
sub_filter '/_next' '%%ingress_entry%%/_next';
|
sub_filter '/_next' '/$app/_next';
|
||||||
sub_filter '/api/v1' '%%ingress_entry%%/api/v1';
|
sub_filter '/api/v1' '/$app/api/v1';
|
||||||
sub_filter '/login/plex/loading' '%%ingress_entry%%/login/plex/loading';
|
sub_filter '/login/plex/loading' '/$app/login/plex/loading';
|
||||||
sub_filter '/images/' '%%ingress_entry%%/images/';
|
sub_filter '/images/' '/$app/images/';
|
||||||
sub_filter '/imageproxy/' '%%ingress_entry%%/imageproxy/';
|
sub_filter '/imageproxy/' '/$app/imageproxy/';
|
||||||
sub_filter '/avatarproxy/' '%%ingress_entry%%/avatarproxy/';
|
sub_filter '/avatarproxy/' '/$app/avatarproxy/';
|
||||||
sub_filter '/android-' '%%ingress_entry%%/android-';
|
sub_filter '/android-' '/$app/android-';
|
||||||
sub_filter '/apple-' '%%ingress_entry%%/apple-';
|
sub_filter '/apple-' '/$app/apple-';
|
||||||
sub_filter '/favicon' '%%ingress_entry%%/favicon';
|
sub_filter '/favicon' '/$app/favicon';
|
||||||
sub_filter '/logo_' '%%ingress_entry%%/logo_';
|
sub_filter '/logo_' '/$app/logo_';
|
||||||
sub_filter '/site.webmanifest' '%%ingress_entry%%/site.webmanifest';
|
sub_filter '/site.webmanifest' '/$app/site.webmanifest';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user