✓ Verified 💻 Development ✓ Enhanced Data

Caddy Reverse Proxy

Add, manage, and troubleshoot Caddy reverse proxy routes for local apps via wildcard subdomains.

Rating
4 (161 reviews)
Downloads
6,128 downloads
Version
1.0.0

Overview

Add, manage, and troubleshoot Caddy reverse proxy routes for local apps via wildcard subdomains.

Complete Documentation

View Source →

Caddy — Wildcard Reverse Proxy for Local Apps

Routes *.YOUR_DOMAIN subdomains to local services over HTTPS via Caddy reverse proxy with automatic Let's Encrypt certificates. Designed for Tailscale-only access (no public exposure).

DNS provider: This skill uses Vercel DNS for DNS-01 ACME challenges. If you use a different DNS provider, swap the caddy-dns/vercel plugin and TLS snippet for your provider's equivalent (see caddy-dns).

Add a New App

  • Create a background service (LaunchAgent on macOS, systemd on Linux) — see reference.md for templates
  • Add to Caddyfile (~/.config/caddy/Caddyfile):
caddy
appname.YOUR_DOMAIN {
       import vercel_tls
       reverse_proxy localhost:31XX
   }
Also add a
  • entry in the dashboard HTML block at the top.
    • Reload Caddy:
    bash
    ~/.local/bin/caddy reload --config ~/.config/caddy/Caddyfile --address localhost:2019
    TLS cert provisioning takes 30–60 seconds (DNS-01 challenge).
    • If it connects to OpenClaw Gateway — see OPENCLAW.md in this folder for gateway-specific config.

    Quick Dev Servers

    Companion skill: dev-serve — one-command dev server + Caddy routing.

    bash
    dev-serve up ~/projects/myapp        # → https://myapp.YOUR_DOMAIN
    dev-serve down myapp
    dev-serve ls

    Reload / Restart

    bash
    # Reload config (no restart, no sudo)
    ~/.local/bin/caddy reload --config ~/.config/caddy/Caddyfile --address localhost:2019
    
    # Full restart
    # macOS:
    sudo launchctl unload /Library/LaunchDaemons/com.caddyserver.caddy.plist
    sudo launchctl load /Library/LaunchDaemons/com.caddyserver.caddy.plist
    # Linux:
    systemctl --user restart caddy

    Troubleshoot

    • Cert not issuing: tail -50 /var/log/caddy-error.log | grep -i error — likely expired Vercel API token
    • DNS not resolving: dig +short appname.YOUR_DOMAIN — should return your Tailscale IP
    • TLS error (curl exit 35): Cert hasn't provisioned yet, wait 30-60s
    For full reference (example apps, key files, build instructions): see reference.md. For OpenClaw gateway integration: see OPENCLAW.md.

  • Installation

    Terminal bash
    
    openclaw install caddy-reverse-proxy
        
    Copied!

    💻Code Examples

    example.txt
    appname.YOUR_DOMAIN {
           import vercel_tls
           reverse_proxy localhost:31XX
       }
    example.sh
    dev-serve up ~/projects/myapp        # → https://myapp.YOUR_DOMAIN
    dev-serve down myapp
    dev-serve ls
    example.sh
    # Reload config (no restart, no sudo)
    ~/.local/bin/caddy reload --config ~/.config/caddy/Caddyfile --address localhost:2019
    
    # Full restart
    # macOS:
    sudo launchctl unload /Library/LaunchDaemons/com.caddyserver.caddy.plist
    sudo launchctl load /Library/LaunchDaemons/com.caddyserver.caddy.plist
    # Linux:
    systemctl --user restart caddy

    Tags

    #web_and-frontend-development

    Quick Info

    Category Development
    Model Claude 3.5
    Complexity One-Click
    Author brennerspear
    Last Updated 3/10/2026
    🚀
    Optimized for
    Claude 3.5
    🧠

    Ready to Install?

    Get started with this skill in seconds

    openclaw install caddy-reverse-proxy