Cómo instalar OpenClaw en Docker de forma segura
Antes de empezar, conviene entender qué es OpenClaw y por qué resulta recomendable ejecutar la solución con Docker Compose:
Paso 1: visión general y decisión: ¿por qué OpenClaw en Docker?
- OpenClaw es un agente de IA autónomo capaz de ejecutar tareas de forma independiente, como procesar mensajes, analizar archivos o automatizar conversaciones de chat.
- Puede ejecutarse en tu propio servidor, es de código abierto y ofrece más de 50 integraciones, entre ellas WhatsApp, Telegram, Slack y Discord.
- La forma más estable y recomendada de instalación es mediante Docker Compose, ya que gestiona las dependencias de forma aislada y automatizada, lo que facilita futuras actualizaciones y ampliaciones.
OpenClaw utiliza Docker como entorno aislado. Con Docker Compose puedes iniciar varios contenedores simultáneamente, como el gateway, la CLI, el sandbox (si procede) y herramientas externas que, en conjunto, conforman el sistema completo.
OpenClaw actúa en muchas configuraciones principalmente como servicio de gateway y orquestación, conectando mensajería, herramientas y servicios con un modelo de lenguaje de gran tamaño (LLM). El nivel de autonomía con el que operará dependerá en gran medida de tu configuración individual, especialmente de las reglas de red y los permisos definidos. Por razones de seguridad y para una gestión realista de expectativas, conviene aplicar el principio de mínimo privilegio y conceder únicamente los accesos estrictamente necesarios para tus automatizaciones.
Paso 2: encontrar el servidor adecuado
OpenClaw no es un simple chatbot, sino una herramienta autónoma que se ejecuta en tu servidor e interactúa con aplicaciones, servicios de mensajería y herramientas externas. Puedes utilizarla, por ejemplo, para gestionar calendarios, administrar archivos, enviar notificaciones o incluso ejecutar flujos de trabajo completos orientados al desarrollo.
En la mayoría de los casos de uso se recomienda un VPS, ya que ofrece una base rentable y suficientemente potente para ejecutar OpenClaw en Docker. Resulta aún más práctico si el entorno VPS permite integrar herramientas de automatización como n8n, ya que facilita la conexión de OpenClaw con otros servicios. En general, cuanto más exigentes sean las tareas que delegues en el agente, más RAM y CPU deberías planificar. Docker Compose y los modelos de IA requieren memoria para imágenes, registros de contenedores y persistencia de datos. Los recursos necesarios dependen en gran medida de la carga de trabajo y, especialmente, de si utilizas un LLM en la nube o ejecutas los modelos de forma local.
La siguiente tabla ofrece una orientación aproximada según distintos escenarios de uso:
| Caso de uso | Funciones principales | Recursos VPS recomendados |
|---|---|---|
| Asistente digital para el dÃa a dÃa | Resúmenes de citas, gestión de mensajes y calendario | 4 vCores CPU, 4 GB RAM, 120 GB de almacenamiento |
| Automatización de flujos de trabajo y documentación | Creación de documentos, procesamiento de datos, carga de archivos | 6 vCores CPU, 8 GB RAM, 240 GB de almacenamiento |
| Productividad para desarrolladores y automatización remota | Tests, builds, análisis de logs y tareas de shell | 8 vCores CPU, 16 GB RAM, 480 GB de almacenamiento |
Convéncete por ti mismo y elige un servidor virtual.
Paso 3: instalar el sistema operativo y establecer una conexión segura
Antes de instalar OpenClaw en Docker con Docker Compose, necesitas preparar el sistema operativo de tu servidor. Para este tipo de configuración se recomienda una distribución Linux como Ubuntu Server. Instala en tu VPS una versión actual de Ubuntu y establece después una conexión segura con el servidor, por ejemplo mediante SSH (Secure Shell). Para mayor seguridad, utiliza claves SSH en lugar de autenticación por contraseña. Así reduces el riesgo de accesos no autorizados.
Este tutorial describe una configuración estándar adecuada para entornos de prueba y desarrollo. No expongas una instalación sin ajustes adicionales directamente a Internet. Para sistemas en producción deberías aplicar medidas de refuerzo como protección TLS/HTTPS mediante un reverse proxy, gestión centralizada de secretos, segmentación de red y reglas de firewall, monitorización con alertas y copias de seguridad periódicas de datos y configuraciones.
Paso 4: instalar Docker y Docker Compose
Una vez hayas establecido una conexión segura con el servidor y configurado el sistema operativo, puedes proceder a instalar Docker y Docker Compose.
En primer lugar, actualiza el sistema para asegurarte de que todos los paquetes estén al día:
sudo apt update && sudo apt upgrade -y
sudo apt install -y ca-certificates curl gnupg lsb-releasebashA continuación, añade la clave GPG de Docker y configura el repositorio oficial:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullbashActualiza de nuevo la lista de paquetes e instala la Docker Engine, la Docker CLI (interfaz de línea de comandos) y el servicio containerd:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.iobashEn el último paso, instala Docker Compose. En muchos sistemas actuales puedes utilizar el sistema de plugins:
sudo apt install -y docker-compose-pluginbashComo alternativa, puedes descargar manualmente los archivos de instalación:
mkdir -p ~/.docker/cli-plugins
curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 \
-o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-composebashPara comprobar que la instalación se ha realizado correctamente, ejecuta los siguientes comandos:
docker --version
docker compose versionbash
Paso 5: clonar el repositorio de OpenClaw
En este paso descargarás el código fuente de OpenClaw, que incluye también la configuración necesaria para Docker:
sudo apt install git -y
git clone https://github.com/openclaw/openclaw.git
cd openclawbashDespués encontrarás, entre otros archivos, el script docker-setup.sh y el archivo docker-compose.yml, que define los contenedores predeterminados del sistema. En este archivo de configuración YAML se especifican, entre otros, los siguientes elementos:
openclaw-gateway: servicio principal que inicia OpenClaw.env_file: indica al contenedor dónde se encuentran las variables de entorno.volumes: permite almacenar los datos de forma persistente en el host, en lugar de perderlos al reiniciar el contenedor.ports: expone el servicio en el puerto 18789 para que puedas acceder a él posteriormente desde el navegador.
Paso 6: crear variables de entorno e introducir claves API
Para que OpenClaw sepa qué proveedor de IA utilizar, cómo comunicarse con servicios externos y cómo autenticarse, debes definir varios parámetros clave en un archivo .env. Este archivo almacena datos sensibles como claves API y tokens, por lo que no debe hacerse público en ningún caso, por ejemplo en repositorios Git. Además, protege el archivo con permisos restrictivos mediante el comando chmod 600 .env.
Paso a paso: cómo crear el archivo .env
- Copia el archivo de ejemplo incluido en el repositorio con el siguiente comando:
cp .env.example .env - Abre el nuevo archivo para editarlo con
nano .env - Verás varias variables configurables. Las líneas más importantes que deberías adaptar son las siguientes (valores a modo de ejemplo):
LLM_PROVIDER=anthropic
ANTHROPIC_API_KEY=sk-ihrapikey123xyz
GATEWAY_TOKEN=my_secure_gateway_token_abc
MODEL_VERSION=claude-4-5-sonnet-20260101txtLLM_PROVIDERdefine qué proveedor de IA quieres utilizar. Anthropic suele ser una opción recomendada, aunque puedes elegir cualquier otro compatible.ANTHROPIC_API_KEYpermite a OpenClaw acceder al LLM en la nube mediante la clave correspondiente.GATEWAY_TOKENprotege el acceso al panel de control.MODEL_VERSIONespecifica la versión del modelo de IA que deseas emplear, por ejemplo Claude 4.5.
Ten en cuenta que los nombres de proveedores y versiones cambian con frecuencia. Utiliza siempre la documentación actual del proveedor correspondiente como referencia.
En entornos de producción, es preferible utilizar Docker Secrets o un gestor de contraseñas en lugar de almacenar claves en texto plano dentro de archivos.
Paso 7: ejecutar el script de configuración
Tras clonar el repositorio de OpenClaw, encontrarás el archivo docker-setup.sh. Se trata de un script de configuración que automatiza numerosas tareas que, de otro modo, tendrías que realizar manualmente. Forma parte del procedimiento oficial de instalación con Docker. Sin este script, tendrías que:
- crear manualmente las imágenes de Docker
- ajustar la configuración de Docker Compose
- definir las variables de entorno (si no lo hiciste en el paso 6)
- iniciar los contenedores
El script simplifica todo el proceso y garantiza que los contenedores se creen y configuren correctamente. Antes de ejecutarlo, puedes revisar su contenido con el siguiente comando:
less docker-setup.sh
Si todo es correcto, inícialo desde la terminal con:
./docker-setup.shbashDurante la ejecución se te solicitarán de forma interactiva distintos parámetros de configuración, como el modo gateway, el proveedor de IA o los tokens de acceso. Responde según tus necesidades para completar la instalación de OpenClaw en Docker.
Paso 8: iniciar Docker Compose
Una vez que los archivos de Docker Compose estén configurados, puedes iniciar todos los servicios. Con el siguiente comando se descargarán las imágenes necesarias, se iniciarán los contenedores correspondientes y se montarán automáticamente los volúmenes definidos:
docker compose up -dbashPara comprobar que todos los servicios se han iniciado correctamente y detectar posibles errores, activa el registro en tiempo real con:
docker compose logs -fbashLa supervisión de registros es especialmente importante en entornos de producción. Te permite controlar a largo plazo el consumo de recursos (CPU, RAM y almacenamiento) y detectar errores o comportamientos anómalos de forma temprana.
Paso 9: acceder a la interfaz web
Una vez que todos los servicios estén en funcionamiento, podrás acceder a la interfaz web de administración desde el navegador mediante la URL http://IHRE_SERVER_IP:18789. Sustituye IHRE_SERVER_IP por la dirección IP de tu servidor. Desde el panel de control de OpenClaw en Docker podrás, entre otras funciones:
- iniciar conversaciones de chat
- configurar tus agentes
- generar tokens de emparejamiento para clientes o dispositivos
Si el navegador muestra mensajes de error como “Unauthorized” (No autorizado) o “Pairing required” (Emparejamiento requerido), genera un nuevo token para el panel de control con el siguiente comando:
docker compose run --rm openclaw-cli dashboard --no-openbashA continuación, aprueba la solicitud pendiente con:
docker compose run --rm openclaw-cli devices list
docker compose run --rm openclaw-cli devices approve <requestID>bashSi un contenedor no se inicia, revisa los registros con docker compose logs -f para identificar el problema o comprueba el archivo .env en busca de claves faltantes o errores tipográficos.
Si el puerto no es accesible, es posible que debas ajustar la configuración del firewall o los grupos de seguridad del servidor.
Paso 10: asegurar la instancia de OpenClaw en Docker
OpenClaw en Docker puede ejecutar acciones profundas en el sistema. Si expones la instancia directamente a Internet sin protección adicional, aumentas significativamente el riesgo de accesos no autorizados. Por ello, aplica las siguientes medidas de seguridad:
- Protege el servidor con un firewall y permite únicamente las conexiones estrictamente necesarias.
- Abre el puerto de OpenClaw (por defecto, 18789) solo cuando sea imprescindible. Si necesitas acceso público, limita el acceso a direcciones IP de confianza y canalízalo a través de un proxy inverso con HTTPS o mediante una VPN.
- Ejecuta los contenedores, siempre que sea posible, sin privilegios de root. Utiliza sistemas de archivos en modo
read-only, elimina capacidades innecesarias y evita montajes del host superfluos. Limita también el acceso de red a los servicios realmente necesarios, como API de mensajería o proveedores de LLM. - Activa la autenticación basada en tokens. El
GATEWAY_TOKENconfigurado en el archivo.envprotege el acceso al panel de control. - Refuerza la seguridad del contenedor con flags como
--read-only,--cap-drop=ALLy--security-opt=no-new-privilegespara reducir la superficie de ataque. - Crea una red Docker aislada o define reglas específicas para que OpenClaw solo pueda comunicarse con los servicios externos imprescindibles, en lugar de tener acceso libre a Internet.
- Verifica que la configuración de seguridad de OpenClaw esté correctamente definida, incluyendo mecanismos de autenticación activos y reglas del gateway ajustadas para producción.
En sistemas Linux como Ubuntu puedes establecer una protección básica rápidamente con Uncomplicated Firewall (ufw):
sudo ufw allow 22/tcp
sudo ufw allow 18789/tcp
sudo ufw enablebashEl puerto TCP 22 habilita el acceso SSH seguro, mientras que el puerto 18789 corresponde al puerto estándar de OpenClaw en Docker, salvo que lo hayas modificado. Si no deseas abrir el puerto de forma global, puedes restringirlo a direcciones IP específicas.
Una configuración segura habitual consiste en utilizar un reverse proxy como NGINX, Traefik o Caddy, junto con un certificado TLS como el gratuito Let’s Encrypt. El tráfico se redirige internamente a localhost:18789. Además, se recomienda habilitar limitación de tasa de solicitudes (rate limiting) y mecanismos adicionales de autenticación como Basic Auth u OIDC.
Paso 11: configurar integraciones de mensajería
OpenClaw en Docker puede conectarse con distintas plataformas de mensajería, como Slack, WhatsApp o Telegram. De este modo, puedes controlar tu agente de IA directamente desde tu entorno de trabajo habitual. Por ejemplo, si integras OpenClaw con Slack, el agente actuará como un bot dentro del espacio de trabajo. Podrás enviarle instrucciones o preguntas en el chat del equipo y este responderá o ejecutará acciones en segundo plano.
La integración suele seguir estos pasos (pueden variar ligeramente según el servicio):
- Registrar el bot o la aplicación: crea un bot o una aplicación en la plataforma correspondiente (por ejemplo, Telegram, Slack o Discord) desde su portal para desarrolladores. Al finalizar, obtendrás uno o varios tokens o claves API para autenticar la conexión.
- Introducir los tokens en OpenClaw: añade las credenciales de acceso (por ejemplo,
TELEGRAM_BOT_TOKENoSLACK_BOT_TOKEN) en el archivo.envde OpenClaw o en la interfaz de configuración correspondiente. - Reiniciar OpenClaw en Docker: reinicia los servicios para aplicar la nueva configuración de integración.
- Autorizar la conexión: según el servicio, puede ser necesario completar un proceso de autorización inicial, como un emparejamiento, un flujo OAuth o la confirmación mediante un enlace o código.
- Realizar una prueba: envía un mensaje de prueba a través del bot para verificar que OpenClaw responde y ejecuta las acciones previstas.
Mantén los tokens de API en un entorno seguro y concede únicamente los permisos necesarios. Tras la configuración, verifica la conexión inmediatamente y completa todos los pasos de autorización (por ejemplo, emparejamiento u OAuth). Para las primeras pruebas, utiliza preferiblemente un canal o espacio de trabajo privado y revisa los registros en caso de error.
Paso 12: mantener OpenClaw en Docker actualizado
Para beneficiarte de las funciones más recientes, correcciones de errores y actualizaciones de seguridad, es fundamental mantener OpenClaw en Docker al día.
Primero, accede al directorio del proyecto:
cd ~/openclawbashA continuación, descarga la versión más reciente del repositorio y actualiza las imágenes de Docker:
git pull
docker compose pullbashPor último, reinicia la instancia para aplicar los cambios:
docker compose up -dbashPlanifica copias de seguridad periódicas de los volúmenes persistentes (configuración, tokens y datos relevantes). Así podrás restaurar rápidamente tu instalación en caso de incidencia.

