mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-05-06 05:27:44 +03:00
Base path via environment variable
This commit is contained in:
parent
cf3c0b2eb5
commit
a4a23e366a
@ -79,6 +79,16 @@ if [ ! \( -f "$letsencrypt_path/privkey.pem" -a -f "$letsencrypt_path/fullchain.
|
|||||||
-keyout "$letsencrypt_path/privkey.pem" -out "$letsencrypt_path/fullchain.pem" 2>/dev/null
|
-keyout "$letsencrypt_path/privkey.pem" -out "$letsencrypt_path/fullchain.pem" 2>/dev/null
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# build templates for optional BASE_PATH environment variable
|
||||||
|
python3 /usr/local/nginx/get_base_path.py | \
|
||||||
|
tempio -template /usr/local/nginx/templates/base_path.gotmpl \
|
||||||
|
-out /usr/local/nginx/conf/base_path.conf
|
||||||
|
|
||||||
|
# build templates for optional base_path in web manifest
|
||||||
|
python3 /usr/local/nginx/get_base_path.py | \
|
||||||
|
tempio -template /usr/local/nginx/templates/web_manifest.gotmpl \
|
||||||
|
-out /usr/local/nginx/conf/web_manifest.conf
|
||||||
|
|
||||||
# build templates for optional TLS support
|
# build templates for optional TLS support
|
||||||
python3 /usr/local/nginx/get_tls_settings.py | \
|
python3 /usr/local/nginx/get_tls_settings.py | \
|
||||||
tempio -template /usr/local/nginx/templates/listen.gotmpl \
|
tempio -template /usr/local/nginx/templates/listen.gotmpl \
|
||||||
|
|||||||
@ -96,6 +96,7 @@ http {
|
|||||||
gzip_types application/vnd.apple.mpegurl;
|
gzip_types application/vnd.apple.mpegurl;
|
||||||
|
|
||||||
include auth_location.conf;
|
include auth_location.conf;
|
||||||
|
include base_path.conf;
|
||||||
|
|
||||||
location /vod/ {
|
location /vod/ {
|
||||||
include auth_request.conf;
|
include auth_request.conf;
|
||||||
@ -235,9 +236,9 @@ http {
|
|||||||
include proxy.conf;
|
include proxy.conf;
|
||||||
}
|
}
|
||||||
|
|
||||||
location ~* /api/.*\.(jpg|jpeg|png|webp|gif)$ {
|
location ~* (?:/.*/)?api/.*\.(jpg|jpeg|png|webp|gif)$ {
|
||||||
include auth_request.conf;
|
include auth_request.conf;
|
||||||
rewrite ^/api/(.*)$ /$1 break;
|
rewrite (?:/.*/)?api/(.*)$ /$1 break;
|
||||||
proxy_pass http://frigate_api;
|
proxy_pass http://frigate_api;
|
||||||
include proxy.conf;
|
include proxy.conf;
|
||||||
}
|
}
|
||||||
@ -299,6 +300,8 @@ http {
|
|||||||
add_header Cache-Control "public";
|
add_header Cache-Control "public";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
include web_manifest.conf;
|
||||||
|
|
||||||
sub_filter 'href="/BASE_PATH/' 'href="$http_x_ingress_path/';
|
sub_filter 'href="/BASE_PATH/' 'href="$http_x_ingress_path/';
|
||||||
sub_filter 'url(/BASE_PATH/' 'url($http_x_ingress_path/';
|
sub_filter 'url(/BASE_PATH/' 'url($http_x_ingress_path/';
|
||||||
sub_filter '"/BASE_PATH/dist/' '"$http_x_ingress_path/dist/';
|
sub_filter '"/BASE_PATH/dist/' '"$http_x_ingress_path/dist/';
|
||||||
|
|||||||
10
docker/main/rootfs/usr/local/nginx/get_base_path.py
Normal file
10
docker/main/rootfs/usr/local/nginx/get_base_path.py
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
"""Prints the base path as json to stdout."""
|
||||||
|
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
|
||||||
|
base_path = os.environ.get("BASE_PATH", "")
|
||||||
|
|
||||||
|
result: dict[str, any] = {"base_path": base_path}
|
||||||
|
|
||||||
|
print(json.dumps(result))
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
{{ if .base_path }}
|
||||||
|
location = {{ .base_path }} {
|
||||||
|
return 302 {{ .base_path }}/;
|
||||||
|
}
|
||||||
|
|
||||||
|
location {{ .base_path }}/ {
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_cache_bypass $http_upgrade;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection $http_connection;
|
||||||
|
proxy_set_header Host $http_host;
|
||||||
|
proxy_set_header X-Ingress-Path {{ .base_path }};
|
||||||
|
proxy_set_header Authorization "";
|
||||||
|
proxy_pass http:/{{ .base_path }}:5000/;
|
||||||
|
access_log off;
|
||||||
|
}
|
||||||
|
{{ end }}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
{{ if .base_path }}
|
||||||
|
location ~ ^/.*-([A-Za-z0-9]+)\.webmanifest$ {
|
||||||
|
access_log off;
|
||||||
|
expires 1y;
|
||||||
|
add_header Cache-Control "public";
|
||||||
|
default_type application/json;
|
||||||
|
proxy_set_header Accept-Encoding "";
|
||||||
|
sub_filter_once off;
|
||||||
|
sub_filter_types application/json;
|
||||||
|
sub_filter '"start_url": "/"' '"start_url" : "{{ .base_path }}"';
|
||||||
|
sub_filter '"src": "/' '"src": "{{ .base_path }}/';
|
||||||
|
}
|
||||||
|
{{ end }}
|
||||||
Loading…
Reference in New Issue
Block a user