https://github.com/ResRipper/dockerfile-lib/blob/main/caddy-custom
Caddy with plugins built-in:
caddy.docker-compose.yml
name: caddy
services:
caddy:
image: resripper/caddy-custom:2.10.2
restart: unless-stopped
labels:
# Trusted proxies
caddy.servers.trusted_proxies: combine
## Private IPs
caddy.servers.trusted_proxies.private_ranges:
## Traffic from Cloudflare
caddy.servers.trusted_proxies.cloudflare.interval: 24h
caddy.servers.trusted_proxies.cloudflare.timeout: 15s
# Specify client IP header
caddy.servers.trusted_proxies_strict:
caddy.servers.client_ip_headers: CF-Connecting-IP X-Forwarded-For X-Real-IP
# Specify DNS challenge provider
caddy.acme_dns: cloudflare {env.CF_API_TOKEN}
environment:
CADDY_INGRESS_NETWORKS: reverse_proxy
CF_API_TOKEN: <Cloudflare API token>
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- caddy_data:/data
# For Nextcloud FPM
# Add labels below into Nextcloud's compose file:
# caddy.file_server:
# caddy.root: "* /var/www/html"
- /.../nextcloud/data:/var/www/html:z,ro
ports:
- 80:80
- 443:443/tcp
- 443:443/udp
networks:
- reverse_proxy
volumes:
caddy_data:
networks:
reverse_proxy:
name: reverse_proxy
external: true
service.docker-compose.yml
name: web
services:
web:
image: ...
labels:
caddy: <Host name>
caddy.encode: zstd gzip
caddy.reverse_proxy: "{{upstreams <web service port>}}"
...
Content type
Image
Digest
sha256:fd21b6bce…
Size
17.3 MB
Last updated
5 days ago
docker pull resripper/caddy-custom