Развертывание OpenClaw на сервере
Развертывание OpenClaw на сервере
OpenClaw — это self-hosted AI-платформа, которая работает как центральный «мозг» для автоматизации бизнес-процессов. В отличие от облачных SaaS-решений, она разворачивается на собственном виртуальном сервере (VPS) и позволяет полностью контролировать данные, логику и доступы. Платформа не запускает тяжелые нейросети локально, а выступает умным шлюзом: она принимает запросы, обогащает их контекстом из памяти, применяет специфичные навыки и отправляет к внешним провайдерам (Anthropic, OpenAI, Gemini).
Архитектура платформы
Для успешного развертывания необходимо понимать, из каких логических блоков состоит система и как они взаимодействуют между собой на уровне сервера.
- Gateway (Шлюз) — основной серверный процесс, написанный на Node.js. Он управляет всеми потоками данных, маршрутизирует запросы и контролирует жизненный цикл агентов.
- Workspace (Рабочая область) — физическая директория на жестком диске сервера, где хранятся файлы, базы знаний, логи задач и вложения. Это долгосрочная память агента, к которой он может обращаться в будущих сессиях.
- Skills (Навыки) — папка с конфигурационными файлами и кодом, которые расширяют возможности агента. Навыки описывают, как именно ИИ должен реагировать на определенные триггеры.
- Channels (Каналы) — интерфейсы взаимодействия с внешним миром, такие как Telegram-боты, веб-чаты или интеграции с внешними API.
- Sub-agents (Суб-агенты) — дочерние процессы, которые главный агент запускает для выполнения узких, рутинных задач (например, массовой генерации контента или парсинга данных).
Подготовка виртуального сервера (VPS)
Поскольку OpenClaw работает как оркестратор и не выполняет локальный инференс (генерацию текста) тяжелых моделей, требования к серверу остаются умеренными. Вся тяжелая вычислительная работа делегируется API-провайдерам.
Рекомендуемые параметры VPS:
- Операционная система: Ubuntu 22.04 LTS
- Процессор: 2 vCPU
- Оперативная память: 4 ГБ RAM
- Накопитель: 20+ ГБ SSD
- Сеть: Публичный IPv4-адрес и привязанный к нему домен (A-запись в DNS)
Аренда сервера с такими характеристиками у популярных хостинг-провайдеров обойдется примерно в 5–10 долл. в месяц. Этого ресурса хватит для стабильной работы шлюза, базы данных и нескольких десятков активных суб-агентов.
После покупки сервера необходимо подключиться к нему по протоколу SSH от имени пользователя (например, ubuntu) и выполнить базовую настройку.
Обновление пакетов системы:
sudo apt update && sudo apt upgrade -y
На этом этапе строго рекомендуется настроить базовый брандмауэр (например, UFW), разрешив только необходимые порты: 22 для SSH, 80 и 443 для веб-трафика. Внутренние порты приложения лучше не выставлять наружу напрямую, а скрыть за обратным прокси-сервером.
Установка через Docker и настройка сети
Самый надежный и масштабируемый способ развертывания OpenClaw — использование Docker. Этот подход изолирует приложение от операционной системы, решает проблему зависимостей и упрощает обновление.
Шаг 1. Установка Docker
Выполните последовательность команд для установки актуальной версии Docker из официального репозитория:
sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
Чтобы запускать контейнеры без прав суперпользователя, добавьте текущего пользователя в группу docker:
sudo usermod -aG docker $USER
newgrp docker
Шаг 2. Создание структуры директорий
OpenClaw требует определенной структуры папок на сервере для хранения конфигурации, навыков и пользовательских данных. Эти папки будут проброшены внутрь Docker-контейнера.
mkdir -p ~/openclaw
mkdir -p ~/.openclaw/workspace
mkdir -p ~/.openclaw/skills
sudo chown -R $USER:$USER ~/openclaw ~/.openclaw
Директория ~/openclaw будет использоваться для хранения файлов запуска, а ~/.openclaw станет системной папкой самой платформы.
Для бизнеса крайне важно сразу структурировать workspace. Создайте внутри него подпапки: clients/, products/, scripts/. В дальнейшем вы сможете дать агенту инструкции, как именно он должен вести файлы, соблюдая форматы и правила именования.
Шаг 3. Настройка переменных окружения
Перейдите в рабочую директорию и создайте файл .env. В нем будут храниться чувствительные данные: пути к папкам и API-ключи.
cd ~/openclaw
nano .env
Пример содержимого файла .env:
OPENCLAW_CONFIG_DIR=/home/ubuntu/.openclaw
OPENCLAW_WORKSPACE_DIR=/home/ubuntu/.openclaw/workspace
OPENCLAW_GATEWAY_TOKEN=super-secret-gateway-token
CLAUDE_AI_SESSION_KEY=your_claude_key
OPENAI_API_KEY=your_openai_key
Хранение ключей в файле
.env— золотой стандарт безопасности. Никогда не вписывайте API-ключи напрямую в код или конфигурационные файлы, которые могут быть случайно закоммичены в Git или переданы третьим лицам.
Шаг 4. Подготовка Docker Compose и обратного прокси
Для безопасной работы платформы (особенно при интеграции с Telegram, который требует HTTPS) необходимо использовать обратный прокси-сервер, например, Traefik или Nginx. В данном курсе мы рассмотрим конфигурацию с использованием внешней proxy-сети.
Сначала создадим общую сеть для контейнеров:
docker network create proxy
Затем создайте файл docker-compose.yml в директории ~/openclaw. Этот файл описывает параметры запуска шлюза OpenClaw и его интеграцию с маршрутизатором Traefik.
services:
openclaw-gateway:
container_name: openclaw
image: ${OPENCLAW_IMAGE:-openclaw:local}
environment:
HOME: /home/node
TERM: xterm-256color
OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN}
CLAUDE_AI_SESSION_KEY: ${CLAUDE_AI_SESSION_KEY}
OPENAI_API_KEY: ${OPENAI_API_KEY}
volumes:
- ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw
- ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace
init: true
restart: unless-stopped
command: ["node", "dist/index.js", "gateway", "--bind", "lan", "--port", "18789"]
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.openclaw.rule=Host(`YOUR_DOMAIN_NAME`)"
- "traefik.http.routers.openclaw.entrypoints=websecure"
- "traefik.http.routers.openclaw.tls.certresolver=myresolver"
- "traefik.http.services.openclaw.loadbalancer.server.port=18789"
networks:
proxy:
external: true
В этом конфигурационном файле директива volumes связывает папки на вашем сервере с папками внутри изолированного контейнера. Блок labels указывает Traefik автоматически получить SSL-сертификат и направлять трафик с вашего домена на внутренний порт 18789.
Базовая конфигурация API и суб-агентов
Основной конфигурационный файл платформы хранится по пути ~/.openclaw/config.json5. Если он не существует, создайте его вручную. В нем прописываются провайдеры нейросетей, дефолтные модели для главного агента и настройки для суб-агентов.
Пример базового конфига config.json5:
{
models: {
defaultProvider: "anthropic",
providers: {
anthropic: {
apiKey: "CLAUDE_AI_SESSION_KEY"
},
openai: {
apiKey: "OPENAI_API_KEY"
}
}
},
agents: {
defaults: {
subagents: {
model: "openai",
maxSpawnDepth: 2
}
}
}
}
Параметр maxSpawnDepth контролирует максимальную глубину вложенности суб-агентов.
- Глубина 0: Главный агент (ваш персональный ИИ).
- Глубина 1: Суб-агент оркестратор (может запускать других агентов, если ).
- Глубина 2: Суб-суб-агент (линейный исполнитель, не может создавать новых агентов).
Назначение более дешевой и быстрой модели (например, от OpenAI) для суб-агентов позволяет существенно экономить бюджет при выполнении массовых задач, таких как анализ сотен логов или генерация однотипного контента.
Интеграция с Telegram
Для автоматизации взаимодействия с клиентами или сотрудниками необходимо подключить Telegram-канал.
- В Telegram найдите бота
@BotFatherи создайте нового бота командой/newbot. - Скопируйте полученный токен.
- Откройте файл
~/.openclaw/config.json5и добавьте блок каналов:
{
channels: {
telegram: {
enabled: true,
botToken: "YOUR_BOT_TOKEN_HERE",
dmPolicy: "pairing"
}
}
}
Режимы политики доступа (dmPolicy) определяют, кто может общаться с вашим ботом:
pairing— каждый новый пользователь должен быть одобрен администратором (самый безопасный вариант для корпоративного использования).allowlist— бот отвечает только заранее разрешенным пользователям.open— бот отвечает абсолютно всем.
Навыки (Skills) и Память
Навыки — это расширения мозга агента. Они лежат в каталоге ~/.openclaw/skills и доступны всем агентам на сервере, включая суб-агентов.
Пример простого текстового навыка lead_qualifier.json5:
{
id: "lead_qualifier",
name: "Lead Qualifier",
description: "Помогает квалифицировать лидов по скрипту BANT.",
instructions: [
"Задавай вопросы, чтобы оценить Budget, Authority, Need, Timing.",
"Результат выдавай в формате JSON с полями budget, authority, need, timing, score."
]
}
Агент читает этот навык при старте сессии. Навыки могут взаимодействовать с памятью (workspace). Например, после квалификации лида агент может сохранить сгенерированный JSON-отчет в папку ~/.openclaw/workspace/clients/, чтобы в будущем другой суб-агент мог проанализировать эту информацию и составить персонализированное коммерческое предложение.
Запуск и управление через CLI
Для запуска платформы выполните команду в директории ~/openclaw:
docker compose up -d
Флаг -d означает запуск в фоновом режиме. Для управления сервером используется встроенный интерфейс командной строки (CLI).
Полезные команды для администрирования:
openclaw channels status— выводит текущий статус подключенных каналов.openclaw pairing list telegram— показывает список пользователей, ожидающих одобрения (при режимеpairing).openclaw pairing approve telegram— одобряет запросы пользователей.openclaw logs --follow— запускает трансляцию логов системы в реальном времени.openclaw gateway restart— мягко перезапускает шлюз. Эту команду необходимо выполнять каждый раз после внесения изменений в файлconfig.json5или добавления новых навыков.
Развернутая таким образом платформа полностью готова к работе. Все данные надежно хранятся на вашем сервере, а вычислительные мощности гибко масштабируются за счет использования облачных API-провайдеров.