Skip to content
ADHDecode
  1. Home
  2. Articles
  3. Caddy

Caddy Articles

49 articles

Reuse Config Blocks with Caddy import Snippets

Caddy's import directive is a feature that lets you reuse configuration snippets across different Caddyfiles, effectively creating a form of "configurat.

2 min read

Configure Caddy with JSON Instead of Caddyfile

Caddy's JSON configuration is a powerful way to manage your server, but it's often misunderstood as just a "different syntax" for the Caddyfile.

2 min read

Use Caddy as a Kubernetes Ingress Controller

Caddy can be a surprisingly powerful Kubernetes ingress controller, but its real strength isn't just routing traffic; it's its ability to dynamically ma.

3 min read

Use Let's Encrypt in Production with Caddy

Caddy is the only web server that automatically provisions and renews TLS certificates for your sites, making HTTPS a breeze.

3 min read

Configure Load Balancing in Caddy with Health Checks

Caddy's load balancing isn't just about distributing requests; it's about intelligently routing traffic to healthy backend servers, ensuring your applic.

3 min read

Set Up Structured JSON Logging in Caddy

Set Up Structured JSON Logging in Caddy — practical guide covering caddy setup, configuration, and troubleshooting with real-world examples.

3 min read

Caddy Matchers Explained: Route by Host, Path, Header, and More

Caddy's matcher system is how it decides which directives to apply to an incoming request, and it's way more powerful than just simple host or path matc.

3 min read

Export Caddy Metrics to Prometheus

Caddy can export metrics to Prometheus, but it doesn't do so by default; you have to explicitly enable and configure it.

3 min read

Host Multiple Domains from One Caddy Instance

Caddy can serve an unlimited number of domains from a single instance by leveraging its automatic HTTPS and dynamic configuration capabilities.

3 min read

On-Demand TLS in Caddy: Provision Certs for Unknown Domains

Caddy can automatically obtain TLS certificates for hostnames it's never seen before, driven by its on-demand TLS feature.

3 min read

Add OpenTelemetry Tracing to Caddy for Request Observability

Caddy's tracing capabilities aren't about just seeing requests; they're about seeing the journey of a request through Caddy's internal middleware pipeli.

3 min read

Tune Caddy for High-Performance Production Traffic

Caddy's default configuration is surprisingly opinionated about resource usage, often leaving performance on the table in production environments.

3 min read

Serve PHP Apps with Caddy and FastCGI

The most surprising thing about serving PHP with Caddy is that you don't actually need to install PHP itself on the Caddy server.

2 min read

Build a Custom Caddy Plugin with xcaddy

Build a Custom Caddy Plugin with xcaddy — practical guide covering caddy setup, configuration, and troubleshooting with real-world examples.

3 min read

Harden Caddy for Production: Security Headers and TLS Config

Caddy's default TLS configuration is surprisingly robust, but hardening it for production involves a few deliberate steps beyond just letting it auto-re.

2 min read

Rate Limit Requests in Caddy to Protect Your Backend

Caddy's rate limiting is a surprisingly flexible tool that can protect your backend services without acting like a blunt instrument.

3 min read

Rewrite and Redirect Requests in Caddy

Caddy’s rewrite and redirect directives don’t just change URLs; they fundamentally alter Caddy’s internal request processing loop, allowing you to dynam.

3 min read

Configure Caddy as a Reverse Proxy with TLS Termination

Caddy’s automatic HTTPS is so good, it can make you forget you’re even dealing with TLS. Let's see Caddy in action as a reverse proxy

2 min read

Serve Static Files Efficiently with Caddy

Caddy can serve static files with incredible performance, but the real magic is how it handles compression and caching automatically, often without you .

2 min read

Use Caddy Templates Middleware to Render Dynamic Content

The most surprising thing about Caddy's template middleware is that it doesn't actually render anything itself; it delegates the entire rendering proces.

2 min read

Upgrade to Caddy v2: What Changed and How to Migrate

Caddy v2 rewrites its internal architecture from the ground up, ditching the monolithic plugin system for a modular, dynamic configuration that allows f.

3 min read

Configure Virtual Hosts in Caddy for Multi-Site Hosting

You can serve an entire constellation of distinct websites from a single Caddy instance, each with its own domain, TLS certificates, and content, by def.

3 min read

Provision Wildcard TLS Certificates in Caddy

Caddy's automatic TLS provisioning is so robust that most people never even think about it, yet it's the engine that makes "just works" possible.

3 min read

Build a Custom Caddy Binary with xcaddy

Caddy's extensibility is a major selling point, but most users stick to the official binaries. What if you need a plugin not included in the official bu.

2 min read

Use ZeroSSL as Your ACME Provider in Caddy

Caddy's ability to automatically provision and renew TLS certificates is one of its killer features, and ZeroSSL is a fantastic ACME provider that integ.

4 min read

Customize Caddy Access Log Format for Structured Logging

Caddy's default access log format is a bit of a black box if you're trying to ingest it into a modern log analysis system.

3 min read

Use the Caddy Admin API to Reload Config Without Restart

Use the Caddy Admin API to Reload Config Without Restart — practical guide covering caddy setup, configuration, and troubleshooting with real-world exam...

2 min read

Reload Caddy Config via API Without Dropping Connections

Caddy's API allows you to reload its configuration without dropping existing HTTP connections. Here's Caddy serving a basic static site and handling a l.

2 min read

How Caddy Automatic HTTPS Works: ACME, Let's Encrypt, ZeroSSL

Caddy's automatic HTTPS is so good because it's not just a feature; it's Caddy's raison d'être, and it automates the entire lifecycle of TLS certificate.

3 min read

Add Basic Auth to Any Caddy Route in Minutes

Caddy can be configured to add HTTP Basic Authentication to any route using a simple directive, and the surprising part is how little configuration it a.

2 min read

Get Real Client IP in Caddy When Running Behind Cloudflare

Get Real Client IP in Caddy When Running Behind Cloudflare — practical guide covering caddy setup, configuration, and troubleshooting with real-world ex...

3 min read

Run Caddy Behind Nginx: Reverse Proxy Configuration

Caddy isn't just a web server; it's a reverse proxy that can automatically manage TLS certificates for you, which is why you might want to put it behind.

3 min read

Caddyfile Syntax Guide: Blocks, Matchers, and Directives

Caddyfile blocks, matchers, and directives don't just configure Caddy; they sculpt the very way requests are routed and transformed.

2 min read

Enable Gzip and Zstd Compression in Caddy

Caddy's automatic HTTP compression is one of its most surprising features because it's enabled by default and handles content negotiation for you withou.

3 min read

Use Custom TLS Certificates in Caddy Instead of Auto-HTTPS

Caddy's automatic HTTPS is amazing, but sometimes you need to bring your own TLS certificates, maybe for internal services that Caddy can't get public c.

3 min read

Get Wildcard Certs in Caddy with Cloudflare DNS Challenge

Caddy can automatically provision and renew TLS certificates for your domains, and it's particularly slick when integrating with DNS providers like Clou.

3 min read

Run Caddy with Docker Compose: Complete Setup Guide

Caddy, when run in Docker Compose, is not just a web server; it's an invisible force multiplier that handles TLS, proxies, and static files so seamlessl.

2 min read

Use the Caddy Docker Module for Container Auto-Discovery

Use the Caddy Docker Module for Container Auto-Discovery — practical guide covering caddy setup, configuration, and troubleshooting with real-world exam...

2 min read

Use Environment Variables in Caddy Config Safely

Caddy doesn't actually interpolate environment variables directly into its config files, which is a good thing for security and predictability.

2 min read

Serve Static Files with Directory Browsing in Caddy

Caddy can serve static files with directory browsing enabled, but it's not just about convenience; it's fundamentally about how Caddy interprets file sy.

2 min read

Protect Routes with Forward Auth in Caddy

Caddy's Forward Auth is less about what it protects and more about how it lets you delegate that decision entirely to another service.

2 min read

Get Started with Caddy: Install, Configure, and Serve HTTPS

Get Started with Caddy: Install, Configure, and Serve HTTPS — practical guide covering caddy setup, configuration, and troubleshooting with real-world e...

2 min read

Reload Caddy Config Gracefully Without Dropping Requests

Reload Caddy Config Gracefully Without Dropping Requests — practical guide covering caddy setup, configuration, and troubleshooting with real-world exam...

2 min read

Proxy gRPC Traffic with Caddy: H2C and TLS Configuration

Caddy can proxy gRPC traffic, but it's not as simple as just pointing it at your service; you must explicitly enable HTTP/2 without TLS H2C or configure.

3 min read

Handle HTTP Errors in Caddy with Custom Error Pages

Caddy's default error pages are functional but bland; replacing them with custom, branded, and more informative pages is a common requirement.

3 min read

Caddy handle vs route: When to Use Each

A Caddy handle is a directive that processes a request, while a route is a collection of handle directives that are matched against a request's path and.

2 min read

Add, Remove, and Rewrite HTTP Headers in Caddy

Caddy can dynamically transform your HTTP traffic by adding, removing, or rewriting headers, acting as a highly configurable proxy.

3 min read

Redirect HTTP to HTTPS in Caddy Automatically

Caddy redirects HTTP to HTTPS automatically because it's designed to make secure connections the default, no questions asked.

2 min read

Enable HTTP/3 and QUIC Support in Caddy

Enable HTTP/3 and QUIC Support in Caddy. HTTP/3 and QUIC support in Caddy is enabled by default on all recent versions. Let's see Caddy in action

2 min read
ADHDecode

Complex topics, finally made simple

Courses

  • Networking
  • Databases
  • Linux
  • Distributed Systems
  • Containers & Kubernetes
  • System Design
  • All Courses →

Resources

  • Cheatsheets
  • Debugging
  • Articles
  • About
  • Privacy
  • Sitemap

Connect

  • Twitter (opens in new tab)
  • GitHub (opens in new tab)

Built for curious minds. Free forever.

© 2026 ADHDecode. All content is free.

  • Home
  • Learn
  • Courses
Esc
Start typing to search all courses...
See all results →
↑↓ navigate Enter open Esc close