Anexo I: OpenClaw + Telegram (Abacombot) - De 0 a Avanzado
Asistente Sysadmin por chat con pairing, allowlists y sesiones aisladas
Anexo I: OpenClaw + Telegram (Abacombot) - De 0 a Avanzado
Introducción
Este anexo te guía para montar un asistente tipo Sysadmin por Telegram, usando OpenClaw (Gateway + canales + sesiones + skills) en Docker.
El bot de Telegram se llama por defecto Abacombot (configurable en BotFather). En este documento, Abacombot se refiere solo al bot de Telegram (no a un usuario Linux).
Enfoque de seguridad:
- DMs protegidos con pairing.
- Grupos con mention gating (
requireMention: true) por defecto. - Control de acceso por allowlists (DM y grupos).
Ubuntu Server LTS recomendado: 22.04 o 24.04.
Objetivos
- Clonar OpenClaw y levantar el Gateway en Docker.
- Conectar Telegram al Gateway con un token de BotFather.
- Aplicar postura minima de seguridad (pairing + mention gating + allowlists).
- Verificar salud, logs y troubleshooting basico.
Requisitos
En Telegram
- Una cuenta de Telegram.
- Token del bot creado con
@BotFather.
En el servidor (Ubuntu Server LTS)
- Acceso SSH.
- Docker Engine + Docker Compose v2.
- Espacio en disco para imágenes y logs.
Paso 1: Crear el bot en Telegram (BotFather)
- Abre Telegram y busca
@BotFather. - Ejecuta
/newboty define:- Nombre:
Abacombot(o el que prefieras) - Username: debe terminar en
bot(ej:abacom_sysadmin_bot)
- Nombre:
- BotFather te entregará un token tipo:
123456789:AA...REDACTED...xyz
No pegues el token en repositorios ni capturas publicas.
Lo que podría salir mal: - Un atacante toma control del bot. - Se filtran datos del servidor por chat.
Cómo prevenirlo: 1. Guarda el token como secreto (archivo root-only o secret manager). 2. Usa dmPolicy: "pairing". 3. Usa allowlists (DM y grupos) y mention gating en grupos.
Paso 2: Clonar OpenClaw
- 1
- git clone descarga el repo oficial de OpenClaw.
- 2
-
cd openclaw entra al directorio donde viven
docker-setup.shydocker-compose.yml.
Paso 3: Levantar OpenClaw en Docker (recomendado)
BASH
1$ ./docker-setup.sh- 1
-
docker-setup.sh construye la imagen, ejecuta onboarding y deja el gateway listo vía Docker Compose (además escribe
.env).
Nuevas opciones de docker-setup.sh (v2.0+):
El script ahora soporta flags adicionales: - --skip-onboard: Solo construye la imagen sin ejecutar el wizard - --production: Configura el gateway para producción (sin volúmenes de desarrollo) - --with-monitoring: Incluye contenedores de Prometheus y Grafana
Si necesitas levantar el gateway manualmente (sin el script), la ruta de referencia es:
BASH
- 1
- docker build crea una imagen local para el gateway.
- 2
- openclaw-cli onboard corre el wizard dentro del contenedor CLI.
- 3
- docker compose up -d openclaw-gateway inicia el gateway en segundo plano.
Paso 4: Conectar Telegram al Gateway (token)
BASH
1$ docker compose run --rm openclaw-cli channels add --channel telegram --token "<token>"- 1
- channels add (telegram) registra el bot token para que el gateway pueda hacer polling al Bot API.
Paso 5: Postura mínima de seguridad (recomendada)
Config mínima (conceptual) para Telegram:
JSON5
{
channels: {
telegram: {
enabled: true,
dmPolicy: "pairing",
groups: { "*": { requireMention: true } },
},
},
}
- 1
- dmPolicy + requireMention evita que DMs desconocidos o mensajes en grupos sin mencion activen el bot.
Nota importante sobre grupos:
- En OpenClaw,
channels.telegram.groupPolicypor defecto es “allowlist”. Si vas a usar grupos, definegroupAllowFrom(quiénes pueden escribir) o cambia explícitamente agroupPolicy: "open"si tu objetivo es permitir a cualquiera del grupo.
Paso 6: Verificación (salud + logs)
BASH
- 1
- health ejecuta el probe oficial del gateway usando el token.
- 2
- docker compose logs muestra logs recientes del gateway (errores de token, red, Bot API, etc.).
Paso 7: Pairing (primer DM)
Con dmPolicy: "pairing", el primer DM requiere aprobación.
BASH
- 1
- pairing list lista solicitudes pendientes para Telegram.
- 2
- pairing approve aprueba el código y habilita el DM.
Troubleshooting
El bot no responde
Checklist rápido:
- El gateway esta arriba:
docker compose ps - Hay token configurado y red a
api.telegram.org. - Si es DM: pairing pendiente.
- Si es grupo: requiere mención y (si aplica) allowlist de grupo/senders.
BASH
- 1
- docker compose ps confirma contenedores y estado.
- 2
- logs entrega el error real (token, DNS, 401/429, etc.).
- 3
- channels status muestra estado del canal Telegram y warnings de config.
Skills (Habilidades) de OpenClaw
Las Skills extienden las capacidades del bot permitiéndole ejecutar acciones específicas.
Instalar Skills
BASH
- 1
- skills list muestra skills disponibles en el registro
- 2
- skills install descarga e instala una skill específica
- 3
- skills enable activa la skill para el gateway
Skills recomendadas para Sysadmin
| Skill | Descripción | Comando de ejemplo |
|---|---|---|
| system-monitor | Monitorización básica del sistema | @bot status |
| docker-manager | Gestión de contenedores | @bot docker ps |
| log-viewer | Visualización de logs | @bot logs nginx |
| security-audit | Auditoría de seguridad básica | @bot audit ssh |
Crear una Skill personalizada
Estructura básica de una skill:
YAML
# skills/mi-skill.yaml
name: mi-skill
version: 1.0.0
description: Mi skill personalizada para administración
triggers:
- regex: "^status (\w+)$"
action: check_service
actions:
check_service:
command: "systemctl status {{group.1}} --no-pager"
response_template: "Estado de {{group.1}}: {{output}}"Gestión de Skills: - Usa skills oficiales del registro para funciones comunes - Crea skills personalizadas solo para casos específicos de tu infraestructura - Documenta las skills personalizadas en tu equipo