35 lines
926 B
Django/Jinja
35 lines
926 B
Django/Jinja
{
|
|
email {{ caddy.admin_email | default('admin@example.com') }}
|
|
acme_ca {{ caddy.acme_ca | default('https://acme-v02.api.letsencrypt.org/directory') }}
|
|
}
|
|
|
|
{% for service in services %}
|
|
{% if service.ports is defined %}
|
|
{% if service.ports is iterable %}
|
|
{% set http_port = service.ports | selectattr('name', 'equalto', 'http') | map(attribute='external') | list %}
|
|
{% if http_port %}
|
|
{{ service.name }}.{{ domain }} {
|
|
{% for vm in service.vm %}
|
|
reverse_proxy {{ hostvars[vm].host.ip }}:{{ http_port[0] }}
|
|
{% endfor %}
|
|
log {
|
|
output file /var/log/caddy/{{ service.name }}.log
|
|
format json
|
|
}
|
|
tls {
|
|
dns netcup {
|
|
customer_number {{ vault_netcup.customer_number }}
|
|
api_key {{ vault_netcup.api_key }}
|
|
api_password {{ vault_netcup.api_password }}
|
|
}
|
|
propagation_timeout 900s
|
|
propagation_delay 600s
|
|
resolvers 1.1.1.1
|
|
}
|
|
}
|
|
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endfor %}
|