OpenClaw (Clawdbot) en un VPS en 5 minutos

OpenClaw (Clawdbot) en un VPS en 5 minutos

¿Te imaginas tener tu propio “ChatGPT personal” y que recuerda lo que habláis y además puedes escribirle por Telegram?

Eso es OpenClaw (hasta el 27 de enero de 2026: Clawdbot): un asistente AI autoalojado que corre en tu infraestructura y se integra con tus apps de mensajería.

En este post te llevo de cero a funcionando con un VPS de Hetzner (también lo puedes hacer en OVH; es cuestión de preferencias o dónde ya tengas alojamientos) y una configuración básica con Telegram + Anthropic (Claude).

Tiempo estimado: 15–20 min
Coste aproximado: ~€5/mes + suscripción de Claude
Nivel: principiante

Nota: OpenClaw requiere Node.js 22+

Contenidos mostrar

Qué vas a conseguir al final

  • Un servidor en Hetzner con Ubuntu.
  • OpenClaw instalado y corriendo en segundo plano como servicio/daemon.
  • Un bot de Telegram que te responde con tu asistente.
  • OpenClaw autenticado contra Claude vía API Key (formato sk-ant-...).

Paso 1: Crear tu servidor en Hetzner u OVH

Entra en Hetzner Cloud

Ve a hetzner.com/cloud, pulsa Get started y crea cuenta si no tienes.

OJO: Si creas una cuenta nueva Hetzner te va a pedir un primer pago de 20 EUR para verificar tu identidad y posiblemente que subas copia de tu DNI.

Crea un proyecto

En la consola, + New Project y llámalo openclaw (o similar).

Crea el servidor

Dentro del proyecto, botón grande + Create Server.

Elige ubicación y tipo

Recomendación para empezar con el menor coste:

  • Location: Alemania (por coste)
  • Image: Ubuntu 24.04
  • Type: Shared vCPU → CX33 (4 vCPU, 8GB RAM)
  • IPv4: ON

El plan CX33 aparece habitualmente alrededor de €5.49/mes + IVA con 4 vCPU y 8GB RAM en Alemania.

Precios de HETZNER a 25/enero/2026

El precio de OVH es algo inferior y funciona igual:

Precios de OVH a 25/enero/2026

Añade tu clave SSH

En tu Mac (o Linux), crea una clave si no tienes:

ssh-keygen -t ed25519 -C "tu@email.com"

Pulsa Enter para aceptar la ruta por defecto. Luego muestra la clave pública:

cat ~/.ssh/id_ed25519.pub

Copia el contenido y pégalo en el campo de SSH keys de Hetzner.

Crea el servidor y guarda la IP

Ponle nombre (por ejemplo openclaw), crea el servidor, espera a que arranque y copia su IPv4.

Paso 2: Conectar e instalar OpenClaw

Entra por SSH

ssh root@TU_IP_DEL_SERVIDOR

Si guardaste la clave en otra ruta:

ssh -i ~/ruta/a/tu_clave root@TU_IP_DEL_SERVIDOR

Actualiza el sistema

apt update && apt upgrade -y

Instala Node.js 22

Una forma común es usar NodeSource (tal como en tu borrador):

curl -fsSL https://deb.nodesource.com/setup_22.x | bash -

apt install -y nodejs

Comprueba:

node -v

Deberías ver v22.x.x.

Alternativa: usar el instalador de OpenClaw “quick install”, que detecta requisitos (incluye Node 22+ en Linux) y ejecuta onboarding. [docs.openclaw.ai],

Instala OpenClaw

npm install -g openclaw@latest

Ejecuta el asistente de configuración (onboarding)

openclaw onboard --install-daemon

Este comando está indicado como “siguiente paso” cuando instalas OpenClaw y te deja el proceso corriendo en segundo plano.

Paso 3: Configurar Telegram y Whatsapp

Crea un bot en Telegram

  1. Abre Telegram y busca @BotFather
  2. Teclea /newbot
  3. Ponle:
    • Nombre (ej. “My Assistant”)
    • Usuario (ej. tuusuario_openclaw)
  4. Copia el bot token que te entrega BotFather

Obtén tu Telegram user ID

Busca @userinfobot, envíale cualquier mensaje y copia tu ID numérico.

Introduce credenciales en el configurador

Cuando OpenClaw lo pida en el onboarding:

  • Pega el bot token
  • Configura allowFrom con tu user ID (para que solo tú puedas hablar con el bot)

Recomendación: mantener allowFrom bien cerrado es una buena práctica de seguridad.

WhatsApp

  1. Ejecuta:
openclaw login
  1. Cuando el wizard lo pida, verás un QR en tu terminal
  2. En el móvil: WhatsApp > Settings > Linked Devices > Link a Device
  3. Escanea el QR
  4. Conectado: lo que te envíes a ti (o lo que recibas, según ajustes) pasa por tu IA

Seguridad (Pairing / Emparejamiento)

Por defecto, OpenClaw no responde a cualquiera. Usa un sistema de pairing para verificar quién puede hablar con el bot.

Cuando alguien nuevo escribe, recibe un código de emparejamiento. Tú debes aprobarlo.

Ver solicitudes pendientes:

openclaw pairing list whatsapp

Aprobar a alguien:

openclaw pairing approve whatsapp ABC123

Ver aprobados:

openclaw pairing show whatsapp

Esto evita que desconocidos usen tu IA (y consuman tus créditos/tokens).

Paso 4: Añade tu clave de Anthropic (Claude)

Crea tu API Key de Anthropic

Entra en el panel de Anthropic (Console) y genera una API key. Normalmente empiezan por sk-ant-....

Configúrala en el wizard

Cuando el asistente de OpenClaw pregunte por autenticación de Anthropic, elige API Key y pégala.

Paso 5: Probar

Completa el configurador

Contesta las preguntas restantes (en general, aceptar suele ser suficiente).

Verifica que funciona

openclaw status

Pruébalo

Abre Telegram, busca tu bot y envíale un “Hello”. Si todo está OK, te responderá 🎉

Paso 6: Configura la memoria del bot

Tu bot, al principio, no sabe nada de ti: preferencias, horarios, estilo… nada. La buena noticia: puede aprender.

OpenClaw guarda memorias en archivos de texto simples:

  • MEMORY.md → hechos a largo plazo (“prefiere reuniones entre 9 y 14”)
  • memory/2026-01-24.md → contexto y notas del día

Todo vive dentro de tu workspace (por defecto ~/openclaw).

Cómo “entrenarlo”

  • Díselo explícitamente: “Recuerda que prefiero reuniones de 9 a 14”
  • O edita el archivo directamente: ~/openclaw/MEMORY.md

Ejemplo:

# Sobre mí
- Prefiero reuniones entre 9:00 y 14:00
- Me gusta que la tecnología “simplemente funcione”
- Prefiero listas con viñetas frente a párrafos largos

Paso 7: Añade Skills (superpoderes)

Las skills convierten tu bot de “chat” a “automatización real”.

Ver skills disponibles:

openclaw skills list

Ejemplos típicos:

  • Web Search (búsqueda en Internet)
  • GitHub (repos, issues, PRs)
  • Gmail (leer/enviar emails)
  • Discord/Slack (publicar en canales)
  • Weather (previsión)
  • Calendar (agenda)

Para activar una skill, edita ~/.openclaw/openclaw.json:


{
  "skills": {
    "entries": {
      "web-search": { "enabled": true },
      "github": {
        "enabled": true,
        "env": { "GITHUB_TOKEN": "your_token_here" }
      }
    }
  }
}

Algunas skills necesitan API keys (como GitHub). Revisa la documentación de cada una.

Paso 8: El secreto de la memoria (búsqueda semántica)

Los modelos tienen “ventana de contexto”: no pueden tener todo en mente para siempre. Con el tiempo, detalles antiguos se pierden del contexto de conversación.

La solución es la búsqueda semántica: en lugar de buscar por palabras exactas (“meeting”), entiende la intención. Por ejemplo: “¿Cuándo me gusta tener reuniones?” y encuentra el dato aunque no uses el término exacto.

Para habilitarla necesitas un proveedor de embeddings (OpenAI suele ser barato y eficaz). Ejemplo de configuración:


{
  "agents": {
    "defaults": {
      "memorySearch": {
        "provider": "openai",
        "model": "text-embedding-3-small",
        "remote": {
          "apiKey": "your_openai_key"
        }
      }
    }
  }
}

Cuando esto está activo, tu bot puede “recordar” semanas de historial con precisión, porque busca significado, no keywords.

Paso 9: Securiza tu instalación de OpenClaw

Resultados después de aplicar esta configuración:

  • ✅ Sin SSH público
  • ✅ Sin puertos web públicos
  • ✅ Acceso al servidor únicamente vía Tailscale
  • ✅ El bot responde solo al propietario
  • ✅ Servidor de IA privado y listo para jugar

Requisitos previos

  • Una cuenta en Tailscale (gratuita para uso personal).

Consejo: mantén dos sesiones abiertas al VPS mientras sigues la guía. Si algo se corta, la sesión secundaria te puede salvar.

Cierra SSH a cal y canto

Objetivo: solo claves, sin contraseñas ni root directo.

Edita la configuración de SSH:

sudo nano /etc/ssh/sshd_config

Asegúrate de establecer explícitamente:

PasswordAuthentication no

PermitRootLogin no

Valida y recarga:

sudo sshd -t && sudo systemctl reload ssh

Opcional recomendado: limitar usuarios permitidos: Añade AllowUsers tu_usuario para restringir aún más el acceso.


Firewall “denegar por defecto”

Objetivo: bloquear todo el tráfico entrante salvo lo que permitas explícitamente.

sudo apt update

sudo apt install ufw -y

🔒 Evita el autobloqueo: permite SSH antes de activar UFW.

sudo ufw allow OpenSSH

Configura política por defecto y activa:

sudo ufw default deny incoming

sudo ufw default allow outgoing

sudo ufw enable

Protección anti fuerza bruta

Objetivo: banear IPs tras varios intentos fallidos.

sudo apt install fail2ban -y

sudo systemctl enable --now fail2ban

Extra: puedes ajustar /etc/fail2ban/jail.local para sshd con maxretry, bantime, etc.

Instala Tailscale

Objetivo: crear tu VPN privada.

curl -fsSL https://tailscale.com/install.sh | sh

sudo tailscale up

Verifica:

tailscale status

Toma nota de tu IP privada de Tailscale (rango 100.64.0.0/10).

SSH solo por Tailscale

Objetivo: dejar de exponer SSH al público.

Permite SSH únicamente desde la red de Tailscale y retira la regla genérica:

# Verifica antes que Tailscale funciona

tailscale status

# Abre SSH solo para Tailscale

sudo ufw allow from 100.64.0.0/10 to any port 22 proto tcp

# Retira la regla de SSH público

sudo ufw delete allow OpenSSH

Haz privados los puertos web

Objetivo: que tu app sea accesible solo desde tus dispositivos unidos a Tailscale.

sudo ufw allow from 100.64.0.0/10 to any port 443 proto tcp

sudo ufw allow from 100.64.0.0/10 to any port 80 proto tcp

Nota: si usas un reverse proxy (Nginx/Caddy/Traefik), esta regla mantiene HTTP/HTTPS privado en tu red.

Desactiva IPv6

Objetivo: reducir superficie de ataque si no usas IPv6.

sudo sed -i 's/IPV6=yes/IPV6=no/' /etc/default/ufw

echo "net.ipv6.conf.all.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf

sudo sysctl -p && sudo ufw reload

Solo si tienes claro que no necesitas IPv6. Si usas servicios que dependan de IPv6, omite este paso.

Restringe el bot al propietario

Objetivo: que solo tú puedas escribirle.

Configura la política (por ejemplo en ~/.openclaw/config.json):

{

"dmPolicy": "allowlist",

"allowFrom": ["YOUR_TELEGRAM_ID"],

"groupPolicy": "allowlist"

}

Sustituye YOUR_TELEGRAM_ID por tu ID real de Telegram.

Si quieres controlar la langosta desde Whastapp añade solo los números de teléfono que pueden hablar con el asistente:

{
  "channels": {
    "whatsapp": {
      "dmPolicy": "allowlist",
      "allowFrom": ["+34XXXXXXXXX"]
    }
  }
}

Arregla permisos de credenciales

Objetivo: que nadie pueda leer tus secretos.

chmod 700 ~/.openclaw/credentials

chmod 600 .env

Ajusta las rutas si tu .env está en otro directorio del proyecto.

Auditoría de seguridad del bot

Objetivo: detectar fallos que se te hayan pasado.

openclaw security audit --deep

Verificaciones rápidas

Comprueba que todo está en su sitio:

# Reglas del firewall

sudo ufw status

# Puertos en escucha

ss -tulnp

# Estado de la redVPN

tailscale status

# Salud del bot

openclaw doctor

Deberías ver:

  • SSH escuchando solo en la interfaz de Tailscale.
  • 80/443 accesibles únicamente desde la red 100.64.0.0/10.
  • OpenClaw operativo y con políticas de DM/grupos en allowlist.

Checklist final

  • No hay SSH público.
  • No hay puertos web públicos.
  • ✅ El servidor solo es alcanzable a través de Tailscale.
  • ✅ El bot responde solo a tu usuario.
  • ✅ Tienes un servidor de IA privado en ~30 minutos.

Ahora sí: puedes empezar a jugar. Antes, no. 😉

Buenas prácticas opcionales pero recomendadas

  • MFA en Tailscale y revocar dispositivos que ya no uses.
  • Actualizaciones automáticas en Ubuntu (unattended-upgrades).
  • Logs centralizados y alertas (por ejemplo, con journalbeat/vector).
  • Cambio de puerto SSH (no es seguridad real, pero reduce ruido de escaneos).

Paso 10: Backups

Tu bot no solo “sabe cosas”: acumula conocimiento útil con el tiempo. Y eso —tu configuración, tus memorias y tu historial— es un activo. Como cualquier activo, si no lo respaldas, tarde o temprano lo perderás: un error humano, una actualización desafortunada, un disco lleno, un borrado accidental… y adiós a semanas (o meses) de contexto.

En este paso vamos a dejar tu sistema preparado para que, pase lo que pase, puedas restaurar tu bot y seguir trabajando como si nada.

Qué deberías respaldar (lo importante de verdad)

Piensa en tu bot como en un “cerebro” con varias capas. Estas rutas cubren lo esencial:

  • ~/.openclaw/openclaw.jsonTu configuración (ajustes, endpoints, preferencias).
  • ~/.openclaw/MEMORY.mdMemorias a largo plazo (lo que quieres que el bot “recuerde”).
  • ~/.openclaw/memory/Logs diarios de conversación (útiles para auditoría y aprendizaje).
  • ~/.openclaw/agents/main/sessions/Historial completo (sesiones, contexto y trazabilidad).

Regla práctica: si te dolería perderlo, va al backup.

Método simple y efectivo: Git en un repo privado

Si tu objetivo es “tener una copia segura y versionada”, Git es perfecto: te permite volver atrás, comparar cambios y mantener trazabilidad.

Ejemplo rápido

cd ~/.openclaw 

git init

git add openclaw.json

git commit -m "Backup config"

git remote add origin your-private-repo-url

git push

Recomendación clave: que sea un repositorio privado. Tu configuración puede incluir detalles sensibles (rutas, tokens, endpoints, etc.). (Consejo editorial: si hay secretos, considera excluirlos o cifrarlos; ver “Buenas prácticas” más abajo.)

📌 Sobre el flujo git initgit remote addgit push, puedes ver una explicación de referencia en la guía de GitHub y la documentación oficial de Git. (GitHub Git Guides – git init, git-scm: git-init)

Backups automatizados: cron + rsync

Si lo que quieres es “copiar todo lo importante cada día” (carpetas incluidas), automatizar con cron y rsync es una solución sólida y ligera.

Ejemplo: copia diaria a las 03:00

0 3 * * * rsync -av ~/.openclaw/ ~/backups/openclaw/

Por qué rsync funciona bien aquí: sincroniza diferencias de forma eficiente y el modo archivo (-a) preserva metadatos (permisos, timestamps, etc.). En muchas guías se recomienda también loguear la salida y, si quieres espejo exacto, usar --delete con cuidado (porque puede borrar en destino lo que hayas borrado en origen).

Consejo práctico (opcional): añade logging para detectar fallos sin abrir la terminal:

0 3 * * * rsync -av ~/.openclaw/ ~/backups/openclaw/ >> ~/backups/openclaw/backup.log 2>&1

Restauración: vuelve a estar operativo en minutos

La restauración depende de si usaste Git, rsync o ambos:

  • Si usaste Git (config): recuperas openclaw.json desde tu repo y lo vuelves a colocar en ~/.openclaw/.
  • Si usaste rsync (carpetas): copias de vuelta desde ~/backups/openclaw/ hacia ~/.openclaw/ (y lo mismo con ~/openclaw/ si lo estás respaldando).

Comandos útiles

Gestión del servidor

  • openclaw status # estado general
  • openclaw logs --follow # logs en vivo
  • openclaw gateway restart # reiniciar
  • openclaw health # checks de salud

Comandos de chat (en Telegram)

  • /new → conversación nueva
  • /model → cambiar modelo
  • /compact → compactar conversaciones largas
  • stop → cancelar una tarea en curso

Solución de problemas

“El bot no responde”

  1. Mira estado:
openclaw status --all
  1. Revisa logs:
openclaw logs --follow

“Quiero rehacer la configuración”

openclaw reset

openclaw onboard --install-daemon

“SSH me pide password”

Tu clave SSH no se está usando. Fuerza la clave:

ssh -i /ruta/a/tu_key root@TU_IP_DEL_SERVIDOR

Qué hacer después

  • Personaliza la “personalidad” del bot en ~/openclaw/SOUL.md
  • Añade información útil sobre ti y tu contexto en ~/openclaw/USER.md

¿Quieres saber más sobre las soluciones de inteligencia artificial generativa de Microsoft? Yo te asesoro. ¿Por qué no me preguntas cómo puedo ayudarte?

Información basada en la publicación OpenClaw Installer, la documentación de openclaw.ai y el uso de GitHub para hacer backups (GitHub Git Guides – git init).

Resume o comparte este contenido a través de:

Publicaciones Similares

¿Te ha parecido interesante? ¿Tienes dudas sobre el contenido?
Para cualquier pregunta ponte en contacto conmigo.