Hosting

Hetzner

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

Цены Hetzner меняются; выберите самый компактный VPS с Debian/Ubuntu, отвечающий требованиям, и увеличьте его ресурсы, если возникнут ошибки нехватки памяти.

Доступ к Gateway можно получить с ноутбука через перенаправление портов SSH или напрямую открыть порт, если вы самостоятельно управляете межсетевым экраном и токенами.

Напоминание о модели безопасности:

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

См. разделы Безопасность и Размещение на VPS.

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

Что потребуется

  • VPS Hetzner с доступом root
  • Доступ по SSH с ноутбука
  • Docker и Docker Compose
  • Учётные данные для аутентификации в модели
  • Необязательные учётные данные провайдеров (QR-код WhatsApp, токен бота Telegram, OAuth Gmail)
  • Около 20 минут

Краткий порядок действий

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

    Создайте VPS с Ubuntu или Debian в Hetzner, затем подключитесь от имени root:

    bash
    ssh root@YOUR_VPS_IP

    Рассматривайте VPS как инфраструктуру с сохраняемым состоянием, а не как одноразовую.

  • Установите Docker (на VPS)

    bash
    apt-get updateapt-get install -y git curl ca-certificatescurl -fsSL https://get.docker.com | sh

    Проверьте установку:

    bash
    docker --versiondocker compose version
  • Клонируйте репозиторий OpenClaw

    bash
    git clone https://github.com/openclaw/openclaw.gitcd openclaw

    В этом руководстве создаётся пользовательский образ, поэтому все встроенные в него бинарные файлы сохраняются после перезапусков.

  • Создайте постоянные каталоги на хосте

    Контейнеры Docker являются временными; всё долговременное состояние должно храниться на хосте.

    bash
    mkdir -p /root/.openclaw/workspace # Назначьте владельцем пользователя контейнера (uid 1000):chown -R 1000:1000 /root/.openclaw
  • Настройте переменные среды

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

    bash
    OPENCLAW_IMAGE=openclaw:latestOPENCLAW_GATEWAY_TOKEN=OPENCLAW_GATEWAY_BIND=lanOPENCLAW_GATEWAY_PORT=18789 OPENCLAW_CONFIG_DIR=/root/.openclawOPENCLAW_WORKSPACE_DIR=/root/.openclaw/workspace GOG_KEYRING_PASSWORD=XDG_CONFIG_HOME=/home/node/.openclaw

    Задайте OPENCLAW_GATEWAY_TOKEN, чтобы управлять постоянным токеном Gateway через .env; в противном случае настройте gateway.auth.token, прежде чем рассчитывать на работу клиентов после перезапусков. Если не задано ни одно из этих значений, OpenClaw использует только временный токен для текущего запуска. Создайте пароль связки ключей для GOG_KEYRING_PASSWORD:

    bash
    openssl rand -hex 32

    Не добавляйте этот файл в репозиторий. Он содержит переменные среды контейнера и среды выполнения, например OPENCLAW_GATEWAY_TOKEN. Сохранённые данные аутентификации провайдеров через OAuth или ключи API находятся в подключённом каталоге ~/.openclaw/agents/<agentId>/agent/auth-profiles.json.

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

    Создайте или обновите 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:      # Рекомендуется: оставьте Gateway доступным только через 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. Обязательно настройте аутентификацию (gateway.auth.token или пароль) и безопасный режим привязки для своего развёртывания.

  • Общие шаги для среды выполнения виртуальной машины Docker

    Следуйте общему руководству по стандартному процессу настройки хоста Docker:

  • Доступ с учётом особенностей Hetzner

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

    Предварительное условие: убедитесь, что конфигурация sshd на VPS разрешает перенаправление TCP. Если вы усилили защиту конфигурации SSH, проверьте /etc/ssh/sshd_config и задайте:

    text
    AllowTcpForwarding local

    local разрешает локальное перенаправление ssh -L с ноутбука, одновременно блокируя удалённое перенаправление с сервера. Если задать значение no, туннель завершится с ошибкой: channel 3: open failed: administratively prohibited: open failed

    Убедившись, что перенаправление TCP включено, перезапустите службу SSH (systemctl restart ssh) и запустите туннель с ноутбука:

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

    Откройте http://127.0.0.1:18789/ и вставьте настроенный общий секрет. В этом руководстве по умолчанию используется токен Gateway; если вы перешли на аутентификацию по паролю, используйте вместо него настроенный пароль.

  • Общая схема хранения постоянных данных приведена в разделе Среда выполнения виртуальной машины Docker.

    Инфраструктура как код (Terraform)

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

    • Модульную конфигурацию Terraform с удалённым управлением состоянием
    • Автоматическую подготовку с помощью cloud-init
    • Сценарии развёртывания (первоначальная настройка, развёртывание, резервное копирование и восстановление)
    • Усиление защиты (межсетевой экран, UFW, доступ только по SSH)
    • Настройку туннеля SSH для доступа к Gateway

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

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

    Дальнейшие действия

    Связанные разделы

    Was this useful?
    On this page

    On this page