Skip to content
EverythingChat & WritingLocal Models & APIsRAG & Autonomous Agents
✨ AI Roadmap

Caddy: Modern Web Server with Automatic TLS & Reverse Proxy

Production-grade web server and reverse proxy written in Go with automatic TLS certificate provisioning via Let's Encrypt / ZeroSSL, native HTTP/3, and clean declarative configuration.

AdvertisementResponsive Ad Slot
63.4kApache-2.0GoUpdated 2 days ago
GitHub

Hardware Pre-Flight Check

Verify your system meets runtime requirements before setup

Verified Specs
System RAM1 GB MinRec: 2 GB
GPU VRAMCPU OnlyNo GPU Required
Free Storage~1 GBFast SSD Recommended
Accelerators
CPU
Not sure if your local PC can handle this model?

Local Hardware Compatibility Checker

Instantly verify if frontier models run on your local PC or laptop.

Experience Mode:Quick & SimpleSynced with Site (Standard)

Streamlined view with essential inputs, clear verdicts, and zero cognitive overload.

16 Models Available
Selected: RTX 3060 / 4070 Desktop (12GB VRAM / 32GB RAM)
Full GPU Acceleration (Peak Performance)
Compatibility & Speed Analysis
Can Run Smoothly

Your setup (12 GB VRAM + 32 GB RAM) will load all 48 layers of Qwen 2.5 Coder 14B (Q4_K_M) into GPU VRAM. You will experience optimal autoregressive generation without bottlenecks.

Estimated Generation Speed
Full GPU execution on dedicated GDDR6/GDDR7 VRAM (~450 GB/s). Zero PCIe bus latency.
~38 tok/s
Autoregressive throughput
Advanced Quantization, Sequence Length & Custom Memory Controls▼
4.5 bpw (~9 GB)

Outstanding coding speed on RTX 4070 (12GB)

8k tokens (+0.67 GB KV)

KV-Cache memory scales linearly with prompt length and concurrent generation tokens.

High-bandwidth GDDR6/GDDR7 or Unified memory
12 GB
Main DDR4 / DDR5 system memory pool
32 GB
Layer Allocation: 48 GPU / 0 CPUTotal: 48 Transformer Layers
48 GPU
GPU VRAM: 10.5 GB / 12 GBRAM Needed: 3.5 GB / 32 GB
Model Weight: 9 GB

1-Click Ollama Run Command

Configured for your exact hardware
$ ollama run qwen2.5-coder:14b

3-Tier Audience Playbook

Actionable guidance tailored to your technical workflow

3 Experience Levels
Beginner Quickstart

Run 'caddy reverse-proxy --from example.com --to localhost:3000'. Caddy automatically generates trusted HTTPS certs and routes requests in seconds.

Intermediate Production

Write a declarative Caddyfile to handle multiple subdomains, static file serving, gzip/zstd compression, and security headers.

Advanced Scaling

Use Caddy's dynamic JSON API to reconfigure routing rules at runtime with zero downtime, compile custom Go modules using xcaddy, and enable on-demand TLS.

Sponsored GuideResponsive Ad Slot

What is Caddy?

Caddy is an open-source, enterprise-ready web server and reverse proxy written in Go. Its hallmark innovation is Automatic HTTPS: Caddy manages the complete certificate lifecycle (issuance, verification, renewal, OCSP stapling, and revocation checking) automatically via Let’s Encrypt and ZeroSSL without requiring external tools like Certbot or cron jobs.

It serves static files at blistering speeds, proxies dynamic applications over HTTP/1.1, HTTP/2, and HTTP/3, and features an expressive configuration format (Caddyfile) alongside a dynamic runtime REST API.

Core Architectural Strengths

  • Automatic TLS Management: Zero-maintenance HTTPS by default. Certificates are renewed automatically before expiry.
  • HTTP/3 (QUIC) Native: Out-of-the-box support for the fastest modern transport protocols with 0-RTT handshakes.
  • Human-Readable Caddyfile: Clean, intuitive syntax replacing hundreds of lines of cryptic Nginx directives.
  • Zero-Downtime Hot Reloads: Update routing rules via CLI (caddy reload) or direct JSON API without dropping a single active client connection.
  • Single Static Binary: Self-contained executable with zero dynamic dependencies, making deployment effortless.

Instant One-Liner Recipes

1. Reverse Proxy with Free HTTPS

caddy reverse-proxy --from api.yourdomain.com --to localhost:8000

2. High-Performance Static File Server with Browsing

caddy file-server --browse --listen :8080

Production Caddyfile Example

Create a file named Caddyfile in your project root:

# Global settings
{
    email [email protected]
}

# Production Reverse Proxy with Modern Security
api.yourdomain.com {
    # Automatic compression
    encode gzip zstd

    # Security headers
    header {
        Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
        X-Content-Type-Options "nosniff"
        X-Frame-Options "DENY"
        Referrer-Policy "strict-origin-when-cross-origin"
    }

    # Upstream backend proxy with health checks
    reverse_proxy localhost:8000 {
        header_up Host {host}
        header_up X-Real-IP {remote_host}
    }
}

Objective Alternatives & Tradeoffs Matrix

Head-to-head comparison without vendor bias or dismissal

Nginx• Automatic TLS & modern Caddyfile syntax vs legacy configuration with Certbot
Project Link↗
✓ Choose Caddy if:

You want zero-hassle HTTPS that never expires, HTTP/3 out-of-the-box, and human-readable configuration files.

⚖ Choose Nginx if:

You have decades of legacy Nginx Lua scripts, complex proprietary rewrites, or rigid organizational policies.

Traefik• Standalone server & reverse proxy vs Kubernetes-native container ingress controller
Project Link↗
✓ Choose Caddy if:

You want a lightweight, versatile server for single-node VMs, Docker Compose stacks, or static assets.

⚖ Choose Traefik if:

You are running large dynamic Kubernetes clusters where routing is defined exclusively through CRDs.

Common Production Pitfalls & Gotchas

Battle-tested solutions for frequent setup errors and bottlenecks

!

Certificate issuance fails with rate limit errors during initial setup testing

Tested Fix:Use the Let's Encrypt staging environment during development by adding 'acme_ca https://acme-staging-v02.api.letsencrypt.org/directory' in global options.
!

Permission denied when binding to privileged ports (80/443) on Linux non-root users

Tested Fix:Grant cap_net_bind_service capability: 'sudo setcap cap_net_bind_service=+ep $(which caddy)' or use the official systemd service.
!

WebSocket connections dropping through reverse proxy

Tested Fix:Caddy natively proxies WebSockets without additional config, but ensure upstream backend servers do not prematurely close idle TCP sockets.

Comments are powered by GitHub Discussions and will appear here once connected.