Cómo Desplegar un Agente de IA en VPS con Ubuntu: Guía Completa
Un VPS básico (menos de 5€/mes) puede ser tu servidor de IA personal en la nube. Tutorial paso a paso: elegir VPS, instalar el agente, configurar systemd, SSL y monitoreo básico.
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/mes**Gratis 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.
Preguntas Frecuentes
Artículos Relacionados
Cómo Montar un Agente de IA en Raspberry Pi: Tutorial Completo
Una Raspberry Pi de $35 puede convertirse en tu servidor de IA personal 24/7. Tutorial completo: hardware, instalación, configuración de LLM y casos de uso reales.
Los 5 Mejores Agentes de IA Open Source en 2026: Guía Comparativa
5 agentes de IA open source que puedes instalar hoy, comparados en lo que importa: RAM mínima, lenguaje, canales soportados, LLMs compatibles, y cuánto cuesta operarlos al mes. Sin rankings pagados.
🦞 El briefing semanal de IA open source
Cada lunes: un tutorial nuevo, las comparativas que importan y los trucos que solo compartimos por email. Ya somos +500 técnicos en la colonia.