Instalar OpenClaw usando docker compose

Tiempo de lectura: 2 minutos

Hoy vamos a aprender a instalar OpenClaw en un sistema Docker mediante Docker Compose y dejarlo de forma aislada.

Open Claw - Pexels

Primero instalamos Docker.

Una vez instalado debemos actualizar el docker compose:

# Añadir repositorio oficial de Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Actualizar e instalar
sudo apt update
sudo apt install docker-compose-plugin

Una vez instalado, vamos a crear nuestro docker compose:

services:
  openclaw-gateway:
    image: ghcr.io/openclaw/openclaw:latest
    container_name: openclaw-gateway
    restart: unless-stopped
    ports:
      - "127.0.0.1:18789:18789"
    environment:
      - OPENCLAW_GATEWAY_TOKEN=${OPENCLAW_GATEWAY_TOKEN}
    volumes:
      - ./config/openclaw/config:/home/node/.openclaw
      - ./config/openclaw/workspace:/home/node/.openclaw/workspace
    healthcheck:
      test: ["CMD", "curl", "-fsS", "http://127.0.0.1:18789/healthz"]
      interval: 30s
      timeout: 10s
      retries: 3

  openclaw-cli:
    image: ghcr.io/openclaw/openclaw:latest
    container_name: openclaw-cli
    network_mode: "service:openclaw-gateway"
    entrypoint: ["node", "dist/index.js"]
    volumes:
      - ./config/openclaw/config:/home/node/.openclaw
    profiles:
      - cli
    cap_drop:
      - NET_RAW
      - NET_ADMIN
    security_opt:
      - no-new-privileges:true

Y ahora creamos nuestro .env

OPENCLAW_GATEWAY_TOKEN=

Añadimos un token aleatorio, por ejemplo con este comando puedes generar uno:

openssl rand -hex 32

Si se sube a git, creamos este .gitignore

.env
config

Onboarding inicial (solo la primera vez)

docker compose run --rm --no-deps --entrypoint node openclaw-gateway \
  dist/index.js onboard --mode local --no-install-daemon

docker compose run --rm --no-deps --entrypoint node openclaw-gateway \
  dist/index.js config set gateway.bind lan

Arrancamos el gateway

docker compose up -d

Para abrir la interfaz:

http://127.0.0.1:18789

E introducir el token que se ha indicado en el .env

Algunos comandos útiles:

# Ver logs en tiempo real
docker compose logs -f openclaw-gateway

# Parar la gateway
docker compose down

# Reiniciar
docker compose restart openclaw-gateway

# Comprobar estado de salud
curl -fsS http://127.0.0.1:18789/healthz

# Usar el CLI
docker compose run --rm openclaw-cli dashboard --no-open
docker compose run --rm openclaw-cli channels login

Añadir canales de mensajería

# WhatsApp (escanea QR)
docker compose run --rm openclaw-cli channels login

# Telegram
docker compose run --rm openclaw-cli channels add --channel telegram --token "<token>"

# Discord
docker compose run --rm openclaw-cli channels add --channel discord --token "<token>"

Actualizar a última versión.

docker compose pull
docker compose up -d

Referencias:

– Documentación oficial de OpenClaw (https://docs.openclaw.ai)

– Instalación con Docker (https://docs.openclaw.ai/es/install/docker)

– GitHub de OpenClaw (https://github.com/openclaw/openclaw)

Deja un comentario