DEV Community

Alex Spinov
Alex Spinov

Posted on

Caddy Has a Free Web Server: Automatic HTTPS, Reverse Proxy, and Zero-Config TLS Certificates

Setting up Nginx with Let's Encrypt means: install Nginx, install Certbot, configure renewal cron, edit nginx.conf, handle redirect loops, debug certificate errors. For HTTPS. In 2026.

What if your web server automatically obtained and renewed TLS certificates — with zero configuration?

That's Caddy. Automatic HTTPS by default.

The Simplest Caddyfile

example.com {
    root * /var/www/html
    file_server
}
Enter fullscreen mode Exit fullscreen mode

That's it. Caddy automatically:

  1. Obtains a TLS certificate from Let's Encrypt
  2. Redirects HTTP → HTTPS
  3. Renews the certificate before expiry
  4. Serves your files with HTTP/2 and HTTP/3

Reverse Proxy

api.example.com {
    reverse_proxy localhost:3000
}

app.example.com {
    reverse_proxy localhost:5173
}

example.com {
    handle /api/* {
        reverse_proxy localhost:3000
    }
    handle {
        reverse_proxy localhost:5173
    }
}
Enter fullscreen mode Exit fullscreen mode

Load Balancing

api.example.com {
    reverse_proxy localhost:3001 localhost:3002 localhost:3003 {
        lb_policy round_robin
        health_uri /health
        health_interval 10s
    }
}
Enter fullscreen mode Exit fullscreen mode

Caddy vs Nginx vs Traefik

Feature Caddy Nginx Traefik
Auto HTTPS Built-in Certbot needed Built-in
Config format Caddyfile (simple) nginx.conf (complex) YAML/TOML
HTTP/3 Built-in Module Built-in
Hot reload Yes nginx -s reload Yes
Written in Go C Go
Memory usage ~30MB ~5MB ~50MB

Choose Caddy for simplicity. Choose Nginx for raw performance. Choose Traefik for Docker/K8s service discovery.

Start here: caddyserver.com


Need custom data extraction, scraping, or automation? I build tools that collect and process data at scale — 78 actors on Apify Store and 265+ open-source repos. Email me: Spinov001@gmail.com | My Apify Actors

Top comments (0)