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

Цель

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

Если вы хотите «OpenClaw 24/7 за ~$5» — это самый простой и надёжный вариант. Цены Hetzner могут меняться; выбирайте минимальный VPS с Debian/Ubuntu и масштабируйтесь при OOM.

Модель безопасности:

  • Общие агенты компании допустимы, когда все пользователи в одной границе доверия, а среда выполнения только для рабочих задач.
  • Соблюдайте строгое разделение: выделенный VPS/runtime + выделённые аккаунты; без личных профилей Apple/Google/браузера/менеджера паролей на этом хосте.
  • Если пользователи не доверяют друг другу, разделяйте по шлюзам/хостам/пользователям ОС.

См. Безопасность и Хостинг VPS.

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

  • Арендуем небольшой Linux-сервер (Hetzner VPS)
  • Устанавливаем Docker (изолированная среда выполнения)
  • Запускаем OpenClaw Gateway в Docker
  • Сохраняем ~/.openclaw + ~/.openclaw/workspace на хосте (переживает перезапуски/пересборки)
  • Обращаемся к Control UI с ноутбука через SSH-туннель

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

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

В этом руководстве предполагается Ubuntu или Debian на Hetzner. Для другого Linux VPS адаптируйте пакеты. Общий Docker-процесс — см. Docker.


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

  1. Создайте VPS на Hetzner
  2. Установите Docker
  3. Клонируйте репозиторий OpenClaw
  4. Создайте постоянные директории на хосте
  5. Настройте .env и docker-compose.yml
  6. Встройте бинарники в образ
  7. docker compose up -d
  8. Проверьте сохранение данных и доступ к шлюзу

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

  • VPS Hetzner с root-доступом
  • SSH-доступ с ноутбука
  • Базовые навыки SSH + копирования/вставки
  • ~20 минут
  • Docker и Docker Compose
  • Учётные данные авторизации модели
  • Опциональные учётные данные провайдеров
    • WhatsApp QR
    • Токен Telegram-бота
    • Gmail OAuth

1) Создание VPS

Создайте VPS с Ubuntu или Debian на Hetzner.

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

ssh root@YOUR_VPS_IP

В этом руководстве VPS считается stateful. Не обращайтесь с ним как с одноразовой инфраструктурой.


2) Установка Docker (на VPS)

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

Проверка:

docker --version
docker compose version

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

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

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


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

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

mkdir -p /root/.openclaw/workspace

# Установить владельца на пользователя контейнера (uid 1000):
chown -R 1000:1000 /root/.openclaw

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

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

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

OPENCLAW_CONFIG_DIR=/root/.openclaw
OPENCLAW_WORKSPACE_DIR=/root/.openclaw/workspace

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

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

openssl rand -hex 32

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


6) Конфигурация 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 на VPS; доступ через 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}",
        "--allow-unconfigured",
      ]

--allow-unconfigured — только для удобства начальной настройки, это не замена полноценной конфигурации шлюза. Всё равно задайте авторизацию (gateway.auth.token или пароль) и используйте безопасные настройки привязки.


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

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


8) Доступ на Hetzner

После общих шагов сборки и запуска создайте туннель с ноутбука:

ssh -N -L 18789:127.0.0.1:18789 root@YOUR_VPS_IP

Откройте:

http://127.0.0.1:18789/

Вставьте токен шлюза.


Карта хранения данных — в Docker VM Runtime.

Infrastructure as Code (Terraform)

Для команд, предпочитающих подход infrastructure-as-code, существует поддерживаемая сообществом конфигурация Terraform:

  • Модульная конфигурация Terraform с удалённым управлением состоянием
  • Автоматическое создание ресурсов через cloud-init
  • Скрипты развёртывания (bootstrap, deploy, backup/restore)
  • Hardening безопасности (файрвол, UFW, доступ только по SSH)
  • Настройка SSH-туннеля для доступа к шлюзу

Репозитории:

Этот подход дополняет Docker-установку выше воспроизводимыми развёртываниями, версионированной инфраструктурой и автоматическим восстановлением.

Примечание: Поддерживается сообществом. По вопросам и предложениям обращайтесь в репозитории выше.