Перейти к содержимому
Главная страница » OpenClaw в Docker

OpenClaw в Docker

Примечание: OpenClaw ранее назывался Clawdbot и Moltbot.
Если вы искали «Clowbolt» или «Clawbolt» — это тот же проект.
Официальный образ: ghcr.io/openclaw/openclaw.

OpenClaw — это самохостируемый AI-агент с открытым исходным кодом. Он:

  • выполняет задачи (не только чат): команды в терминале, браузер, почта, календарь и т.д.;
  • подключается к мессенджерам: Telegram, Discord, WhatsApp, Slack, Teams;
  • работает на вашем железе; данные остаются у вас;
  • поддерживает модели Anthropic (Claude), OpenAI, OpenRouter и локальные модели.
Важно: агент может выполнять команды и писать файлы. Поэтому его нужно запускать в изолированной среде (Docker), а не «голым» на хосте.

Системные требования:

КомпонентТребование
Docker20.10+
Docker Composev2
ОЗУминимум 2 ГБ (рекомендуется 4 ГБ; на 1 ГБ контейнер падает с exit 137)
API-ключAnthropic (обязательно для Claude), либо OpenAI/OpenRouter и т.д.
По желаниюТокен бота Telegram/Discord для интеграций
Официальные образы публикуются в GitHub Container Registry:
https://github.com/openclaw/openclaw/pkgs/container/openclaw
Используйте имя образа: ghcr.io/openclaw/openclaw (не путать с образами на Docker Hub).

Безопасность

  • Всегда запускайте OpenClaw в Docker — не через npm напрямую на хост-машине. Агент может выполнять команды и писать файлы; Docker ограничивает доступ к файловой системе томами.
  • На VPS обязательно настройте файрвол и привязку к нужному интерфейсу/порту (см. раздел про VPS).
  • В конфиге gateway.auth должен быть объект с полем token, а не строка. Иначе авторизация может не работать.
  • Официального токена/криптовалюты у OpenClaw нет. Любые объявления про «$CLAWD» / «$MOLT» — мошенничество.

Docker Compose (рекомендуется)

Удобно для управления конфигом, обновлениями и перезапусками.

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

mkdir openclaw-bot
cd openclaw-bot

Файл docker-compose.yml

Создайте файл docker-compose.yml в этой папке:

version: '3.9'

services:
  openclaw:
    image: ghcr.io/openclaw/openclaw:latest
    container_name: openclaw_agent
    restart: unless-stopped

    environment:
      # Обязательно: подставьте свой ключ Anthropic
      - ANTHROPIC_API_KEY=sk-ant-YOUR_ACTUAL_KEY_HERE
      - LOG_LEVEL=info
      # Доступ к веб-интерфейсу с любого интерфейса
      - HOST=0.0.0.0

    ports:
      - "18789:18789"

    volumes:
      # Конфиг и сессии (сохраняются между перезапусками)
      - ./config:/root/.openclaw
      # Рабочая директория агента (только здесь он может писать файлы)
      - ./workspace:/app/workspace

Теги образа:

  • latest — последний стабильный релиз;
  • main — последняя сборка с ветки main;
  • конкретная версия, например 2026.2.26.

Запуск

docker compose up -d
  • -d — в фоне.
  • После старта откройте в браузере: http://localhost:18789
  • Должен открыться мастер настройки (onboarding).

Остановка и перезапуск

docker compose down
docker compose up -d

Один контейнер (минимальный)

Без docker-compose, одной командой:

docker run -d \
  --name openclaw \
  --restart unless-stopped \
  --memory=2g \
  -p 18789:18789 \
  -e ANTHROPIC_API_KEY="sk-ant-YOUR_API_KEY" \
  -e HOST=0.0.0.0 \
  -v "$(pwd)/openclaw_data:/root/.openclaw" \
  ghcr.io/openclaw/openclaw:latest
  • Данные сохраняются в ./openclaw_data.
  • Интерфейс: http://localhost:18789
  • На Windows в PowerShell замените $(pwd) на ${PWD} или укажите полный путь к папке.

Развёртывание на VPS

Чтобы бот работал 24/7 (например, для Telegram/WhatsApp), разверните его на VPS.

Рекомендуемые параметры VPS

  • ОС: Ubuntu 22.04 LTS
  • ОЗУ: минимум 2 ГБ, лучше 4 ГБ
  • Провайдеры: dockerhosting.ru, DigitalOcean, Vultr, Hetzner и т.п.

Установка Docker на сервер

Подключитесь по SSH и выполните:

curl -fsSL https://get.docker.com | bash

При необходимости добавьте пользователя в группу docker:

sudo usermod -aG docker $USER
# Выйдите и зайдите снова по SSH

Запуск контейнера на VPS

Используйте способ 1 (Compose) или способ 2 (один контейнер), подставив свой API-ключ и при необходимости путь к данным. Доступ к панели: http://IP_ВАШЕГО_СЕРВЕРА:18789

Файрвол (UFW)

Если страница не открывается, откройте порт:

sudo ufw allow 18789/tcp
sudo ufw reload

Для продакшена рекомендуется дополнительно:

  • привязать сервис к конкретному интерфейсу (не обязательно 0.0.0.0);
  • использовать reverse proxy (Nginx/Caddy) с HTTPS и при необходимости базовой авторизацией;
  • изучить раздел «Security hardening for network exposure» в официальной документации.

Развёртывание из исходников (docker-setup.sh)

Если вы клонируете репозиторий OpenClaw и хотите использовать официальный скрипт:

Клонирование и запуск скрипта

git clone https://github.com/openclaw/openclaw.git
cd openclaw
./docker-setup.sh

Скрипт:

  • генерирует токен шлюза и записывает его в .env;
  • при необходимости собирает образ и запускает gateway через Docker Compose;
  • запускает onboarding;
  • может настроить песочницу агента (если включить OPENCLAW_SANDBOX=1).

Использование готового образа (без сборки)

Чтобы не собирать образ локально, а использовать образ с GitHub:

export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"
./docker-setup.sh

Ручной запуск (без скрипта)

docker build -t openclaw:local -f Dockerfile .
docker compose run --rm openclaw-cli onboard
docker compose up -d openclaw-gateway

Панель: http://127.0.0.1:18789/

Конфигурация и переменные окружения

Основные переменные для контейнера:

ПеременнаяОписаниеПример
ANTHROPIC_API_KEYКлюч API Anthropic (обязательно для Claude)sk-ant-...
OPENAI_API_KEYКлюч OpenAI (если используете их модели)sk-...
HOSTНа каком адресе слушать0.0.0.0 (все интерфейсы) или 127.0.0.1
LOG_LEVELУровень логовinfodebug

Конфиг сохраняется в смонтированном каталоге (например ./config или ./openclaw_data), что соответствует ~/.openclaw внутри контейнера. После первого запуска там появятся файлы конфигурации; при необходимости их можно править с учётом документации (в т.ч. gateway.auth и gateway.bind).

Токен и авторизация

  • При использовании docker-setup.sh токен записывается в .env и выводится в консоль.
  • В веб-интерфейсе: Settings → token — вставьте этот токен.
  • Если видите «unauthorized» или «pairing required», получите новую ссылку на дашборд и подтвердите устройство:
docker compose run --rm openclaw-cli dashboard --no-open
docker compose run --rm openclaw-cli devices list
docker compose run --rm openclaw-cli devices approve <requestId>

В конфиге шлюза (openclaw.json или аналог) gateway.auth должен быть объектом, например:

{
  "gateway": {
    "auth": {
      "mode": "token",
      "token": "ваш-секретный-токен"
    }
  }
}

Не задавайте auth строкой — только объектом с полем token.

Песочница (sandbox) для агента

Агент может запускать команды и писать файлы. Песочница изолирует эти операции в отдельном Docker-контейнере.

  • При полном развёртывании в Docker (как в этом мануале) агент уже ограничен томами (например, только ./config и ./workspace).
  • При развёртывании из репозитория через docker-setup.sh можно включить дополнительную песочницу для агента:
export OPENCLAW_SANDBOX=1
./docker-setup.sh

Для rootless Docker можно указать свой сокет:

export OPENCLAW_SANDBOX=1
export OPENCLAW_DOCKER_SOCKET=/run/user/1000/docker.sock
./docker-setup.sh

Дополнительные возможности

Дополнительные тома (при использовании docker-setup.sh)

export OPENCLAW_EXTRA_MOUNTS="$HOME/.codex:/home/node/.codex:ro,$HOME/github:/home/node/github:rw"
./docker-setup.sh

Формат: источник:назначение[:ro], через запятую, без пробелов.

Сохранение домашней директории контейнера

export OPENCLAW_HOME_VOLUME="openclaw_home"
./docker-setup.sh

Дополнительные пакеты в образе

export OPENCLAW_DOCKER_APT_PACKAGES="ffmpeg build-essential"
./docker-setup.sh

Права доступа (EACCES)

Образ обычно запускается от пользователя node (uid 1000). Если появляются ошибки доступа к смонтированным каталогам на Linux:

sudo chown -R 1000:1000 ./config ./workspace

(подставьте свои пути к конфигу и workspace.)

Типичные проблемы и решение

Порт 18789 уже занят

Другой процесс или старый контейнер использует порт. Остановите и удалите контейнер, затем запустите снова:

docker rm -f openclaw_agent
docker compose up -d

Connection refused на localhost

Контейнер может падать из-за неверного API-ключа. Проверьте логи:

docker logs openclaw_agent

Ищите сообщения вроде «Authentication failed» или «401 Unauthorized» и проверьте ANTHROPIC_API_KEY в docker-compose.yml или в команде docker run.

Контейнер выходит с кодом 137

Обычно нехватка памяти (OOM). Выделите контейнеру минимум 2 ГБ ОЗУ (например, --memory=2g в docker run или ограничения в Compose).

«Moltbot» в документации, а образ — «OpenClaw»

Проект переименован: Clawdbot → Moltbot → OpenClaw. Инструкции по «Moltbot» относятся к тому же софту. Используйте образ ghcr.io/openclaw/openclaw.

Не открывается панель на VPS

  • Проверьте, что контейнер запущен: docker ps.
  • Откройте порт в файрволе: ufw allow 18789/tcp && ufw reload.
  • Убедитесь, что в переменных задано HOST=0.0.0.0, если слушаете на всех интерфейсах.

Полезные ссылки

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *