# Replace 'your-registry.example.com' with your real domain # Caddy will automatically obtain TLS certificates for this domain via Let's Encrypt # and reverse-proxy traffic to the grain service on port 8888 (same Docker network) your-registry.example.com { # Allow large uploads for container images request_body { max_size 0 } reverse_proxy grain:8888 { # Rewrite Location headers from internal address to public HTTPS URL header_up Host {host} header_down Location http://0.0.0.0:8888 https://your-registry.example.com } log { output file /var/log/caddy/grain_access.log } }