Learn Caddy (the modern web server with automatic HTTPS) from the ground up to production-grade: environment setup, history, architecture & core concepts, installation, Caddyfile fundamentals, static file serving, reverse proxy, automatic HTTPS, TLS configuration, wildcard certificates & DNS challenges, matchers & rewriting, redirects & error handling, load balancing & sticky sessions, failover, authentication & SSO, security headers & CORS, compression & caching, logging & monitoring, admin API, PHP-FPM, WebSocket, gRPC, Docker & Kubernetes, all the way to production deployment & best practices, with a total of 31 episodes.
Before touching Caddy, you need to master web server concepts, HTTP/HTTPS, DNS, and TLS. In this episode you'll also prepare a Linux environment, install Caddy, and verify the first installation with basic commands.

This episode tells the story of web server evolution from Apache and NGINX, the birth of Caddy by Matt Holt in 2015 as the first web server with automatic HTTPS, its key advantages, comparisons with the alternatives, and the use cases Caddy fits best.

This episode dissects Caddy's architecture: the HTTP server core, the module system, the admin API, and the storage layer. You'll also learn the request flow, Caddyfile structure, the concepts of site address, directive, matcher, and handler, plus the four configuration methods.

This episode guides you through installing Caddy via various methods: official package managers, binary downloads, Docker, and building from source. You'll also run a first run, check the logs, and verify that the installation works correctly.

This episode dissects the Caddyfile syntax from scratch: basic structure, comments, indentation, and environment variables. You'll also learn site block variations and essential directives like root, file_server, respond, reverse_proxy, redir, and encode.

This episode dissects static file serving: the file_server and root directives, directory browsing, index files, precompressed files, and try_files for SPA routing. You'll also learn dynamic roots with variables and common file server use cases.

This episode introduces the reverse proxy: the reverse_proxy directive, header manipulation to upstream and to the client, proxy patterns for localhost and containers, WebSocket and gRPC proxying, plus transport options like h2c and timeouts.

This episode dissects automatic HTTPS: the ACME protocol, Let's Encrypt integration, domain validation, automatic issuance and renewal, certificate storage, domain pre-requisites, and the HTTP-01, TLS-ALPN-01, and DNS-01 challenge types.

This episode covers manual TLS configuration: the tls directive, protocol and cipher options, disabling automatic HTTPS for development, certificate sources beyond Let's Encrypt, and enforcing HTTPS with HSTS.

This episode covers wildcard certificates and the DNS-01 challenge: wildcard syntax, the DNS-01 requirement for wildcards, DNS provider credentials like Cloudflare and Route53, custom builds with xcaddy, and per-site and global configuration.
