Перейти к содержанию

Обзор развертывания OpenClaw на сервере

Предварительные требования

Для успешного развертывания приложения требуются следующие условия:

  • Операционная система: Debian 11+ или Ubuntu 20.04+.

  • Права доступа: Права суперпользователя (root) или доступ к sudo.

  • Порты:

    • 80/tcp (HTTP) — для проверки и перенаправления.

    • 443/tcp (HTTPS) — основной порт веб-интерфейса.

    • 22/tcp (SSH) — удаленное управление.

    • 41641/udp (Tailscale) — если включена поддержка VPN.

FDQN итоговой панели на домене hostkey.in

Шаблон домена для доступа к веб-интерфейсу формируется следующим образом:

Параметр Значение
Префикс openclaw
Домен hostkey.in
Полный шаблон openclaw{Server_ID_from_Invapi}.hostkey.in

Структура файлов и каталогов

Основные директории в системе:

  • /opt/openclaw-ansible — рабочая директория установщика.

  • /home/openclaw — домашний каталог пользователя openclaw.

  • /home/openclaw/.openclaw — конфигурационные файлы приложения.

  • /data/nginx — конфигурации и сертификаты Nginx.

  • /root/nginx — файлы Docker Compose для прокси-сервера.

Процесс установки приложения

Развертывание выполняется с помощью скрипта install.sh, который подготавливает окружение и запускает процесс установки через Ansible.

  1. Подготовка системы: Установка необходимых системных утилит (git, curl, sudo, vim и др.).

  2. Установка Docker: Настройка репозиториев и установка Docker CE.

  3. Создание пользователя: Создание системного пользователя openclaw с ограниченными правами sudo.

  4. Установка OpenClaw:

    • В режиме release: Установка через глобальный пакет pnpm install -g openclaw@latest.

    • В режиме development: Клонирование репозитория из GitHub, сборка из исходников и создание символьных ссылок.

  5. Настройка прокси: Развертывание Nginx с автоматическим получением SSL-сертификатов через Certbot.

Права доступа и безопасность

Безопасность системы обеспечивается следующими механизмами:

  • Брандмауэр (UFW): Установлен по умолчанию, разрешены только необходимые порты (22, 80, 443). Настроена изоляция Docker через after.rules.

  • Fail2Ban: Защита SSH от перебора паролей.

  • Ограничение прав пользователя: Пользователь openclaw имеет право выполнять только ограниченный набор команд systemctl и диагностику tailscale без ввода пароля.

  • Автоматические обновления: Включен пакет unattended-upgrades для автоматической установки обновлений безопасности.

Базы данных

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

Контейнеры Docker и их запуск

Для обеспечения работы веб-интерфейса через HTTPS используется один основной контейнер:

Имя образа Порты (в режиме host) Тома (volumes) Переменные окружения Политика перезапуска
jonasal/nginx-certbot:6.2.0-nginx1.31.0 80, 443 - nginx_secrets:/etc/letsencrypt
- /data/nginx/user_conf.d:/etc/nginx/user_conf.d
- /data/nginx/letsencrypt:/var/www/letsencrypt
CERTBOT_EMAIL=hkadm@hostkey.com
Параметры из /data/nginx/nginx-certbot.env
unless-stopped

Инструкция по обновлению приложения

Обновление выполняется через повторный запуск процесса установки или обновление пакетов:

  • Для Docker-контейнеров Nginx: переход в директорию /root/nginx и выполнение команд обновления образа.

  • Для самого OpenClaw: использование команды pnpm install -g openclaw@latest (в режиме release) или повторный запуск процесса сборки (в режиме development).

Настройки прав

Права доступа к критическим директориям настроены следующим образом:

Директория Владелец Права
/home/openclaw openclaw:openclaw 0755
/home/openclaw/.openclaw/credentials openclaw:openclaw 0700
/etc/docker/daemon.json root:root 0644

Расположение конфигурационных файлов и данных

  • Конфигурация OpenClaw: ~/.openclaw/config.yml (создается после выполнения команды onboard).

  • Логи приложения: ~/.openclaw/logs/.

  • Конфигурация Nginx: /data/nginx/user_conf.d/{domain}.conf.

Доступные порты для подключения

Порт Протокол Назначение
80 TCP HTTP (перенаправление на HTTPS)
443 TCP HTTPS (веб-интерфейс OpenClaw)
22 TCP SSH доступ

Запуск, остановка приложения

Управление сервисом Gateway осуществляется через systemctl:

  • Запуск: sudo systemctl start openclaw

  • Остановка: sudo systemctl stop openclaw

  • Перезапуск: sudo systemctl restart openclaw

  • Просмотр статуса: openclaw status или journalctl -u openclaw -f

Прокси серверы

В качестве прокси-сервера используется Nginx в связке с Certbot.

  • Nginx работает в режиме network_mode: host.

  • Настроен автоматический редирект с HTTP на HTTPS.

  • Реализована поддержка WebSocket для корректной работы интерфейса (заголовки Upgrade и Connection).

  • Сертификаты SSL управляются через контейнер nginx-certbot и хранятся в именованном томе Docker nginx_secrets.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×