Skip to main content

Caddy

Reverse proxy — access everything hosted on different machines and ports through a single externally accessible port.

Features

  • Automatic HTTPS: Obtains and renews TLS certificates from Let's Encrypt with zero config
  • Simple Caddyfile: Human-readable config that is far shorter than equivalent Nginx config
  • Reverse Proxy: Route subdomains and paths to any upstream with load balancing
  • HTTP/3 & QUIC: Modern protocol support out of the box
  • Dynamic Config API: Update routing rules at runtime via JSON API without restarts
  • Plugin Architecture: Extend with DNS providers, rate limiting, and more

Port Binding Note

Ports exposed to the Docker host using port: 8421:80 bind the host port to the Docker port at :80. However, if another container within the Docker network is accessing that container, it will still use :80 — not :8421.

Privileged Port Error

To allow binding to port 80 without root, add to /etc/sysctl.conf:

net.ipv4.ip_unprivileged_port_start=80

Apply immediately:

sudo sysctl -w net.ipv4.ip_unprivileged_port_start=80