{ 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].ansible_host }}:{{ 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 %}