mirror of
https://github.com/linuxserver/docker-swag.git
synced 2026-09-18 22:34:55 +09:00
initial env var ingestion for rev proxy configs
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
## Version 2025/08/28
|
||||
# THIS FILE IS AUTO-GENERATED BY THE CONTAINER. DO NOT EDIT.
|
||||
#
|
||||
# This is the default server block, handling requests to the root domain.
|
||||
|
||||
# redirect all traffic to https
|
||||
server {
|
||||
listen 80 default_server;
|
||||
listen [::]:80 default_server;
|
||||
|
||||
location / {
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
||||
}
|
||||
|
||||
# main server block
|
||||
server {
|
||||
listen 443 ssl default_server;
|
||||
{% if item.quic %}
|
||||
listen 443 quic reuseport default_server;
|
||||
{% else %}
|
||||
# listen 443 quic reuseport default_server;
|
||||
{% endif %}
|
||||
listen [::]:443 ssl default_server;
|
||||
{% if item.quic %}
|
||||
listen [::]:443 quic reuseport default_server;
|
||||
{% else %}
|
||||
# listen [::]:443 quic reuseport default_server;
|
||||
{% endif %}
|
||||
|
||||
server_name _;
|
||||
|
||||
include /config/nginx/ssl.conf;
|
||||
|
||||
client_max_body_size {{ item.client_max_body_size | default('0') }};
|
||||
{% if item.proxy_redirect_off %}
|
||||
proxy_redirect off;
|
||||
{% endif %}
|
||||
{% if item.buffering_off %}
|
||||
proxy_buffering off;
|
||||
{% endif %}
|
||||
|
||||
{% if item.auth_provider and item.auth_provider not in ['none', 'basic'] %}
|
||||
# enable for {{ item.auth_provider }}
|
||||
include /config/nginx/{{ item.auth_provider }}-server.conf;
|
||||
{% endif %}
|
||||
|
||||
location / {
|
||||
{% if item.auth_provider == 'basic' %}
|
||||
# enable for basic auth
|
||||
auth_basic "Restricted";
|
||||
auth_basic_user_file /config/nginx/.htpasswd;
|
||||
{% elif item.auth_provider and item.auth_provider != 'none' %}
|
||||
# enable for {{ item.auth_provider }}
|
||||
include /config/nginx/{{ item.auth_provider }}-location.conf;
|
||||
{% else %}
|
||||
# No authentication enabled for this service.
|
||||
{% endif %}
|
||||
|
||||
include /config/nginx/proxy.conf;
|
||||
include /config/nginx/resolver.conf;
|
||||
set $upstream_app {{ item.name }};
|
||||
set $upstream_port {{ item.port }};
|
||||
set $upstream_proto {% if item.https %}https{% else %}http{% endif %};
|
||||
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
|
||||
{% if item.proxy_set_headers %}
|
||||
{% for header in item.proxy_set_headers %}
|
||||
proxy_set_header {{ header.key }} {{ header.value }};
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.custom_directives %}
|
||||
{% for directive in item.custom_directives %}
|
||||
{{ directive }};
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
}
|
||||
|
||||
{% if item.extra_locations %}
|
||||
{% for loc in item.extra_locations %}
|
||||
location {{ loc.path }} {
|
||||
include /config/nginx/proxy.conf;
|
||||
include /config/nginx/resolver.conf;
|
||||
set $upstream_app {{ loc.app | default(item.name) }};
|
||||
set $upstream_port {{ loc.port | default(item.port) }};
|
||||
set $upstream_proto {% if loc.https %}https{% elif item.https and loc.https is not defined %}https{% else %}http{% endif %};
|
||||
proxy_pass $upstream_proto://$upstream_app:$upstream_port{% if loc.proxy_pass_path %}{{ loc.proxy_pass_path }}{% endif %};
|
||||
{% if loc.proxy_set_headers %}
|
||||
{% for header in loc.proxy_set_headers %}
|
||||
proxy_set_header {{ header.key }} {{ header.value }};
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if loc.custom_directives %}
|
||||
{% for directive in loc.custom_directives %}
|
||||
{{ directive }};
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
}
|
||||
|
||||
# enable subdomain method reverse proxy confs
|
||||
include /config/nginx/proxy-confs/*.conf;
|
||||
@@ -0,0 +1,141 @@
|
||||
## Version 2025/08/28
|
||||
# THIS FILE IS AUTO-GENERATED BY THE CONTAINER. DO NOT EDIT.
|
||||
#
|
||||
# make sure that your {{ item.name }} container is named {{ item.name }}
|
||||
# make sure that your dns has a cname set for {{ item.name }}
|
||||
|
||||
server {
|
||||
listen 443 ssl;
|
||||
{% if item.quic %}
|
||||
listen 443 quic reuseport;
|
||||
{% else %}
|
||||
# listen 443 quic reuseport;
|
||||
{% endif %}
|
||||
listen [::]:443 ssl;
|
||||
{% if item.quic %}
|
||||
listen [::]:443 quic reuseport;
|
||||
{% else %}
|
||||
# listen [::]:443 quic reuseport;
|
||||
{% endif %}
|
||||
|
||||
server_name {{ item.name }}.*;
|
||||
|
||||
include /config/nginx/ssl.conf;
|
||||
|
||||
client_max_body_size {{ item.client_max_body_size | default('0') }};
|
||||
{% if item.proxy_redirect_off %}
|
||||
proxy_redirect off;
|
||||
{% endif %}
|
||||
{% if item.buffering_off %}
|
||||
proxy_buffering off;
|
||||
{% endif %}
|
||||
|
||||
{% if item.auth_provider and item.auth_provider not in ['none', 'basic'] %}
|
||||
# enable for {{ item.auth_provider }}
|
||||
include /config/nginx/{{ item.auth_provider }}-server.conf;
|
||||
{% endif %}
|
||||
|
||||
location / {
|
||||
{% if item.auth_provider == 'basic' %}
|
||||
# enable for basic auth
|
||||
auth_basic "Restricted";
|
||||
auth_basic_user_file /config/nginx/.htpasswd;
|
||||
{% elif item.auth_provider and item.auth_provider != 'none' %}
|
||||
# enable for {{ item.auth_provider }}
|
||||
include /config/nginx/{{ item.auth_provider }}-location.conf;
|
||||
{% else %}
|
||||
# No authentication enabled for this service.
|
||||
{% endif %}
|
||||
|
||||
include /config/nginx/proxy.conf;
|
||||
include /config/nginx/resolver.conf;
|
||||
set $upstream_app {{ item.name }};
|
||||
set $upstream_port {{ item.port }};
|
||||
set $upstream_proto {% if item.https %}https{% else %}http{% endif %};
|
||||
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
|
||||
{% if item.hide_xframe %}
|
||||
proxy_hide_header X-Frame-Options;
|
||||
{% endif %}
|
||||
{% if item.iframe_friendly %}
|
||||
# Uncomment to allow loading in an iframe (i.e. Organizr)
|
||||
#proxy_hide_header X-Frame-Options;
|
||||
{% endif %}
|
||||
{% if item.hide_x_forwarded_port %}
|
||||
# Hide proxy port to prevent CSRF errors
|
||||
proxy_hide_header X-Forwarded-Port;
|
||||
{% endif %}
|
||||
{% if item.set_x_scheme %}
|
||||
proxy_set_header X-Scheme https;
|
||||
{% endif %}
|
||||
{% if item.websockets %}
|
||||
proxy_buffering off;
|
||||
proxy_socket_keepalive on;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header Sec-WebSocket-Extensions $http_sec_websocket_extensions;
|
||||
proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key;
|
||||
proxy_set_header Sec-WebSocket-Version $http_sec_websocket_version;
|
||||
{% endif %}
|
||||
{% if item.proxy_pass_headers %}
|
||||
{% for header in item.proxy_pass_headers %}
|
||||
proxy_pass_header {{ header }};
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.proxy_set_headers %}
|
||||
{% for header in item.proxy_set_headers %}
|
||||
proxy_set_header {{ header.key }} {{ header.value }};
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.proxy_hide_headers %}
|
||||
{% for header in item.proxy_hide_headers %}
|
||||
proxy_hide_header {{ header }};
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.add_headers %}
|
||||
{% for header in item.add_headers %}
|
||||
add_header {{ header.key }} "{{ header.value }}";
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.custom_directives %}
|
||||
{% for directive in item.custom_directives %}
|
||||
{{ directive }};
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
}
|
||||
{% if item.api %}
|
||||
location ~ (?:/{{ item.name }})?/api {
|
||||
include /config/nginx/proxy.conf;
|
||||
include /config/nginx/resolver.conf;
|
||||
set $upstream_app {{ item.name }};
|
||||
set $upstream_port {{ item.port }};
|
||||
set $upstream_proto {% if item.https %}https{% else %}http{% endif %};
|
||||
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
|
||||
}
|
||||
{% endif %}
|
||||
{% if item.extra_locations %}
|
||||
{% for loc in item.extra_locations %}
|
||||
location ~ (?:/{{ item.name }})?{{ loc.path }} {
|
||||
include /config/nginx/proxy.conf;
|
||||
include /config/nginx/resolver.conf;
|
||||
set $upstream_app {{ loc.app | default(item.name) }};
|
||||
set $upstream_port {{ loc.port | default(item.port) }};
|
||||
set $upstream_proto {% if loc.https %}https{% elif item.https and loc.https is not defined %}https{% else %}http{% endif %};
|
||||
proxy_pass $upstream_proto://$upstream_app:$upstream_port{% if loc.proxy_pass_path %}{{ loc.proxy_pass_path }}{% endif %};
|
||||
{% if loc.proxy_set_headers %}
|
||||
{% for header in loc.proxy_set_headers %}
|
||||
proxy_set_header {{ header.key }} {{ header.value }};
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if loc.proxy_hide_headers %}
|
||||
{% for header in loc.proxy_hide_headers %}
|
||||
proxy_hide_header {{ header }};
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if loc.custom_directives %}
|
||||
{% for directive in loc.custom_directives %}
|
||||
{{ directive }};
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
}
|
||||
Reference in New Issue
Block a user