[Quadlet] DefaultDependencies=false [Unit] Description=Caddy {% if node['name'] == "infra" %} After=ca.service Requires=ca.service {% else %} After=network-online.target Wants=network-online.target {% endif %} [Container] Image={{ domain['internal'] }}/{{ node['name'] }}/caddy:{{ version['containers']['caddy'] }} ContainerName=caddy_{{ node['name'] }} HostName=caddy_{{ node['name'] }} {% if node['name'] == 'infra' %} AddHost={{ services['ca']['domain'] }}.{{ domain['internal'] }}:host-gateway AddHost={{ services['prometheus']['domain'] }}.{{ domain['internal'] }}:host-gateway AddHost={{ services['loki']['domain'] }}.{{ domain['internal'] }}:host-gateway {% endif %} PublishPort={{ services['caddy']['ports']['http'] }}:80/tcp PublishPort={{ services['caddy']['ports']['https'] }}:443/tcp Volume=%h/containers/caddy/etc:/etc/caddy:ro Volume=%h/containers/caddy/data:/data:rw {% if node['name'] == 'auth' %} Volume=/var/log/caddy:/log:rw {% endif %} Environment="TZ=Asia/Seoul" Secret=CADDY_ACME_KEY,target=/run/secrets/CADDY_ACME_KEY {% if node['name'] == 'auth' %} Secret=CADDY_CROWDSEC_KEY,target=/run/secrets/CADDY_CROWDSEC_KEY {% endif %} [Service] Restart=always RestartSec=10s TimeoutStopSec=120 [Install] WantedBy=default.target