Skip to content

4. Reverse proxy (Caddy)

Caddy es un reverse proxy moderno que gestiona los certificados SSL de Let’s Encrypt automaticamente. Esto es obligatorio porque:

  • Spotify OAuth requiere HTTPS en la redirect URI
  • OpenClaw necesita una URL publica con HTTPS para hacer webfetch
Terminal window
apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian/deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list
apt update
apt install caddy

Edita /etc/caddy/Caddyfile:

Terminal window
nano /etc/caddy/Caddyfile

Contenido (reemplaza tudominio.com con tu dominio):

tudominio.com {
reverse_proxy localhost:8888 {
header_up Host {host}
header_up X-Real-IP {remote_host}
header_up X-Forwarded-For {remote_host}
header_up X-Forwarded-Proto {scheme}
}
}

Esta configuracion:

  • Escucha en los puertos 80 y 443
  • Obtiene automaticamente un certificado SSL de Let’s Encrypt
  • Redirige todo el trafico HTTPS al puerto 8888 donde esta jaleo-api
  • Pasa las cabeceras originales para que la API sepa la IP real del cliente
Terminal window
systemctl restart caddy
Terminal window
systemctl status caddy
curl -I https://tudominio.com

Si Caddy no arranca, revisa los logs:

Terminal window
journalctl -u caddy --no-pager -n 50

Problemas comunes:

| Problema | Solucion | |----------|----------| | Port 80/443 already in use | Seguro que nginx o apache estan corriendo. Paramlos con systemctl stop nginx y systemctl disable nginx | | Certificate error | El dominio todavia no apunta a la IP del VPS. Espera a que el DNS se propague | | 502 Bad Gateway | jaleo-api no esta corriendo. Verifica con pm2 status |

Siguiente: Numero de WhatsApp