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? En DQS/ te asesoramos. ¿Por qué no nos preguntas cómo podemos 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.