Cómo Desplegar un Agente de IA en VPS con Ubuntu: Guía Completa
Tutoriales Intermedio

Cómo Desplegar un Agente de IA en VPS con Ubuntu: Guía Completa

· 13 min de lectura

Paso 1: Elegir VPS ($5-20/mes o 4,50-18€)

No todos los VPS son iguales. Para un agente de IA necesitas RAM suficiente (el cuello de botella principal) y buena conectividad (para APIs de LLM).

ProviderPlanRAMCPUPrecioNotas
HetznerCX224 GB2 vCPU4,50€/mes⭐ Mejor relación calidad/precio (Muy usado en España)
DigitalOceanBasic2 GB1 vCPU$6/mesFácil de usar, buena docs
VultrCloud2 GB1 vCPU$6/mesBuen peering global
Oracle CloudFree Tier24 GB4 vCPU ARM$0/mesGratis para siempre (ARM)
ContaboCloud S8 GB4 vCPU$7/mesMucha RAM por poco precio

Recomendación: Hetzner CX22 (aprox. 4,50€/mes) para la mayoría, excelente conectividad local europea. Oracle Free Tier si quieres $0/mes (requiere registro con tarjeta).

Paso 2: Instalar Ubuntu 24.04 LTS

La mayoría de providers te permiten seleccionar Ubuntu 24.04 LTS al crear el VPS. Si no:

# Primer acceso al VPS
ssh root@tu-ip-del-vps

# Actualizar sistema
apt update && apt upgrade -y

# Crear usuario no-root (buena práctica)
adduser agente
usermod -aG sudo agente

# Configurar SSH con clave (deshabilitar password)
su - agente
mkdir ~/.ssh
# Copia tu clave pública a ~/.ssh/authorized_keys

# Deshabilitar login con password
sudo nano /etc/ssh/sshd_config
# PasswordAuthentication no
sudo systemctl restart sshd

Firewall básico:

sudo ufw allow OpenSSH
sudo ufw allow 443/tcp  # Para SSL
sudo ufw allow 18789/tcp  # Puerto del Gateway OpenClaw
sudo ufw enable

Paso 3: Desplegar OpenClaw o ZeroClaw

Opción A: OpenClaw

# Instalar Node.js 22
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs

# Instalar OpenClaw
npm install -g openclaw@latest

# Configurar
openclaw onboard --install-daemon

# Verificar
openclaw doctor

Opción B: ZeroClaw (más seguro para producción)

# Instalar Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env

# Clonar y compilar ZeroClaw
git clone https://github.com/zeroclaw/zeroclaw.git
cd zeroclaw
cargo build --release

# Configurar
cp config.example.yaml config.yaml
nano config.yaml  # Editar con tu API key y canales

# Ejecutar
./target/release/zeroclaw --config config.yaml

Paso 4: Configurar systemd (auto-start)

Para que el agente arranque automáticamente al reiniciar el VPS:

# Crear archivo de servicio
sudo nano /etc/systemd/system/agente-ia.service
[Unit]
Description=Agente IA (OpenClaw)
After=network.target

[Service]
Type=simple
User=agente
WorkingDirectory=/home/agente
ExecStart=/usr/bin/openclaw start
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
# Habilitar e iniciar
sudo systemctl daemon-reload
sudo systemctl enable agente-ia
sudo systemctl start agente-ia

# Verificar estado
sudo systemctl status agente-ia

# Ver logs en tiempo real
sudo journalctl -u agente-ia -f

Ahora tu agente sobrevive a reinicios del servidor y se reinicia automáticamente si crashea.

Paso 5: SSL con Let's Encrypt (opcional)

Si expones el WebChat o un webhook, necesitas SSL:

# Instalar Certbot
sudo apt install -y certbot

# Obtener certificado (necesitas un dominio apuntando a tu VPS)
sudo certbot certonly --standalone -d agente.tudominio.com

# Auto-renovación (ya configurada por defecto)
sudo certbot renew --dry-run

Configura OpenClaw para usar el certificado:

server:
  ssl:
    cert: /etc/letsencrypt/live/agente.tudominio.com/fullchain.pem
    key: /etc/letsencrypt/live/agente.tudominio.com/privkey.pem

Si solo usas WhatsApp/Telegram: No necesitas SSL. Los mensajes van por la conexión del canal, no por tu servidor.

Paso 6: Monitoreo básico

No necesitas Prometheus + Grafana para un agente personal. Un monitoreo básico es suficiente:

# Script simple de monitoreo (/home/agente/monitor.sh)
#!/bin/bash
if ! systemctl is-active --quiet agente-ia; then
  echo "⚠️ Agente IA caído — reiniciando..." |     curl -s -X POST "https://api.telegram.org/botTU_TOKEN/sendMessage"     -d chat_id=TU_CHAT_ID -d text="⚠️ Agente IA caído — reiniciando"
  sudo systemctl restart agente-ia
fi
# Añadir al crontab (ejecutar cada 5 minutos)
crontab -e
*/5 * * * * /home/agente/monitor.sh

Métricas útiles de journalctl:

# Mensajes procesados hoy
journalctl -u agente-ia --since today | grep "message processed" | wc -l

# Errores en las últimas 24h
journalctl -u agente-ia --since "24 hours ago" -p err

# Uso de memoria actual
systemctl show agente-ia --property=MemoryCurrent

Con systemd + crontab + notificaciones por Telegram tienes un monitoreo funcional sin instalar nada extra.

Hermes

Hermes

🤖 Investigado por Hermes. Verificado por Ricardo Castro. [Sobre nosotros →](/nosotros/) Sobre nosotros →

Preguntas frecuentes

¿Puedo usar el VPS para otras cosas además del agente?

Sí. Un VPS de 4GB RAM puede correr el agente + un servidor web + una base de datos pequeña sin problemas. OpenClaw en idle usa ~200-400MB.

¿Oracle Free Tier realmente no caduca?

Correcto. Las VMs ARM Always Free de Oracle no tienen fecha de expiración. Pero Oracle puede reclamar instancias idle — mantén tu agente activo.

¿Necesito un dominio para usar el agente?

No, si solo usas canales de mensajería (WhatsApp, Telegram). Sí, si quieres WebChat público o webhooks con SSL.

¿Qué pasa si el VPS se reinicia?

Con systemd configurado, el agente arranca automáticamente. Con el script de monitoreo, recibes notificación si algo falla.

Artículos relacionados

¿Qué agente IA es para ti?

Responde 3 preguntas y descubre qué agente open source se adapta a tu hardware y objetivos.

¿Qué agente IA es para ti? Hacer test

Respetamos tu privacidad. No spam. Puedes darte de baja en cualquier momento. Consulta nuestra política de privacidad.