caddy
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/vercelplugin 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.mdfor templates - Add to Caddyfile (
~/.config/caddy/Caddyfile):
Also add aappname.YOUR_DOMAIN { import vercel_tls reverse_proxy localhost:31XX }<li>entry in the dashboard HTML block at the top. - Reload Caddy:
TLS cert provisioning takes 30–60 seconds (DNS-01 challenge).~/.local/bin/caddy reload --config ~/.config/caddy/Caddyfile --address localhost:2019 - If it connects to OpenClaw Gateway — see
OPENCLAW.mdin this folder for gateway-specific config.
Quick Dev Servers
Companion skill: dev-serve — one-command dev server + Caddy routing.
dev-serve up ~/projects/myapp # → https://myapp.YOUR_DOMAIN
dev-serve down myapp
dev-serve ls
Reload / Restart
# 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.
More from tychohq/agent-skills
system-watchdog
System resource monitoring that detects wasteful or suspicious processes. Outputs structured JSON for any consumer.
84flights
Search flights via Google Flights. Find nonstop/connecting flights, filter by time and cabin class, get booking links. Supports city names (NYC, London, Tokyo) with automatic multi-airport search. No API key required.
37amazon
Buy and return items on Amazon using browser automation. Use for purchasing, reordering, checking order history, and processing returns.
14architecture-research
Research the architecture of a codebase or system. Reads source code, finds external context, explains design decisions, and produces ELK diagrams. Use when asked to understand, explain, or diagram how a repo/system is built.
11tmux
Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
10domain-check
Check domain availability via Vercel and buy/manage domains via Vercel CLI
10