45 lines
1.2 KiB
Django/Jinja
45 lines
1.2 KiB
Django/Jinja
{%- macro caddy_site_hsts(svc, for_www) -%}
|
|
{%- if svc.hsts|default(false) and (svc.www_domain|default(false) == for_www) -%}
|
|
{{ 'header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload"' if svc.hsts|default(false) }}
|
|
{%- endif -%}
|
|
{%- endmacro -%}
|
|
|
|
{% macro caddy_site(svc) %}
|
|
{%- for domain in svc.additional_domains|default([]) %}
|
|
{{ domain }},
|
|
{% endfor -%}
|
|
{{ "www." + svc.domain if svc.www_domain|default(false) else svc.domain }} {
|
|
import default
|
|
{{ caddy_site_hsts(svc, false) }}
|
|
|
|
{{ svc.caddy_extra | indent(width='\t', first=True) if svc.caddy_extra|default(false) }}
|
|
|
|
{% if svc.caddy_default|default(true) %}
|
|
handle {
|
|
{% if svc.faas_function|default(false) %}
|
|
import faas {{ svc.faas_function }}
|
|
{% elif svc.redirect|default(false) %}
|
|
redir "{{ svc.redirect }}"
|
|
{% else %}
|
|
reverse_proxy {{ svc.docker_host|default(svc.name) }}:{{ svc.port }}
|
|
{% endif %}
|
|
}
|
|
{% endif %}
|
|
}
|
|
|
|
{% if svc.www_domain|default(false) %}
|
|
{{ svc.domain }} {
|
|
import default
|
|
{{ caddy_site_hsts(svc, true) }}
|
|
redir https://www.{{ svc.domain }}{uri}
|
|
}
|
|
{% endif %}
|
|
{% endmacro -%}
|
|
|
|
{% if svc.domain|default(false) %}
|
|
{{ caddy_site(svc) }}
|
|
{% endif %}
|
|
|
|
{%- for extra_svc in svc.extra_svcs|default([]) %}
|
|
{{ caddy_site(extra_svc) }}
|
|
{% endfor %}
|