Все Insights

Развёртывание OpenClaw на VPS для работы 24/7

Пошаговый гайд по установке OpenClaw на виртуальный сервер: выбор VPS, настройка Ubuntu, Node.js, Docker, systemd, nginx, SSL, файрвол, мониторинг, бэкапы и оценка стоимости.

Aravana··22 мин

Тип материала: research

Поделиться:TelegramXLinkedIn
Как вам материал?

Зачем разворачивать OpenClaw на VPS

Локальная установка OpenClaw на ноутбук или домашний компьютер имеет ограничение: агент работает только когда компьютер включён и подключён к интернету. Закрыли крышку ноутбука -- агент остановился. Пропал интернет -- автоматизации не выполняются. Для надёжной работы 24/7 нужен сервер, который доступен круглосуточно.

VPS (Virtual Private Server) -- оптимальный вариант. Это виртуальная машина в дата-центре с гарантированным аптаймом, стабильным интернетом и фиксированным IP-адресом. OpenClaw на VPS работает непрерывно: выполняет cron-задания, обрабатывает вебхуки, отвечает на сообщения в Telegram -- даже когда ваш ноутбук выключен.

Выбор VPS-провайдера

OpenClaw не требует мощного сервера -- основная вычислительная нагрузка лежит на LLM-провайдере (OpenAI, Anthropic, Google). Сам агент потребляет минимум ресурсов. Минимальные требования:

CPU: 1-2 ядра. OpenClaw -- однопоточное приложение, одного ядра достаточно для базовой работы. Два ядра -- если планируете мультиагентную систему.

RAM: 2 ГБ минимум, 4 ГБ рекомендуется. Основное потребление -- Node.js runtime и хранение контекста в памяти.

Диск: 20 ГБ SSD. Логи, память агента, конфигурации. SSD обязателен -- OpenClaw активно читает и пишет на диск.

Трафик: 1-2 ТБ в месяц. Запросы к LLM API, вебхуки, Telegram -- всё это текстовый трафик, объём минимальный.

Проверенные провайдеры (ценовой ориентир на март 2026):

Hetzner -- от 4 евро/месяц (CX22: 2 vCPU, 4 ГБ RAM, 40 ГБ SSD). Дата-центры в Германии и Финляндии. Отличное соотношение цена/качество.

DigitalOcean -- от $6/месяц (Basic: 1 vCPU, 1 ГБ RAM, 25 ГБ SSD). Простой интерфейс, хорошая документация.

Contabo -- от 5 евро/месяц. Больше ресурсов за меньшие деньги, но поддержка слабее.

AWS Lightsail -- от $5/месяц. Если вы уже в экосистеме AWS.

Начальная настройка сервера

Шаг 1: Подключение и обновление системы

# Подключение к серверу
ssh root@your-server-ip

# Обновление системы (Ubuntu 24.04 LTS рекомендуется)
apt update && apt upgrade -y

# Установка базовых утилит
apt install -y curl wget git htop ufw fail2ban

Шаг 2: Создание непривилегированного пользователя

Никогда не запускайте OpenClaw от root. Создайте отдельного пользователя:

# Создание пользователя
adduser openclaw
usermod -aG sudo openclaw

# Настройка SSH-ключа для нового пользователя
mkdir -p /home/openclaw/.ssh
cp ~/.ssh/authorized_keys /home/openclaw/.ssh/
chown -R openclaw:openclaw /home/openclaw/.ssh
chmod 700 /home/openclaw/.ssh
chmod 600 /home/openclaw/.ssh/authorized_keys

# Отключение входа по паролю (только SSH-ключи)
sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart sshd

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

OpenClaw работает на Node.js 20 LTS или выше:

# Установка Node.js 20 LTS через NodeSource
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
apt install -y nodejs

# Проверка версии
node --version  # v20.x.x
npm --version   # 10.x.x

Шаг 4: Установка Docker (опционально)

Docker нужен, если вы планируете запускать навыки в изолированных контейнерах или использовать Docker-версию OpenClaw:

# Установка Docker
curl -fsSL https://get.docker.com | sh
usermod -aG docker openclaw

# Проверка
docker --version
docker run hello-world

Установка OpenClaw

# Переключаемся на пользователя openclaw
su - openclaw

# Установка OpenClaw глобально
npm install -g @openclaw/core @openclaw/cli

# Проверка установки
openclaw --version

# Инициализация проекта
mkdir ~/openclaw-agent && cd ~/openclaw-agent
openclaw init

# Структура после инициализации:
# ~/openclaw-agent/
#   config.yaml      -- основная конфигурация
#   SOUL.md           -- поведение агента
#   USER.md           -- информация о пользователе
#   skills/           -- установленные навыки
#   memory/           -- база памяти
#   logs/             -- логи

Конфигурация

# config.yaml
agent:
  name: "my-assistant"
  model: "claude-sonnet-4-20250514"  # или другая модель
  
server:
  host: "127.0.0.1"  # ТОЛЬКО localhost
  port: 18789
  
llm:
  provider: "anthropic"
  api_key: "${ANTHROPIC_API_KEY}"
  
telegram:
  enabled: true
  token: "${TELEGRAM_BOT_TOKEN}"
  allowed_users: [123456789]  # ваш Telegram ID
  
memory:
  path: "./memory"
  
logging:
  level: "info"
  file: "./logs/agent.log"
  max_size: "100M"
  retention: "30d"

Запуск как systemd-сервис

Systemd обеспечивает автоматический запуск OpenClaw при загрузке сервера, перезапуск при падении и управление логами:

# Создание systemd unit-файла
sudo tee /etc/systemd/system/openclaw.service << 'EOF'
[Unit]
Description=OpenClaw AI Agent
After=network.target

[Service]
Type=simple
User=openclaw
Group=openclaw
WorkingDirectory=/home/openclaw/openclaw-agent
ExecStart=/usr/bin/node /usr/lib/node_modules/@openclaw/core/server.js
Restart=always
RestartSec=10
Environment=NODE_ENV=production
EnvironmentFile=/home/openclaw/.env

# Лимиты ресурсов
LimitNOFILE=65536
MemoryMax=2G
CPUQuota=150%

# Безопасность
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=read-only
ReadWritePaths=/home/openclaw/openclaw-agent
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

# Активация и запуск
sudo systemctl daemon-reload
sudo systemctl enable openclaw
sudo systemctl start openclaw

# Проверка статуса
sudo systemctl status openclaw

Файл переменных окружения

# /home/openclaw/.env
ANTHROPIC_API_KEY=sk-ant-...
TELEGRAM_BOT_TOKEN=...
OPENAI_API_KEY=sk-...
GITHUB_TOKEN=ghp_...
HA_TOKEN=...

# Защита файла
chmod 600 /home/openclaw/.env
chown openclaw:openclaw /home/openclaw/.env

Обратный прокси с nginx

Nginx нужен, если вы хотите принимать вебхуки от внешних сервисов (GitHub, Stripe, Telegram). Nginx обрабатывает SSL, проксирует запросы к OpenClaw и обеспечивает дополнительный уровень безопасности:

# Установка nginx
sudo apt install -y nginx

# Конфигурация
sudo tee /etc/nginx/sites-available/openclaw << 'EOF'
server {
    listen 80;
    server_name openclaw.your-domain.com;
    
    # Редирект на HTTPS (после настройки SSL)
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name openclaw.your-domain.com;
    
    # SSL-сертификаты (Let's Encrypt)
    ssl_certificate /etc/letsencrypt/live/openclaw.your-domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/openclaw.your-domain.com/privkey.pem;
    
    # Безопасные SSL-настройки
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    
    # Ограничение доступа к вебхукам
    location /webhook/ {
        proxy_pass http://127.0.0.1:18789;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        # Лимит запросов
        limit_req zone=webhooks burst=10 nodelay;
    }
    
    # Блокируем всё остальное
    location / {
        return 403;
    }
}
EOF

# Активация
sudo ln -s /etc/nginx/sites-available/openclaw /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

SSL/TLS с Let's Encrypt

Бесплатные SSL-сертификаты от Let's Encrypt -- стандарт для серверов:

# Установка Certbot
sudo apt install -y certbot python3-certbot-nginx

# Получение сертификата
sudo certbot --nginx -d openclaw.your-domain.com

# Автообновление (certbot добавляет cron автоматически)
sudo certbot renew --dry-run  # проверка

Настройка файрвола

# Базовая настройка ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing

# Разрешить SSH
sudo ufw allow 22/tcp

# Разрешить HTTP и HTTPS (для nginx)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# НЕ открывать порт 18789 -- OpenClaw доступен только через nginx

# Активация
sudo ufw enable
sudo ufw status verbose

Дополнительно настройте fail2ban для защиты от брутфорс-атак на SSH:

# fail2ban уже установлен, настроим jail для SSH
sudo tee /etc/fail2ban/jail.local << 'EOF'
[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600
EOF

sudo systemctl restart fail2ban

Мониторинг и логи

Просмотр логов

# Логи systemd
sudo journalctl -u openclaw -f  # в реальном времени
sudo journalctl -u openclaw --since "1 hour ago"  # за последний час

# Логи приложения
tail -f /home/openclaw/openclaw-agent/logs/agent.log

# Логи nginx
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log

Мониторинг ресурсов

Настройте простой мониторинг, который уведомит вас в Telegram, если сервер перегружен:

# /home/openclaw/scripts/health-check.sh
#!/bin/bash

CPU=$(top -bn1 | grep 'Cpu(s)' | awk '{print $2}')
MEM=$(free | awk '/Mem:/ {printf "%.1f", $3/$2 * 100}')
DISK=$(df -h / | awk 'NR==2 {print $5}' | tr -d '%')

ALERT=""

if (( $(echo "$CPU > 80" | bc -l) )); then
  ALERT+="CPU: ${CPU}%\n"
fi

if (( $(echo "$MEM > 85" | bc -l) )); then
  ALERT+="RAM: ${MEM}%\n"
fi

if [ "$DISK" -gt 90 ]; then
  ALERT+="Disk: ${DISK}%\n"
fi

# Проверка, что OpenClaw запущен
if ! systemctl is-active --quiet openclaw; then
  ALERT+="OpenClaw is DOWN!\n"
fi

if [ -n "$ALERT" ]; then
  curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \
    -d chat_id="YOUR_CHAT_ID" \
    -d text="Server Alert:\n${ALERT}"
fi

# Добавление в cron (каждые 5 минут)
crontab -e
# Добавить строку:
*/5 * * * * /home/openclaw/scripts/health-check.sh

Автоматический перезапуск при падении

Systemd уже настроен на автоматический перезапуск (Restart=always в unit-файле). Если процесс OpenClaw падает, systemd перезапустит его через 10 секунд (RestartSec=10). Но стоит добавить watchdog-проверку:

# /home/openclaw/scripts/watchdog.sh
#!/bin/bash

# Проверяем, что OpenClaw отвечает
HTTP_CODE=$(curl -s -o /dev/null -w '%{http_code}' http://127.0.0.1:18789/health)

if [ "$HTTP_CODE" != "200" ]; then
  echo "$(date): OpenClaw health check failed (HTTP $HTTP_CODE), restarting..." \
    >> /home/openclaw/openclaw-agent/logs/watchdog.log
  sudo systemctl restart openclaw
fi

# Cron: каждые 2 минуты
# */2 * * * * /home/openclaw/scripts/watchdog.sh

Стратегия бэкапов

Критически важно бэкапить память агента и конфигурации. Без бэкапов потеря сервера означает потерю всей истории взаимодействий и настроек.

# /home/openclaw/scripts/backup.sh
#!/bin/bash

DATE=$(date +%Y%m%d)
BACKUP_DIR="/home/openclaw/backups"

mkdir -p $BACKUP_DIR

# Бэкап памяти, конфигов и SOUL.md
tar -czf $BACKUP_DIR/openclaw-$DATE.tar.gz \
  /home/openclaw/openclaw-agent/memory/ \
  /home/openclaw/openclaw-agent/config.yaml \
  /home/openclaw/openclaw-agent/SOUL.md \
  /home/openclaw/openclaw-agent/USER.md \
  /home/openclaw/openclaw-agent/skills/

# Удаление бэкапов старше 30 дней
find $BACKUP_DIR -name '*.tar.gz' -mtime +30 -delete

# Опционально: копирование на внешнее хранилище
# rclone copy $BACKUP_DIR/openclaw-$DATE.tar.gz remote:backups/openclaw/

echo "$(date): Backup completed" >> $BACKUP_DIR/backup.log

# Cron: ежедневно в 3:00
# 0 3 * * * /home/openclaw/scripts/backup.sh

Оценка стоимости

Итоговая стоимость работы OpenClaw на VPS складывается из двух компонентов: аренда сервера и расходы на LLM API.

Аренда VPS: $4-12 в месяц в зависимости от провайдера и конфигурации. Для одного агента достаточно самого дешёвого тарифа. Для мультиагентной системы (4-5 агентов) -- средний тариф.

LLM API: зависит от интенсивности использования и выбранной модели. Ориентировочно: Claude Sonnet 4 -- $3 за 1 млн входных токенов, $15 за 1 млн выходных. При 50 запросах в день средней длины -- $30-80 в месяц. При 200 запросах -- $100-300.

Домен и SSL: домен -- $10-15 в год. SSL от Let's Encrypt -- бесплатно.

Итого: минимальная конфигурация (VPS + умеренное использование API) -- $35-50 в месяц. Продвинутая (мощный VPS + интенсивное использование) -- $100-350 в месяц.

Усиление безопасности для продакшена

# Дополнительные меры безопасности

# 1. Автоматические обновления безопасности
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

# 2. Смена порта SSH (опционально)
sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config
sudo ufw allow 2222/tcp
sudo ufw delete allow 22/tcp
sudo systemctl restart sshd

# 3. Ограничение sudo
echo 'openclaw ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart openclaw, /usr/bin/systemctl status openclaw' \
  | sudo tee /etc/sudoers.d/openclaw

# 4. Аудит-лог всех команд
sudo apt install -y auditd
sudo auditctl -a always,exit -F arch=b64 -S execve -F uid=1001 -k openclaw-commands

Чеклист перед запуском

Перед тем как считать деплой завершённым, пройдите по контрольному списку:

Безопасность: SSH только по ключам. Пароль отключён. fail2ban настроен. ufw активен. OpenClaw привязан к 127.0.0.1. Порт 18789 закрыт снаружи. Секреты в .env с правами 600. OpenClaw запущен от непривилегированного пользователя.

Надёжность: systemd с автоперезапуском. Watchdog-скрипт. Бэкапы по расписанию. Мониторинг с алертами в Telegram.

Доступность: nginx настроен. SSL-сертификат получен. Вебхуки принимаются. Telegram-бот отвечает.

Итоги

Развёртывание OpenClaw на VPS -- это одноразовая процедура, которая занимает 1-2 часа. После настройки сервер работает автономно: агент отвечает на сообщения, выполняет автоматизации и обрабатывает вебхуки 24/7. Стоимость -- от $35 в месяц. Главное -- не пренебрегать безопасностью: закрыть порты, настроить файрвол, использовать непривилегированного пользователя и хранить секреты в переменных окружения.

Хотите получать подобные материалы раньше?

Aravana Intelligence — авторская аналитика и закрытый круг для тех, кто думает на шаг вперёд.

Узнать про Intelligence

Не пропускайте важное

Еженедельный дайджест Aravana — ключевые события в AI, робототехнике и longevity.

Похожие материалы

Как начать пользоваться Midjourney: генерация картинок AI

Midjourney — самый популярный AI-генератор изображений. Фотореализм, арт, иллюстрации, логотипы. Показываем, как начать — от регистрации до первой картинки.

·6 мин·Выбор редакции

Как установить Ollama: запуск AI-моделей на своём компьютере

Ollama — самый простой способ запустить AI-модели локально. Llama, Mistral, Qwen, DeepSeek — всё работает на вашем компьютере, без интернета, бесплатно и приватно.

·7 мин·Выбор редакции

Как начать пользоваться ChatGPT: пошаговая инструкция для Mac, Windows, iPhone и Android

Регистрация, установка, первый запрос — всё, что нужно, чтобы начать общаться с самой популярной нейросетью в мире. Без технических знаний, за 5 минут.

·7 мин·Выбор редакции