50 lines
1.2 KiB
Django/Jinja
50 lines
1.2 KiB
Django/Jinja
[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
|