OpenClawSkills
GitHub
Plataformas • 5 min de lectura

Hetzner

Ejecutar OpenClaw Gateway 24/7 en un VPS Hetzner económico (Docker) con estado duradero y binarios integrados

Tutorial.step

Objetivo

Ejecutar un Gateway de OpenClaw persistente en un VPS de Hetzner usando Docker, con estado duradero, binarios integrados y comportamiento de reinicio seguro.

Si quieres "OpenClaw 24/7 por ~$5", esta es la configuración más simple y confiable.

Los precios de Hetzner cambian; elige el VPS Debian/Ubuntu más pequeño y escala si tienes OOMs.

Tutorial.step

Qué estamos haciendo (en términos simples)?

- Rentar un pequeño servidor Linux (VPS Hetzner)

- Instalar Docker (runtime de app aislado)

- Iniciar OpenClaw Gateway en Docker

- Persistir ''~/.openclaw'' + ''~/.openclaw/workspace'' en el host (sobrevive reinicios/rebuilds)

- Acceder a la UI de Control desde tu laptop via túnel SSH

El Gateway puede ser accedido via:

- Reenvío de puertos SSH desde tu laptop

- Exposición directa de puertos si gestionas firewalling y tokens tú mismo

Esta guía asume Ubuntu o Debian en Hetzner.

Si estás en otro VPS Linux, mapea los paquetes correspondientemente.

Para flujo Docker genérico, ver ''Docker''.

Tutorial.step

Qué necesitas

- VPS Hetzner con acceso root

- Acceso SSH desde tu laptop

- Comodidad básica con SSH + copiar/pegar

- ~20 minutos

- Docker y Docker Compose

- Credenciales de auth del modelo

- Credenciales de proveedor opcionales

- QR de WhatsApp

- Token de bot de Telegram

- OAuth de Gmail

Tutorial.step

2) Instalar Docker (en VPS)

Bash
apt-get update
apt-get install -y git curl ca-certificates
curl -fsSL https://get.docker.com | sh

Verificar:

Bash
docker --version
docker compose version
Tutorial.step

4) Crear directorios host persistentes

Los contenedores Docker son efímeros.

Todo el estado de larga duración debe vivir en el host.

Bash
mkdir -p /root/.openclaw
mkdir -p /root/.openclaw/workspace

chown -R 1000:1000 /root/.openclaw
chown -R 1000:1000 /root/.openclaw/workspace
Tutorial.step

6) Configuración de Docker Compose

Crear o actualizar ''docker-compose.yml''.

Yaml
services:
  openclaw-gateway:
    image: ${OPENCLAW_IMAGE}
    build: .
    restart: unless-stopped
    env_file:
      - .env
    environment:
      - HOME=/home/node
      - NODE_ENV=production
      - TERM=xterm-256color
      - OPENCLAW_GATEWAY_BIND=${OPENCLAW_GATEWAY_BIND}
      - OPENCLAW_GATEWAY_PORT=${OPENCLAW_GATEWAY_PORT}
      - OPENCLAW_GATEWAY_TOKEN=${OPENCLAW_GATEWAY_TOKEN}
      - GOG_KEYRING_PASSWORD=${GOG_KEYRING_PASSWORD}
      - XDG_CONFIG_HOME=${XDG_CONFIG_HOME}
      - PATH=/home/linuxbrew/.linuxbrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    volumes:
      - ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw
      - ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace
    ports:
      # Recomendado: mantener Gateway solo loopback en VPS; acceder via túnel SSH.
      # Para exponerlo públicamente, elimina el prefijo `127.0.0.1:` y configura firewall.
      - "127.0.0.1:${OPENCLAW_GATEWAY_PORT}:18789"

      # Opcional: solo si ejecutas nodos iOS/Android contra este VPS y necesitas host Canvas.
      # Si expones esto públicamente, lee /gateway/security y configura firewall.
      # - "18793:18793"
    command:
      [
        "node",
        "dist/index.js",
        "gateway",
        "--bind",
        "${OPENCLAW_GATEWAY_BIND}",
        "--port",
        "${OPENCLAW_GATEWAY_PORT}",
      ]
Tutorial.step

8) Build y lanzamiento

Bash
docker compose build
docker compose up -d openclaw-gateway

Verificar binarios:

Bash
docker compose exec openclaw-gateway which gog
docker compose exec openclaw-gateway which goplaces
docker compose exec openclaw-gateway which wacli

Salida esperada:

Terminal
/usr/local/bin/gog
/usr/local/bin/goplaces
/usr/local/bin/wacli
Tutorial.step

Qué persiste dónde (fuente de verdad)

OpenClaw se ejecuta en Docker, pero Docker no es la fuente de verdad.

Todo el estado de larga duración debe sobrevivir reinicios, rebuilds y reboots.

| Componente | Ubicación | Mecanismo de persistencia | Notas |

| Config del Gateway | ''/home/node/.openclaw/'' | Montaje de volumen host | Incluye ''openclaw.json'', tokens |

| Perfiles auth modelo| ''/home/node/.openclaw/'' | Montaje de volumen host | Tokens OAuth, API keys |

| Configs de skills | ''/home/node/.openclaw/skills/'' | Montaje de volumen host | Estado a nivel de skill |

| Workspace del agente| ''/home/node/.openclaw/workspace/'' | Montaje de volumen host | Código y artefactos del agente |

| Sesión de WhatsApp | ''/home/node/.openclaw/'' | Montaje de volumen host | Preserva login QR |

| Keyring de Gmail | ''/home/node/.openclaw/'' | Volumen host + contraseña| Requiere ''GOG_KEYRING_PASSWORD'' |

| Binarios externos | ''/usr/local/bin/'' | Imagen Docker | Deben integrarse al build |

| Runtime de Node | Sistema de archivos del contenedor| Imagen Docker | Rebuild cada build de imagen |

| Paquetes del OS | Sistema de archivos del contenedor| Imagen Docker | No instalar en runtime |

| Contenedor Docker | Efímero | Reiniciable | Seguro de destruir |