server { listen 80{% if 'default' in nginx_vhost and nginx_vhost.default %} default_server{% endif %}; listen [::]:80{% if 'default' in nginx_vhost and nginx_vhost.default %} default_server{% endif %}; server_name {{ nginx_vhost.hostnames | join(' ') }}; include snippets/acmetool.conf; location / { return 301 https://$host$request_uri; } } server { listen 443 ssl http2{% if 'default' in nginx_vhost and nginx_vhost.default %} default_server{% endif %}; listen [::]:443 ssl http2{% if 'default' in nginx_vhost and nginx_vhost.default %} default_server{% endif %}; server_name {{ nginx_vhost.hostnames | join(' ') }}; include snippets/acmetool.conf; include snippets/tls{% if 'tls_variant' in nginx_vhost %}-{{ nginx_vhost.tls_variant }}{% endif %}.conf; ssl_certificate /var/lib/acme/live/{{ nginx_vhost.hostnames[0] }}/fullchain; ssl_certificate_key /var/lib/acme/live/{{ nginx_vhost.hostnames[0] }}/privkey; include snippets/hsts.conf; {% if 'extra_directives' in nginx_vhost %} {{ nginx_vhost.extra_directives | indent(4) }} {% endif %} {% for path, location in nginx_vhost.locations.items() %} location {{ path }} { {% if 'root' in location %} root {{ location.root }}; {% elif 'alias' in location %} alias {{ location.alias }}; {% endif %} {% if 'index' in location %} index {{ location.index }}; {% endif %} {% if 'autoindex' in location %} autoindex on; {% if 'format' in location.autoindex %} autoindex_format {{ nginx_vhost.autoindex.format }}; {% endif %} {% endif %} {% if 'extra_directives' in location %} {{ location.extra_directives | indent(8) }} {% endif %} } {% endfor %} }