[Unit] Description=Nextcloud Web Requires=nextcloud-app.service After=nextcloud-app.service [Container] ContainerName=nextcloud-web Image=docker.io/library/nginx:{{ nextcloud_nginx_version }} Network=traefik.network Network=nextcloud.network Volume=/var/nextcloud/web/nginx.conf:/etc/nginx/nginx.conf Volume=/var/nextcloud/app:/var/www/html:z Label="traefik.http.middlewares.nextcloud_redirectregex.redirectregex.permanent=true" Label="traefik.http.middlewares.nextcloud_redirectregex.redirectregex.regex=https://(.*)/.well-known/(?:card|cal)dav" Label="traefik.http.middlewares.nextcloud_redirectregex.redirectregex.replacement=https://$${1}/remote.php/dav" {% for domain in nextcloud_domains -%} Label="traefik.http.routers.nextcloud{{loop.index}}.middlewares=nextcloud_redirectregex" Label="traefik.http.routers.nextcloud{{loop.index}}.tls.certresolver=resolver" Label="traefik.http.routers.nextcloud{{loop.index}}.tls=true" Label="traefik.http.routers.nextcloud{{loop.index}}.rule=Host(`{{ domain }}`)" Label="traefik.http.routers.nextcloud{{loop.index}}.service=nextcloud{{loop.index}}" Label="traefik.http.services.nextcloud{{loop.index}}.loadbalancer.server.port=80" {% endfor %} [Service] Restart=on-failure # Restart Delay RestartSec=30 # Allowed time for the service to start. TimeoutStartSec=90 # Allowed time for the service to stop. TimeoutStopSec=90 [Install] WantedBy=default.target