Setting Up Automated SSL Certificates with Caddy
Caddy automatically provisions and renews SSL certificates. Zero-config HTTPS for all your self-hosted services.
Why Caddy for SSL?
Caddy automatically provisions SSL certificates from Let's Encrypt. No manual certificate management, no renewal scripts, no cron jobs.
How It Works
1. You configure a domain in Caddy
2. Caddy automatically requests a certificate from Let's Encrypt
3. Certificate is installed and configured
4. Caddy auto-renews before expiry
5. HTTP is automatically redirected to HTTPS
Caddyfile Example
gitea.example.com {
reverse_proxy localhost:3000
}
grafana.example.com {
reverse_proxy localhost:3001
}
That's it. Both domains get HTTPS automatically.
Caddy vs Nginx + Certbot
Advanced Features
Wildcard Certificates
Use DNS challenge for *.example.com:
*.example.com {
tls {
dns cloudflare {env.CF_API_TOKEN}
}
}
Internal Certificates
Caddy can act as an internal CA for services that don't need public certificates.
On-Demand TLS
Provision certificates on first request — useful for multi-tenant apps.
Best Practices
Deployment
On TinyPod, Caddy is the default reverse proxy. SSL certificates are handled automatically for every service you deploy.