/
InvestClub 🐹

Установка 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

Подойдёт любой провайдер: Timeweb, Hetzner, DigitalOcean, Beget — принцип тот же.

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

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

Выбор локации и тарифа на 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 LTS. Все команды в этом гайде написаны под Ubuntu, OpenClaw тестируется на Ubuntu, и 90% решений в интернете — тоже под Ubuntu. Не усложняйте себе жизнь.

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

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

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

Письмо с данными сервера — 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 и ввод пароля

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


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

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

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

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

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

  1. Сразу будет полезно отключить Privacy Settings для работы агента в группах Настройки бота Group Privacy — отключаем

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


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

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

apt install nano -y

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

nano ~/openclaw-factory/.openclaw/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)

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

  1. Нажмите Ctrl+O — это команда “сохранить”
  2. Нажмите Enter — подтвердить имя файла
  3. Нажмите 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)

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

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

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

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

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

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

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

  1. Оформить подписку на claude.ai
  2. Установить Claude Code CLI на вашем компьютере (не на VPS)
  3. Получить токен командой claude setup-token
  4. На 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

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

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


Чеклист

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

Что дальше?

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

  • Настроить кроны — утренний план, вечерний отчёт, напоминания
  • Добавить скиллы — веб-поиск, Notion, генерация картинок
  • Настроить heartbeat — проактивные проверки и действия
  • Подключить группу — бот в рабочем чате команды

📌 Данная инструкция основана на примере сервера Beget.

НА ЭТОЙ СТРАНИЦЕ