27 lines
1.0 KiB
YAML
27 lines
1.0 KiB
YAML
services:
|
|
timelog:
|
|
build:
|
|
context: .
|
|
image: timelog:latest
|
|
container_name: timelog
|
|
restart: unless-stopped
|
|
|
|
environment:
|
|
# Your domain, e.g. timelog.example.com — Caddy fetches a certificate for it.
|
|
# Set to :80 instead if you terminate TLS on an upstream reverse proxy.
|
|
SITE_ADDRESS: ${SITE_ADDRESS:?set SITE_ADDRESS in .env}
|
|
# Used by Let's Encrypt for expiry warnings. Required: Caddy fails to parse
|
|
# its config with an empty value, so this is checked here rather than
|
|
# crash-looping the container.
|
|
ACME_EMAIL: ${ACME_EMAIL:?set ACME_EMAIL in .env}
|
|
|
|
ports:
|
|
- ${LISTEN_IP:?0.0.0.0}:80:80 # required: the ACME HTTP challenge and the HTTPS redirect
|
|
- ${LISTEN_IP:?0.0.0.0}:443:443
|
|
- ${LISTEN_IP:?0.0.0.0}:443:443/udp # HTTP/3
|
|
|
|
volumes:
|
|
# Certificates live here. Without this volume Caddy re-issues on every
|
|
# recreate and will hit the Let's Encrypt rate limit within a few restarts.
|
|
- ./caddy/data:/data
|
|
- ./caddy/config:/config |