OpenClaw на GCP Compute Engine (Docker, production-руководство для VPS)

Цель

Запустить постоянный OpenClaw Gateway на VM GCP Compute Engine через Docker с надёжным хранением состояния, встроенными бинарниками и безопасным поведением при перезапуске.

Если вы хотите «OpenClaw 24/7 за ~$5-12/мес» — это надёжный вариант на Google Cloud. Цены зависят от типа машины и региона; выбирайте минимальную VM, подходящую для вашей нагрузки, и масштабируйтесь при OOM.

Что мы делаем (простым языком)?

  • Создаём проект GCP и включаем биллинг
  • Создаём VM на Compute Engine
  • Устанавливаем Docker (изолированная среда выполнения)
  • Запускаем OpenClaw Gateway в Docker
  • Сохраняем ~/.openclaw + ~/.openclaw/workspace на хосте (переживает перезапуски/пересборки)
  • Обращаемся к Control UI с ноутбука через SSH-туннель

Доступ к шлюзу возможен через:

  • SSH port forwarding с ноутбука
  • Прямое открытие порта, если вы сами управляете файрволом и токенами

В этом руководстве используется Debian на GCP Compute Engine. Ubuntu тоже подходит; адаптируйте пакеты. Общий Docker-процесс — см. Docker.


Быстрый путь (для опытных)

  1. Создайте проект GCP + включите API Compute Engine
  2. Создайте VM Compute Engine (e2-small, Debian 12, 20 ГБ)
  3. Подключитесь к VM по SSH
  4. Установите Docker
  5. Клонируйте репозиторий OpenClaw
  6. Создайте постоянные директории на хосте
  7. Настройте .env и docker-compose.yml
  8. Встройте бинарники, соберите и запустите

Что вам потребуется

  • Аккаунт GCP (бесплатный тариф доступен для e2-micro)
  • Установленный gcloud CLI (или используйте Cloud Console)
  • SSH-доступ с ноутбука
  • Базовые навыки SSH + копирования/вставки
  • ~20-30 минут
  • Docker и Docker Compose
  • Учётные данные авторизации модели
  • Опциональные учётные данные провайдеров
    • WhatsApp QR
    • Токен Telegram-бота
    • Gmail OAuth

1) Установка gcloud CLI (или используйте Console)

Вариант A: gcloud CLI (рекомендуется для автоматизации)

Установите с https://cloud.google.com/sdk/docs/install

Инициализация и аутентификация:

gcloud init
gcloud auth login

Вариант B: Cloud Console

Все шаги можно выполнить через веб-интерфейс https://console.cloud.google.com


2) Создание проекта GCP

CLI:

gcloud projects create my-openclaw-project --name="OpenClaw Gateway"
gcloud config set project my-openclaw-project

Включите биллинг на https://console.cloud.google.com/billing (обязательно для Compute Engine).

Включите API Compute Engine:

gcloud services enable compute.googleapis.com

Console:

  1. IAM & Admin > Create Project
  2. Задайте имя и создайте
  3. Включите биллинг для проекта
  4. APIs & Services > Enable APIs > найдите «Compute Engine API» > Enable

3) Создание VM

Типы машин:

ТипХарактеристикиСтоимостьПримечания
e2-medium2 vCPU, 4 ГБ RAM~$25/месНаиболее надёжный для локальной сборки Docker
e2-small2 vCPU, 2 ГБ RAM~$12/месМинимум для сборки Docker
e2-micro2 vCPU (общие), 1 ГБ RAMБесплатный тарифЧасто OOM при сборке Docker (exit 137)

CLI:

gcloud compute instances create openclaw-gateway \
  --zone=us-central1-a \
  --machine-type=e2-small \
  --boot-disk-size=20GB \
  --image-family=debian-12 \
  --image-project=debian-cloud

Console:

  1. Compute Engine > VM instances > Create instance
  2. Name: openclaw-gateway
  3. Region: us-central1, Zone: us-central1-a
  4. Machine type: e2-small
  5. Boot disk: Debian 12, 20 ГБ
  6. Create

4) Подключение к VM по SSH

CLI:

gcloud compute ssh openclaw-gateway --zone=us-central1-a

Console:

Нажмите кнопку «SSH» рядом с VM в панели Compute Engine.

Примечание: распространение SSH-ключей может занять 1-2 минуты после создания VM. Если соединение отклонено, подождите и попробуйте снова.


5) Установка Docker (на VM)

sudo apt-get update
sudo apt-get install -y git curl ca-certificates
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER

Выйдите и зайдите снова для применения изменения группы:

exit

Подключитесь снова:

gcloud compute ssh openclaw-gateway --zone=us-central1-a

Проверка:

docker --version
docker compose version

6) Клонирование репозитория OpenClaw

git clone https://github.com/openclaw/openclaw.git
cd openclaw

В этом руководстве предполагается сборка собственного образа для гарантии сохранения бинарников.


7) Создание постоянных директорий на хосте

Docker-контейнеры эфемерны. Всё долгоживущее состояние должно храниться на хосте.

mkdir -p ~/.openclaw
mkdir -p ~/.openclaw/workspace

8) Настройка переменных окружения

Создайте .env в корне репозитория.

OPENCLAW_IMAGE=openclaw:latest
OPENCLAW_GATEWAY_TOKEN=change-me-now
OPENCLAW_GATEWAY_BIND=lan
OPENCLAW_GATEWAY_PORT=18789

OPENCLAW_CONFIG_DIR=/home/$USER/.openclaw
OPENCLAW_WORKSPACE_DIR=/home/$USER/.openclaw/workspace

GOG_KEYRING_PASSWORD=change-me-now
XDG_CONFIG_HOME=/home/node/.openclaw

Сгенерируйте надёжные секреты:

openssl rand -hex 32

Не коммитьте этот файл.


9) Конфигурация Docker Compose

Создайте или обновите docker-compose.yml.

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:
      # Рекомендуется: шлюз только через loopback на VM; доступ через SSH-туннель.
      # Для публичного доступа уберите `127.0.0.1:` и настройте файрвол.
      - "127.0.0.1:${OPENCLAW_GATEWAY_PORT}:18789"
    command:
      [
        "node",
        "dist/index.js",
        "gateway",
        "--bind",
        "${OPENCLAW_GATEWAY_BIND}",
        "--port",
        "${OPENCLAW_GATEWAY_PORT}",
      ]

10) Общие шаги Docker VM runtime

Используйте общее руководство runtime для стандартного Docker-процесса:


11) Особенности запуска на GCP

На GCP, если сборка падает с Killed или exit code 137 во время pnpm install --frozen-lockfile, на VM не хватает памяти. Используйте минимум e2-small, а для надёжной первой сборки — e2-medium.

При привязке к LAN (OPENCLAW_GATEWAY_BIND=lan) настройте доверенный источник для браузера:

docker compose run --rm openclaw-cli config set gateway.controlUi.allowedOrigins '["http://127.0.0.1:18789"]' --strict-json

Если вы изменили порт шлюза, замените 18789 на ваш порт.

12) Доступ с ноутбука

Создайте SSH-туннель для проброса порта шлюза:

gcloud compute ssh openclaw-gateway --zone=us-central1-a -- -L 18789:127.0.0.1:18789

Откройте в браузере:

http://127.0.0.1:18789/

Получите свежую ссылку с токеном:

docker compose run --rm openclaw-cli dashboard --no-open

Вставьте токен из URL.

Если Control UI показывает unauthorized или disconnected (1008): pairing required, подтвердите браузерное устройство:

docker compose run --rm openclaw-cli devices list
docker compose run --rm openclaw-cli devices approve <requestId>

Нужна справка по хранению и обновлению? См. Docker VM Runtime и Обновление Docker VM Runtime.


Решение проблем

SSH connection refused

Распространение SSH-ключей может занять 1-2 минуты после создания VM. Подождите и попробуйте снова.

Проблемы с OS Login

Проверьте профиль OS Login:

gcloud compute os-login describe-profile

Убедитесь, что у аккаунта есть необходимые IAM-разрешения (Compute OS Login или Compute OS Admin Login).

Нехватка памяти (OOM)

Если сборка Docker падает с Killed и exit code 137, VM была убита из-за OOM. Перейдите минимум на e2-small (рекомендуется e2-medium для надёжных локальных сборок):

# Сначала остановите VM
gcloud compute instances stop openclaw-gateway --zone=us-central1-a

# Измените тип машины
gcloud compute instances set-machine-type openclaw-gateway \
  --zone=us-central1-a \
  --machine-type=e2-small

# Запустите VM
gcloud compute instances start openclaw-gateway --zone=us-central1-a

Service accounts (рекомендации по безопасности)

Для личного использования достаточно обычного пользовательского аккаунта.

Для автоматизации или CI/CD создайте выделенный service account с минимальными правами:

  1. Создайте service account:

    gcloud iam service-accounts create openclaw-deploy \
      --display-name="OpenClaw Deployment"
  2. Назначьте роль Compute Instance Admin (или более узкую custom role):

    gcloud projects add-iam-policy-binding my-openclaw-project \
      --member="serviceAccount:[email protected]" \
      --role="roles/compute.instanceAdmin.v1"

Не используйте роль Owner для автоматизации. Придерживайтесь принципа минимальных привилегий.

Подробности — https://cloud.google.com/iam/docs/understanding-roles.


Дальнейшие шаги