Skip to main content

Instalação OpenClaw - base hosteg - ATUALIZADO E ESTAVEL

version: "3.8"

services:

--------------------------- OPENCLAW GATEWAY ---------------------------

clawdbot_gateway:
image: ramel/openclaw:latest

environment:
  - HOME=/root
  - TERM=xterm-256color
  - NODE_ENV=production

  # 🔐 TOKEN DO GATEWAY
  - CLAWDBOT_GATEWAY_TOKEN=123456   # sua rede aqui

  # 🔐 ZAI API KEY
  - ZAI_API_KEY=3e5f6065fb0b4ab199150c5af55c8743.231231321321313 # Sua Key aqui

  - CLAWDBOT_GATEWAY_MODE=local
  - CLAWDBOT_GATEWAY_PORT=18789

  - TZ=America/Sao_Paulo

volumes:
  - clawdbot_config:/root/.clawdbot
  - clawdbot_workspace:/root/clawd
  - /var/run/docker.sock:/var/run/docker.sock

dns:
  - 8.8.8.8
  - 8.8.4.4

networks:
  - ramelnet # Sua  rede aqui
ports:
  - "18789:18789"

user: root

command:
  - /bin/sh
  - -lc
  - |
    set -e

    mkdir -p /root/.clawdbot

    cat > /root/.clawdbot/clawdbot.json <<EOF
    {
      "gateway": {
        "mode": "local",
        "bind": "lan",
        "port": 18789,
        "trustedProxies": ["10.0.0.0/8", "172.16.0.0/12", "0.0.0.0/0"],
        "auth": { "mode": "token" },
        "controlUi": {
          "dangerouslyDisableDeviceAuth": true
        }
      },
      "agents": {
        "defaults": {
          "model": {
            "primary": "zai/glm-4.7"
          },
          "workspace": "/root/clawd"
        }
      }
    }
    EOF

    export HOME=/root
    node dist/index.js gateway run --port 18789 --force

deploy:
  mode: replicated
  replicas: 1

  placement:
    constraints:
      - node.role == manager

  resources:
    limits:
      cpus: "2"
      memory: 2048M

  labels:
    - traefik.enable=true
    - traefik.http.routers.clawdbot.rule=Host(`molt.site.com`)  # seu site aqui
    - traefik.http.routers.clawdbot.entrypoints=websecure
    - traefik.http.routers.clawdbot.tls.certresolver=letsencryptresolver
    - traefik.http.services.clawdbot.loadbalancer.server.port=18789

  restart_policy:
    condition: on-failure
    delay: 5s
    max_attempts: 3

healthcheck:
  test: ["CMD", "node", "dist/index.js", "health", "--json"]
  interval: 30s
  timeout: 10s
  retries: 3
  start_period: 60s

--------------------------- OPENCLAW CLI (OPCIONAL) ---------------------------

clawdbot_cli:
image: ramel/openclaw:latest

environment:
  - HOME=/root
  - TERM=xterm-256color
  - TZ=America/Sao_Paulo
  - ZAI_API_KEY=3e5f6065fb0b4ab199150c5af55c8743.h8745644161351    # sua key aqui

volumes:
  - clawdbot_config:/root/.clawdbot
  - clawdbot_workspace:/root/clawd

networks:
  - ramelnet

stdin_open: true
tty: true
entrypoint: ["node", "dist/index.js"]

deploy:
  mode: replicated
  replicas: 0

volumes:
clawdbot_config:
clawdbot_workspace:

networks:
ramelnet: # sua rede aqui
external: true
name: ramelnet # sua rede aqui

Impa 365

version: "3.8"

services:
  # --------------------------- CLAWDBOT GATEWAY ---------------------------
  clawdbot_gateway:
    image: node:22-bookworm
    user: root

    environment:
      HOME: /root
      TERM: xterm-256color
      NODE_ENV: production
      TZ: America/Sua_Regiao

      CLAWDBOT_GATEWAY_MODE: local
      CLAWDBOT_GATEWAY_BIND: 0.0.0.0
      CLAWDBOT_GATEWAY_PORT: 18789
      CLAWDBOT_GATEWAY_TOKEN: SEU_TOKEN_AQUI

      ZAI_API_KEY: SUA_APIKEY_AQUI

    volumes:
      - clawdbot_config:/root/.clawdbot
      - clawdbot_workspace:/root/clawd
      - clawdbot_source:/app
      - /var/run/docker.sock:/var/run/docker.sock

    networks:
      - SUA_REDE_AQUI

    ports:
      - "18789:18789"

    working_dir: /app

    command:
      - /bin/sh
      - -lc
      - |
        set -e

        echo "🔹 Atualizando ou clonando repositório..."
        if [ ! -d ".git" ]; then
          git clone https://github.com/openclaw/openclaw.git .
        else
          git pull
        fi

        echo "📦 Instalando dependências..."
        corepack enable
        corepack prepare pnpm@10.23.0 --activate
        pnpm set config ignore-scripts false
        pnpm install --frozen-lockfile=false

        echo "🏗️ Build do OpenClaw..."
        export NODE_OPTIONS="--max-old-space-size=4096"
        pnpm run build

        echo "📦 Construindo UI..."
        pnpm ui:build

        echo "⚙️ Criando configuração..."
        mkdir -p /root/.clawdbot
        cat > /root/.clawdbot/clawdbot.json << 'EOF'
        {
          "gateway": {
            "mode": "local",
            "bind": "lan",
            "trustedProxies": [
              "10.0.0.0/8",
              "172.16.0.0/12",
              "192.168.0.0/16"
            ],
            "auth": { "mode": "token" },
            "controlUi": {
              "dangerouslyDisableDeviceAuth": true
            }
          },
          "agents": {
            "defaults": {
              "model": { "primary": "SEU_MODELO_AQUI" },
              "workspace": "/root/clawd"
            }
          },
          "channels": {
            "telegram": {},
            "whatsapp": {}
          }
        }
        EOF

        echo "🚀 Iniciando Gateway..."
        export HOME=/root
        exec node dist/index.js gateway run --port 18789 --force

    deploy:
      replicas: 1
      restart_policy:
        condition: any

      labels:
        - traefik.enable=true
        - traefik.http.routers.clawdbot.rule=Host(`SEU_DOMINIO_AQUI`)
        - traefik.http.routers.clawdbot.entrypoints=websecure
        - traefik.http.routers.clawdbot.tls.certresolver=SEU_CERTRESOLVER_AQUI
        - traefik.http.services.clawdbot.loadbalancer.server.port=18789

    healthcheck:
      test: ["CMD", "node", "dist/index.js", "health", "--json"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 60s

  # --------------------------- CLAWDBOT CLI (opcional) ---------------------------
  clawdbot_cli:
    image: node:22-bookworm
    user: root

    environment:
      HOME: /root
      TERM: xterm-256color
      TZ: America/Sua_Regiao
      ZAI_API_KEY: SUA_APIKEY_AQUI

    volumes:
      - clawdbot_config:/root/.clawdbot
      - clawdbot_workspace:/root/clawd
      - clawdbot_source:/app
      - /var/run/docker.sock:/var/run/docker.sock

    networks:
      - SUA_REDE_AQUI

    working_dir: /app
    stdin_open: true
    tty: true

    command:
      - /bin/sh
      - -lc
      - |
        set -e

        echo "🔹 Atualizando ou clonando repositório..."
        if [ ! -d ".git" ]; then
          git clone https://github.com/openclaw/openclaw.git .
        else
          git pull
        fi

        echo "📦 Instalando dependências..."
        corepack enable
        corepack prepare pnpm@10.23.0 --activate
        pnpm install --frozen-lockfile=false

        echo "🏗️ Build do OpenClaw..."
        export NODE_OPTIONS="--max-old-space-size=4096"
        pnpm run build
        pnpm ui:build

        export HOME=/root
        exec node dist/index.js

    deploy:
      replicas: 0
      # para usar:
      # docker service scale clawdbot_clawdbot_cli=1

volumes:
  clawdbot_config:
  clawdbot_workspace:
  clawdbot_source:

networks:
  SUA_REDE_AQUI:
    external: true

Rafa Martins

top