Hi,
1. The problem I’m having:
Caddy ignores my logrotation settings, I dont want compressed log files and keep them until 500MiB size.
Validated via
auditctl -d -w /opt/docker/caddyv2/log/caddy.log -p wa -k file_watch
that the caddy process rotates the log.
docker exec -w /etc/caddy caddy_devcon_cc caddy adapt --config /etc/caddy/Caddyfile --pretty | grep roll
"roll_gzip": false,
"roll_keep": 10,
"roll_size_mb": 500
2. Error messages and/or full log output:
-rw------- 1 root root 61233 Jan 6 19:38 caddy-2026-01-06T18-38-14.815.log.gz
-rw------- 1 root root 104554 Jan 6 19:39 caddy-2026-01-06T18-39-40.879.log.gz
-rw------- 1 root root 312201 Jan 6 19:40 caddy.log
3. Caddy version:
v2.10.2 h1:g/gTYjGMD0dec+UgMw8SnfmJ3I9+M2TdvoRL/Ovu6U8=
4. How I installed and ran Caddy:
Via docker compose
a. System environment:
Docker 26.1.4
b. Command:
docker compose up
c. Service/unit/compose file:
version: "3.7"
services:
caddy:
build: .
container_name: caddy_devcon_cc
restart: always
volumes:
- /root/docker/caddyv2/Caddyfile:/etc/caddy/Caddyfile:ro
- /root/docker/caddyv2/data:/data
- /root/docker/caddyv2/config:/config
- /root/docker/caddyv2/block_ai_crawlers.conf:/etc/caddy/block_ai_crawlers.conf:ro
- /root/docker/caddyv2/log:/var/log
ports:
- 192.168.2.153:80:80/tcp
- 192.168.2.153:443:443
- 192.168.2.153:443:443/udp
- 192.168.2.158:80:80/tcp
- 192.168.2.158:443:443
- 192.168.2.158:443:443/udp
environment:
ACME_AGREE: "true" # agree to Let's Encrypt Subscriber Agreement
Dockerfile
FROM caddy:2.10-builder AS builder
RUN xcaddy build \
--with github.com/caddy-dns/digitalocean \
--with github.com/mholt/caddy-ratelimit \
--with pkg.jsn.cam/caddy-defender
FROM caddy:2.10
COPY --from=builder /usr/bin/caddy /usr/bin/caddy
d. My complete Caddy config:
(log-console) {
log {
output file /var/log/caddy.log {
roll_size 500MiB
roll_keep 10
# roll_keep_for_startup 10
roll_uncompressed
}
format json
}
}
www.tuit4ju.at {
import log-console
reverse_proxy 192.168.2.108:80
}