Skip to content

2. VPS y dominio

En esta sección configuramos el servidor donde se ejecutarán jaleo-api y OpenClaw. Necesitamos instalar Node.js, configurar el dominio y preparar el servidor.

Yo he usado DigitalOcean porque tengo créditos de estudiante de GitHub, pero como he dicho, recomiendo Piensa Solutions. Con Piensa Solutions se podría usar el plan de 1 vCPU, 1 GB RAM y 10 GB de disco y hacer un swap para tener 2 GB de RAM, pero es solo una recomendación para hacerlo más económico. Tienen otros planes si necesitas más.

Si usas Piensa Solutions, puedes conectarte por SSH:

Terminal window
ssh root@tu-ip-del-vps

Si acabas de crear el VPS, es buena idea actualizar el sistema:

Terminal window
apt update && apt upgrade -y

Instalamos Node.js 22 (la version LTS actual) usando nvm:

Terminal window
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
source ~/.bashrc
nvm install 22
node --version # v22.x.x
npm --version # 10.x.x

PM2 es un gestor de procesos para Node.js que mantiene tu aplicacion corriendo 24/7, se reinicia automáticamente si falla y muestra los logs:

Terminal window
npm install -g pm2

Lo usaremos más adelante para ejecutar jaleo-api en segundo plano.

Caddy es el reverse proxy que usaremos para obtener HTTPS automáticamente con Let’s Encrypt:

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

Verifica que se instalo:

Terminal window
caddy version

Asegurate de que tu dominio ya apunta a la IP del VPS. Puedes verificarlo con:

Terminal window
dig tudominio.com +short

debería devolver la IP de tu VPS.

Edita el archivo /etc/caddy/Caddyfile:

Terminal window
nano /etc/caddy/Caddyfile

Y pon este contenido (reemplaza tudominio.com con tu dominio real):

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}
}
}

Reinicia Caddy:

Terminal window
systemctl restart caddy

Caddy obtendra automáticamente un certificado SSL de Let’s Encrypt y configurara HTTPS. La primera vez puede tardar unos segundos.

Abre tu navegador y ve a https://tudominio.com. Deberías ver un error de conexión (porque jaleo-api aún no está corriendo), pero el certificado SSL debería ser válido. Si ves el candado en la barra de direcciones, HTTPS está funcionando.

Puedes verificar también con curl:

Terminal window
curl -I https://tudominio.com

Si ves HTTP/2 502 o similar, es correcto — significa que Caddy está funcionando pero no hay nada escuchando en el puerto 8888 todavia. Eso lo arreglaremos en el siguiente paso.

ComponenteEstado
Node.js 22Instalado
PM2Instalado
CaddyInstalado y configurado
DominioApuntando al VPS
HTTPSCertificado SSL activo

Siguiente: Instalar jaleo-api