~/content-factory
OpenClaw

Установка OpenClaw на VPS — полный гайд

OpenClaw на локальном компьютере — удобно для тестов. Но стоит закрыть крышку ноутбука — бот умирает. Кроны не работают, heartbeat не тикает, сообщения в Telegram уходят в пустоту.

VPS решает эту проблему. Сервер работает 24/7, бот отвечает всегда, кроны выполняются по расписанию. Это продакшн-режим.


Что понадобится

• VPS-сервер (арендуем за 5 минут, покажу ниже)
• SSH-доступ к серверу (получите сразу после покупки)
• Telegram-бот (создаётся за 2 минуты через @BotFather)
• API-ключ Claude или подписка Claude Pro/Max

💡

По деньгам: Для одного агента хватит самого дешёвого VPS — от 200₽/мес. OpenClaw потребляет минимум ресурсов, основная нагрузка уходит в облако Claude.


Шаг 1: Покупка VPS

Я рекомендую Beget — русский хостинг с понятным интерфейсом и адекватной поддержкой. Но подойдёт любой провайдер: Timeweb, Hetzner, DigitalOcean — принцип тот же.

Создание сервера

Переходим на страницу создания Cloud-сервера. Здесь нужно выбрать три вещи: локацию, конфигурацию и операционную систему.

Выбор локации и тарифа на Beget — Латвия, минимальный тариф
Выбор локации и тарифа на Beget — Латвия, минимальный тариф

Выбор локации — это важно

Выбирайте Латвию (Рига) или любой европейский дата-центр. Не Россию.

Почему: OpenClaw обращается к API Claude, OpenAI и другим языковым моделям. Эти сервисы не работают с российских IP-адресов — запросы просто не проходят. Сервер в Латвии решает эту проблему: он находится в Европе, все API доступны, при этом пинг из России минимальный (Рига — ближайшая точка).

Для вас как пользователя ничего не меняется — вы общаетесь с ботом через Telegram, а Telegram работает откуда угодно. Вся "магия" происходит на сервере, и ему нужен доступ к API.

Выбор конфигурации

Для одного OpenClaw-агента хватит минимальной конфигурации:

1 CPU — OpenClaw не нагружает процессор
1 GB RAM — достаточно для Node.js и одного агента
10 GB SSD — хватит с запасом (OpenClaw занимает ~100 MB)

Это самый дешёвый тариф. Если позже захотите запустить несколько агентов или добавить сайт — можно увеличить ресурсы в пару кликов.

Выбор операционной системы

Выбор операционной системы — Ubuntu 24.04
Выбор операционной системы — Ubuntu 24.04

Операционная система — Ubuntu 24.04 LTS. Все команды в этом гайде написаны под Ubuntu, OpenClaw тестируется на Ubuntu, и 90% решений в интернете — тоже под Ubuntu. Не усложняйте себе жизнь.

Итого: Латвия → минимальный тариф → Ubuntu 24.04 LTS. Жмём "Создать".

После создания

Сервер создаётся за 1-2 минуты. После этого вы получите письмо с данными доступа:

Письмо с данными сервера — IP, логин, пароль
Письмо с данными сервера — IP, логин, пароль

IP-адрес сервера (например, 185.22.153.49)
Логин (обычно root)
Пароль (в письме или в панели управления)

Сохраните эти данные — они понадобятся прямо сейчас.


Шаг 2: Подключение к серверу

Теперь нужно подключиться к серверу по SSH. Это как "зайти внутрь" вашего удалённого компьютера через терминал.

macOS / Linux:

Откройте Терминал (на macOS: Spotlight → "Терминал", на Linux: Ctrl+Alt+T) и введите:

ssh root@ВАШ_IP_АДРЕС

Например: ssh root@185.22.153.49

Windows:

Откройте PowerShell (правой кнопкой по меню Пуск → Windows PowerShell) и введите ту же команду:

ssh root@ВАШ_IP_АДРЕС

При первом подключении система покажет сообщение про fingerprint — "Are you sure you want to continue connecting?". Это нормальная проверка безопасности, так происходит при каждом первом входе на новый сервер. Напишите yes и нажмите Enter.

Первое подключение по SSH — fingerprint и ввод пароля
Первое подключение по SSH — fingerprint и ввод пароля

После этого система попросит пароль. Важно: при вводе пароля курсор не двигается и символы не появляются — это нормально, так работает терминал. Просто вводите пароль вслепую и жмите Enter.

Если всё прошло успешно — вы увидите приглашение вроде root@server:~#. Вы внутри сервера.

ℹ️

🔐 Совет по безопасности: После настройки рекомендую перейти на SSH-ключи вместо пароля. Но для старта пароль подойдёт — к этому можно вернуться позже.

macOS / Linux:

ssh root@ВАШ_IP_АДРЕС

Windows:
Откройте PowerShell или скачайте PuTTY. В PowerShell:

ssh root@ВАШ_IP_АДРЕС

При первом подключении система спросит про fingerprint — напишите yes. Затем введите пароль.

ℹ️

🔐 Безопасность: После настройки рекомендуем перейти на SSH-ключи вместо пароля. Но для старта пароль подойдёт.


Шаг 3: Обновление системы

Первым делом обновляем пакеты:

apt update && apt upgrade -y

Это может занять пару минут. Если спросит про перезапуск сервисов — жмите Enter (оставляем по умолчанию).


Шаг 4: Установка Node.js

OpenClaw работает на Node.js. Ставим версию 22 (LTS):

curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
apt install -y nodejs

Проверяем:

node -v

Должно показать v22.x.x. Затем:

npm -v

Должно показать 10.x.x.

⚠️

Важно: Не ставьте Node через apt install nodejs без nodesource — получите старую версию, которая не подойдёт.


Шаг 5: Установка OpenClaw

Сначала ставим Git (нужен для некоторых зависимостей):

apt install git -y

Теперь OpenClaw:

npm install -g openclaw

В процессе установки терминал покажет кучу жёлтых строк npm warn deprecated ... — это нормально, не ошибка. Это предупреждения о внутренних зависимостях, они ни на что не влияют. Главное — дождаться строки added XXX packages в конце. Это значит, что всё установилось.

Проверяем:

openclaw --version

Вы увидите что-то вроде:

🦞 OpenClaw 2026.3.2 — I can run local, remote...
Gateway service check failed: Error: systemctl is-enabled unavailable...

Не пугайтесь ошибки про `systemctl`. Это нормально — OpenClaw просто проверяет, настроен ли автозапуск через systemd. Пока не настроен, и это ок. Мы настроим автозапуск позже через PM2. Главное — версия показалась, значит OpenClaw установлен.

Если команда не найдена — скорее всего npm поставил пакет в нестандартную папку. Исправляем:

export PATH=$PATH:$(npm config get prefix)/bin
echo 'export PATH=$PATH:'$(npm config get prefix)'/bin' >> ~/.bashrc

Шаг 6: Создание рабочей папки

mkdir ~/openclaw-factory
cd ~/openclaw-factory
openclaw setup

openclaw setup создаст базовую структуру — папку workspace/ с файлами агента. Но папку для конфига нужно создать вручную:

mkdir -p ~/openclaw-factory/.openclaw

Также OpenClaw ищет глобальный конфиг в домашней папке. Создадим и там:

mkdir -p ~/.openclaw

Теперь у вас такая структура:

openclaw-factory/
├── .openclaw/           ← создали вручную, сюда положим конфиг
│   └── openclaw.json
└── workspace/
    ├── AGENTS.md        ← инструкции для агента
    ├── SOUL.md          ← личность агента
    └── MEMORY.md        ← память

Шаг 7: Диагностика и установка автозапуска

Перед настройкой конфига запустите диагностику. Она установит systemd-сервис для автозапуска:

cd ~/openclaw-factory
openclaw doctor --fix

В конце вы увидите зелёную надпись "Doctor complete." — значит всё в порядке.

Doctor complete — диагностика пройдена
Doctor complete — диагностика пройдена
⚠️

Важно: запускайте doctor --fix до заполнения конфига. Doctor может перезаписать openclaw.json и удалить ваши настройки (токен бота, модель). Если вы уже заполнили конфиг и запустили doctor — проверьте файл ~/.openclaw/openclaw.json, ваши данные могли пропасть.


Шаг 8: Создание Telegram-бота

Если бот ещё не создан — идём к @BotFather:

Создание бота в BotFather
Создание бота в BotFather

• Напишите /newbot
• Введите имя бота (например, "Мой ассистент")
• Введите username (должен заканчиваться на bot, например my_assistant_ai_bot)
• BotFather выдаст токен — сохраните его

Токен бота от BotFather
Токен бота от BotFather

• Сразу будет полезно отключить Privacy Settings для работы агента в группах

Настройки бота
Настройки бота
Group Privacy — отключаем
Group Privacy — отключаем
ℹ️

Подробнее со скриншотами — в гайде по установке на компьютер.


Шаг 9: Настройка openclaw.json

Nano — текстовый редактор в терминале. На некоторых серверах его нет из коробки, ставим:

apt install nano -y

Открываем конфиг:

nano ~/openclaw-factory/.openclaw/openclaw.json
Конфиг openclaw.json
Конфиг openclaw.json

Вот минимальный рабочий конфиг:

{
  "gateway": {
    "mode": "local"
  },
  "agents": {
    "defaults": {
      "model": "anthropic/claude-opus-4-6"
    }
  },
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "1234567890:AAHdqTxxxxxxxxxxxxxxxxxxxxxxx",
      "dmPolicy": "allowlist",
      "allowFrom": ["ВАШ_TELEGRAM_USER_ID"]
    }
  }
}

Что заполнить:

botToken — токен от BotFather (из шага 7)
allowFrom — ваш числовой Telegram User ID (узнать у @userinfobot)

Сохраняем и выходим из редактора:

• Нажмите `Ctrl+O` — это команда "сохранить"
• Нажмите Enter — подтвердить имя файла
• Нажмите `Ctrl+X` — выйти из редактора

💡

Для пользователей Mac: в терминале используется клавиша Control (внизу слева), а не Cmd (⌘). Это частая путаница.

Теперь скопируйте конфиг в глобальную папку — OpenClaw ищет настройки именно там:

cp ~/openclaw-factory/.openclaw/openclaw.json ~/.openclaw/openclaw.json

Важно: выбор модели

После openclaw setup в конфиге по умолчанию может стоять anthropic/claude-sonnet-4. Эта модель не работает через подписку — OpenClaw просто не запустится или будет выдавать ошибки.

Если вы подключаете Claude через подписку (Pro / Max), убедитесь, что в поле default стоит одна из этих моделей:

anthropic/claude-opus-4-6 — самая мощная, рекомендую для старта
anthropic/claude-sonnet-4-6 — быстрее и дешевле, но чуть слабее
anthropic/claude-opus-4-5 и anthropic/claude-sonnet-4-5 — тоже работают

Не ставьте: claude-sonnet-4, claude-haiku-3-5 и другие старые модели — они ломают подключение через подписку и работают только через API с оплатой за токены.

Если сомневаетесь — оставьте anthropic/claude-opus-4-6. Это надёжный вариант, который точно работает. Потом всегда можно поменять в самом телеграм боте.

Важно: dmPolicy — кто может писать боту

В конфиге есть поле dmPolicy — оно определяет, кто может писать боту в личку. Допустимы только эти значения:

"allowlist" — бот отвечает только тем, чьи ID указаны в allowFrom. Рекомендуем для старта.
"pairing" — бот предлагает подтвердить доступ при первом сообщении (одобряете вручную)
"open" — бот отвечает всем (требует "allowFrom": ["*"])
"disabled" — бот не отвечает в личке вообще

⚠️

Не вписывайте туда ничего другого! Например, если написать "deny" или любое другое слово — gateway упадёт и бот перестанет работать. Исправить можно только вручную через nano ~/.openclaw/openclaw.json.

Для начала оставьте "allowlist" с вашим ID — это безопасно и надёжно.


Шаг 10: Подключение Claude

Вариант А: API-ключ (проще для VPS)

• Зайдите на console.anthropic.com
• Создайте API-ключ в разделе API Keys
• Пополните баланс (минимум $5)

Добавьте в openclaw.json:

{
  "providers": {
    "anthropic": {
      "apiKey": "sk-ant-xxxxxxxxxxxxxxxx"
    }
  }
}

Вариант Б: Подписка Claude Pro/Max

Если хотите использовать подписку вместо API — это дешевле и проще. Вы платите фиксированную сумму ($20 или $100/мес), а не за каждый запрос.

Процесс подключения подробно описан в отдельном гайде — Подключение и подписки Claude. Там пошагово: как получить токен, как вставить его на VPS, какие подводные камни.

Если коротко — вам нужно:

• Оформить подписку на claude.ai
• Установить Claude Code CLI на вашем компьютере (не на VPS)
• Получить токен командой claude setup-token
• На VPS вставить токен:

openclaw models auth paste-token --provider anthropic
ℹ️

📖 Полный гайд со скриншотами: Подключение и подписки Claude


Шаг 11: Запуск и проверка

Doctor на шаге 7 уже установил systemd-сервис и запустил OpenClaw. Перезапустим его с новым конфигом:

systemctl --user restart openclaw-gateway.service

Проверяем статус:

systemctl --user status openclaw-gateway.service

Если видите `active (running)` — gateway работает. Откройте Telegram, найдите своего бота и напишите что угодно. Бот должен ответить.

Полезные команды

Логи в реальном времени:

journalctl --user -u openclaw-gateway.service -f

Последние 30 строк логов:

journalctl --user -u openclaw-gateway.service --no-pager -n 30

Перезапуск:

systemctl --user restart openclaw-gateway.service

Остановка:

systemctl --user stop openclaw-gateway.service
💡

Автозапуск уже настроен. Doctor на шаге 7 установил systemd-сервис — OpenClaw автоматически запускается при перезагрузке сервера. PM2 не нужен.


Шаг 12: Базовая защита сервера

Сервер работает, бот отвечает. Но VPS доступен из интернета, и без защиты к нему может подключиться кто угодно. Настроим минимальную безопасность.

Файрвол (UFW)

Закрываем все порты кроме SSH:

apt install -y ufw
ufw allow 22/tcp
ufw enable

На вопрос "Proceed with operation?" — нажмите y. Теперь открыт только порт 22 (SSH). OpenClaw не использует входящие порты — он подключается к Telegram через polling (исходящее соединение), файрвол ему не мешает.

Fail2ban — защита от брутфорса

Блокирует IP-адреса, которые пытаются подобрать пароль к SSH:

apt install -y fail2ban
systemctl enable fail2ban

По умолчанию: 5 неудачных попыток → бан на 10 минут. Этого достаточно.

Автоматические обновления безопасности

Чтобы система сама ставила критические патчи:

apt install -y unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades

На вопрос — выберите Yes.

Готово. Файрвол включён, брутфорс блокируется, обновления безопасности приходят автоматически. Для одного OpenClaw-агента этого достаточно.


Шаг 13: Обновление OpenClaw

Когда выходит новая версия:

npm update -g openclaw
systemctl --user restart openclaw-gateway.service

Или попросите бота в Telegram:

Обнови OpenClaw до последней версии

Решение проблем

Бот не отвечает

Смотрим логи:

journalctl --user -u openclaw-gateway.service --no-pager -n 30

Частые причины:

• Нет botToken в конфиге (doctor мог удалить — подробнее)
dmPolicy имеет неправильное значение
• Токен Claude не подключён или истёк

Gateway не запускается

systemctl --user status openclaw-gateway.service

Если failed — смотрим ошибку в логах. Частые:

gateway.mode=local (current: unset) → добавьте "gateway": {"mode": "local"} в конфиг
Invalid config → проверьте JSON на валидность (запятые, кавычки, скобки)

OpenClaw не находится после установки

which openclaw
npm list -g openclaw

Если пусто — переустановите: npm install -g openclaw

Полный список ошибок

Подробный гайд по решению проблем со всеми частыми ошибками.


Чеклист

• ✅ VPS с Ubuntu куплен и доступен по SSH
• ✅ Система обновлена
• ✅ Node.js 22 установлен
• ✅ OpenClaw установлен
• ✅ Рабочая папка создана (openclaw setup)
• ✅ Диагностика пройдена (openclaw doctor --fix)
• ✅ Telegram-бот создан, токен получен
• ✅ Конфиг заполнен (botToken + User ID + модель)
• ✅ Claude подключён (API или подписка)
• ✅ Бот отвечает в Telegram
• ✅ Автозапуск через systemd работает
• ✅ Файрвол, fail2ban, автообновления настроены


Что дальше?

Бот работает 24/7, сервер защищён. Теперь можно:

[Установить Конструктор Фабрики](/start/install-constructor/) — готовые агенты, скиллы и воркфлоу
Настроить кроны — утренний план, вечерний отчёт, напоминания
Добавить скиллы — веб-поиск, Notion, генерация картинок
Настроить heartbeat — проактивные проверки и действия
Подключить группу — бот в рабочем чате команды

Всё это описано в основном гайде по установке и в базе знаний Фабрики.