services/templates/caddy_site.conf.j2

44 lines
1.2 KiB
Plaintext
Raw Normal View History

2023-12-10 22:49:02 +00:00
{%- 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 -%}
2023-12-10 22:49:02 +00:00
{{ "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) }}
2023-12-11 20:39:01 +00:00
{% if svc.caddy_default|default(true) %}
2023-12-10 22:49:02 +00:00
handle {
{% if svc.faas_function|default(false) %}
import faas {{ svc.faas_function }}
{% elif svc.redirect|default(false) %}
redir "{{ svc.redirect }}"
2023-12-10 22:49:02 +00:00
{% else %}
reverse_proxy {{ svc.docker_host|default(svc.name) }}:{{ svc.port }}
{% endif %}
}
2023-12-11 20:39:01 +00:00
{% endif %}
2023-12-10 22:49:02 +00:00
}
{% if svc.www_domain|default(false) %}
2023-06-13 18:48:16 +00:00
{{ svc.domain }} {
import default
2023-12-10 22:49:02 +00:00
{{ caddy_site_hsts(svc, true) }}
redir https://www.{{ svc.domain }}{uri}
}
2023-12-10 22:49:02 +00:00
{% endif %}
{% endmacro -%}
{{ caddy_site(svc) }}
{%- for extra_svc in svc.extra_svcs|default([]) %}
2023-12-10 22:49:02 +00:00
{{ caddy_site(extra_svc) }}
{% endfor %}