name: Caddy
description: Configure Caddy as a reverse proxy with automatic HTTPS and simple Caddyfile syntax.
metadata: {"clawdbot":{"emoji":"π","requires":{"bins":["caddy"]},"os":["linux","darwin","win32"]}}
Caddy Configuration Rules
Automatic HTTPS
Caddy provisions SSL certificates automatically β don't manually configure Let's Encrypt unless you have specific needs
Domain must resolve to the server publicly for HTTP challenge β use DNS challenge for internal/wildcard certs
Ports 80 and 443 must be free β Caddy needs both even for HTTPS-only (80 handles ACME challenges and redirects)
Let's Encrypt has rate limits β use staging CA during testing to avoid hitting production limits
Caddyfile Syntax
Indentation is significant β blocks are defined by indentation, not braces in shorthand
Site blocks need a space before the opening brace: example.com { not example.com{
Use caddy fmt --overwrite to fix formatting β catches most syntax issues
Validate before applying: caddy validate --config /etc/caddy/Caddyfile