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.
Быстрый путь (для опытных)
- Создайте проект GCP + включите API Compute Engine
- Создайте VM Compute Engine (e2-small, Debian 12, 20 ГБ)
- Подключитесь к VM по SSH
- Установите Docker
- Клонируйте репозиторий OpenClaw
- Создайте постоянные директории на хосте
- Настройте
.envиdocker-compose.yml - Встройте бинарники, соберите и запустите
Что вам потребуется
- Аккаунт 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:
- IAM & Admin > Create Project
- Задайте имя и создайте
- Включите биллинг для проекта
- APIs & Services > Enable APIs > найдите «Compute Engine API» > Enable
3) Создание VM
Типы машин:
| Тип | Характеристики | Стоимость | Примечания |
|---|---|---|---|
| e2-medium | 2 vCPU, 4 ГБ RAM | ~$25/мес | Наиболее надёжный для локальной сборки Docker |
| e2-small | 2 vCPU, 2 ГБ RAM | ~$12/мес | Минимум для сборки Docker |
| e2-micro | 2 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:
- Compute Engine > VM instances > Create instance
- Name:
openclaw-gateway - Region:
us-central1, Zone:us-central1-a - Machine type:
e2-small - Boot disk: Debian 12, 20 ГБ
- 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 с минимальными правами:
-
Создайте service account:
gcloud iam service-accounts create openclaw-deploy \ --display-name="OpenClaw Deployment" -
Назначьте роль 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.
Дальнейшие шаги
- Настройка каналов сообщений: Каналы
- Подключение локальных устройств как узлов: Nodes
- Конфигурация шлюза: Конфигурация шлюза