Skip to Content
🚀 Quick StartSetting Up a Reverse Proxy

Setting Up a Reverse Proxy

Right now your tools are running on ports like :3001 or :8080. A reverse proxy is the traffic cop that maps a domain like uptime.yourdomain.com to your server’s local port and handles SSL automatically.

Which one should I pick?

  • Caddy: Best for 99% of people. Zero-config SSL, human-readable config, extremely fast.
  • Nginx Proxy Manager: Best if you want a web UI to click and manage your domains.
  • Traefik: Best if you want a “hands-off” approach that auto-discovers new containers as you spin them up (complex but powerful).

Caddy Setup

Caddy is the “batteries included” proxy. It just works.

1. The Docker Compose

Create a folder for Caddy and add this docker-compose.yml:

version: '3.8' services: caddy: image: caddy:2-alpine restart: unless-stopped ports: - "80:80" - "443:443" - "443:443/udp" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - caddy_data:/data - caddy_config:/config volumes: caddy_data: caddy_config:

2. The Caddyfile

In the same folder, create a file named Caddyfile:

uptime.yourdomain.com { reverse_proxy localhost:3001 } plausible.yourdomain.com { reverse_proxy localhost:8000 }

3. Start it

docker compose up -d

🔒 A Note on SSL/TLS

Every proxy above handles SSL certificates via Let’s Encrypt automatically.

Crucial Step: Before you start your proxy, your domain’s DNS A Record must point to your server’s public IP address. If the DNS isn’t pointing correctly, Let’s Encrypt will fail to issue a certificate.

Next Steps

Your First Deployment — Connect your tools to your new proxy. → SSL/TLS Deep Dive — How it works under the hood.