Add, manage, and troubleshoot Caddy reverse proxy routes for local apps via wildcard subdomains.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add dvcrn/openclaw-skills-marketplace --skill caddy --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Caddy?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/dvcrn-caddy)More formats (shields.io, HTML) on the badges page.
---
name: caddy
description: "Add, manage, and troubleshoot Caddy reverse proxy routes for local apps via wildcard subdomains."
---
# 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](https://github.com/caddy-dns)).
## Add a New App
1. **Create a background service** (LaunchAgent on macOS, systemd on Linux) — see `reference.md` for templates
2. **Add to Caddyfile** (`~/.config/caddy/Caddyfile`):
```caddy
appname.YOUR_DOMAIN {
import vercel_tls
reverse_proxy localhost:31XX
}
```
Also add a `<li>` entry in the dashboard HTML block at the top.
3. **Reload Caddy:**
```bash
~/.local/bin/caddy reload --config ~/.config/caddy/Caddyfile --address localhost:2019
```
TLS cert provisioning takes 30–60 seconds (DNS-01 challenge).
4. **If it connects to OpenClaw Gateway** — see `OPENCLAW.md` in this folder for gateway-specific config.
## Quick Dev Servers
Companion skill: [dev-serve](https://clawhub.com/skills/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`.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!