OpenClaw в Docker Compose: как установить AI-агента на VPS без лишней боли

OpenClaw в Docker Compose: как установить AI-агента на VPS без лишней боли

OpenClaw в Docker Compose — это самый удобный способ поднять AI-агента на VPS или отдельной машине без ручной возни с локальными зависимостями: вы собираете контейнер, проходите onboarding, сохраняете конфиг и workspace на хосте, а дальше управляете агентом через CLI, веб-интерфейс и подключённые каналы вроде Telegram или Discord.

Запускать OpenClaw «в систему» можно, но Docker чаще выигрывает в трёх сценариях: когда нужен чистый изолированный контур, когда вы ставите агента на VPS, и когда хочется обновлять или пересобирать среду без риска превратить сервер в археологический слой из пакетов, конфликтов и сожалений. Ниже — пошаговый разбор, что именно даёт OpenClaw Docker Compose, как его поднять, где обычно всё ломается и как не словить банальный хаос на старте.

🦞 Почему OpenClaw в Docker Compose вообще имеет смысл?

Если коротко: Docker не делает OpenClaw «магически лучше», но делает развёртывание предсказуемее. По официальной документации Docker-сценарий подходит тем, кто хочет контейнеризированный gateway, изолированную среду или запуск на хосте без полноценной локальной установки. Для обычной локальной разработки на своей машине нативная установка может быть быстрее, но для продакшена и VPS Docker Compose обычно практичнее.

Подход Когда подходит Минусы
Docker Compose VPS, изоляция, удобный перенос, чистая инфраструктура Нужны Docker и чуть больше RAM
Локальная установка Быстрый dev-loop на своём компьютере Больше ручной настройки и выше шанс конфликтов
  • 🐳 Контейнер легче перенести на другой сервер или пересобрать после неудачного обновления.
  • 📦 Конфиг и workspace можно хранить на хосте как постоянные volume-монты.
  • 🛠️ CLI-команды и gateway живут в одном Compose-стеке, а не в россыпи случайных скриптов.
  • 🔍 Удобно смотреть healthchecks, логи и статус контейнера стандартными docker-командами.

⚙️ Что нужно перед установкой OpenClaw через Docker Compose?

По официальным требованиям нужен Docker Engine или Docker Desktop, Compose v2, минимум 2 ГБ RAM для сборки образа и немного свободного места под образы, логи и данные. На практике для VPS лучше ориентироваться на 4 ГБ RAM, особенно если вы не хотите, чтобы сборка внезапно умерла с ошибкой OOM и драматичной цифрой 137.

Минимальный чеклист перед стартом:

  • 🧠 Ubuntu 22.04/24.04 или другой вменяемый Linux-хост.
  • 🐳 Установленные docker и docker compose.
  • 🔑 Готовый способ авторизации в модели: API key или OAuth.
  • 💬 Канал, через который вы будете общаться с агентом: Telegram, Discord, WhatsApp и т.д.
  • 🧱 Понимание, что Docker-режим нужен именно вам, а не потому что слово «контейнер» звучит солидно.

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

docker --version
docker compose version

Если команды не отвечают, OpenClaw тут не виноват. Пока что. 🦞

🚀 Как установить OpenClaw Docker Compose пошагово?

Официальный сценарий сейчас строится вокруг setup-скрипта. Он либо собирает локальный образ, либо использует готовый, затем запускает onboarding и поднимает gateway через Docker Compose. Это удобнее ручной сборки, потому что меньше шансов перепутать порядок шагов.

  1. 🧲 Клонируйте репозиторий OpenClaw.
  2. 📁 Перейдите в корень проекта.
  3. 🐳 Запустите setup-скрипт Docker.
  4. 🔐 Во время onboarding выберите локальный gateway и настройте доступ к модели.
  5. 🌐 После запуска откройте Control UI на порту 18789.
git clone https://github.com/openclaw/openclaw.git
cd openclaw
./scripts/docker/setup.sh

Если нужен готовый образ вместо локальной сборки, документация предлагает сначала выставить переменную:

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

Что важно понять заранее:

  • 🗂️ Конфигурация монтируется в /home/node/.openclaw, поэтому данные переживают пересборку контейнера.
  • 📝 Workspace тоже монтируется отдельно, так что файлы агента не исчезают после перезапуска.
  • 🧪 openclaw-cli — это инструмент уже после старта контейнера, а не вместо первичной настройки.
  • 🌍 По умолчанию Docker-сценарий использует bind-режим lan, чтобы Control UI был доступен на хосте.

Если onboarding прошёл нормально, можно получить ссылку на панель так:

docker compose run --rm openclaw-cli dashboard --no-open

📲 Как подключить Telegram, Discord и другие каналы после запуска?

После того как gateway уже работает, каналы подключаются через CLI-контейнер. Для многих именно это и есть главный смысл OpenClaw: агент живёт на сервере, а управляете вы им из привычного мессенджера, а не из очередной панели, которую откроете два раза и забудете.

Типовые команды из документации выглядят так:

# Telegram
docker compose run --rm openclaw-cli channels add --channel telegram --token "<token>"

# Discord
docker compose run --rm openclaw-cli channels add --channel discord --token "<token>"

# WhatsApp (через QR)
docker compose run --rm openclaw-cli channels login

Есть и практический нюанс, который всплывает у многих. По опыту Simon Willison, после настройки Telegram иногда требуется отдельно одобрить pairing. Если автоматический сценарий подвисает, помогает проверка списка устройств и ручное подтверждение запроса через контейнер gateway. Это не баг апокалипсиса, просто одна из тех мелочей, ради которых и пишут нормальные гайды.

🧯 Где чаще всего ломается OpenClaw в Docker и как это починить?

Самые частые проблемы довольно скучные, но зато чинятся без шаманства. Обычно ломается не «AI-агент», а инфраструктурная база под ним.

Проблема Почему возникает Что делать
Контейнер unhealthy Не проходит /healthz Проверьте curl http://127.0.0.1:18789/healthz и логи
EACCES на конфиге Права на host mount не совпадают с uid 1000 Сменить владельца bind mount на 1000:1000
Не открывается UI Неверный bind mode, firewall или потерян токен Проверить gateway.bind, порт и заново получить dashboard URL
Сборка падает с OOM На VPS мало RAM Дайте хотя бы 2–4 ГБ памяти или используйте готовый image

Полезные команды для диагностики:

docker compose ps
docker compose logs openclaw-gateway
curl -fsS http://127.0.0.1:18789/healthz
curl -fsS http://127.0.0.1:18789/readyz
  • 🔍 Если контейнер запустился, но канал не отвечает — смотрите pairing и device approval.
  • 📉 Если UI открывается, но всё тормозит — проверьте RAM и размер логов.
  • 🧹 Если диска мало — следите за media/, session JSONL и логами в /tmp/openclaw/.

✅ Когда Docker Compose для OpenClaw — хороший выбор, а когда нет?

Если вы хотите поднять OpenClaw на VPS, держать его онлайн 24/7, спокойно переживать перезапуски и не тащить весь стек в основную систему — Docker Compose почти всегда лучший старт. Если же вы активно разрабатываете, часто правите код и хотите минимальный friction на локальной машине, обычная установка может быть быстрее.

Мини-чеклист перед продом:

  • ✅ Вы понимаете, где лежит конфиг и как он переживает пересборку.
  • ✅ У вас есть рабочий токен/ключ для модели.
  • ✅ Порт 18789 не торчит наружу бездумно на весь интернет.
  • ✅ Healthcheck отвечает, а логи не кричат о проблемах каждую минуту.
  • ✅ Вы протестировали хотя бы один канал связи, например Telegram.

Если нужен быстрый, понятный и переносимый способ запуска, запрос openclaw docker compose закрывается именно этим сценарием. Он не избавляет от базовой админки, но убирает заметную часть ручной рутины и делает OpenClaw куда удобнее для реального использования.

Хотите настроить OpenClaw под свой сценарий — с Telegram, памятью, cron-задачами и рабочими playbook? Загляните в Telegram: t.me/aaakalsin.

❓ FAQ по теме OpenClaw Docker Compose

Нужен ли Docker для OpenClaw обязательно?

Нет. Официальная документация прямо пишет, что Docker — опциональный сценарий. Он нужен, когда важны изоляция, VPS-развёртывание и контейнерный workflow.

Сколько памяти нужно для OpenClaw в Docker?

Минимум около 2 ГБ RAM для сборки, но комфортнее закладывать 4 ГБ. На 1 ГБ сборка может падать с OOM.

Где хранятся конфиги и файлы агента?

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

Как проверить, что контейнер жив?

Смотрите docker compose ps и проверяйте /healthz и /readyz. Эти endpoint'ы специально для этого и существуют.

Можно ли после запуска подключить Telegram или Discord?

Да. Для этого используется openclaw-cli внутри Compose-стека, например через docker compose run --rm openclaw-cli channels add.

Почему не открывается Control UI на 18789?

Обычно проблема в firewall, bind mode, неправильной публикации порта или потерянном токене для dashboard.

Что выбрать для VPS: локальную установку или Docker Compose?

Для VPS чаще разумнее Docker Compose. Он проще в поддержке, чище с точки зрения инфраструктуры и удобнее для переноса или восстановления.