Обзор развертывания 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.
-
Подготовка системы: Установка необходимых системных утилит (
git,curl,sudo,vimи др.). -
Установка Docker: Настройка репозиториев и установка Docker CE.
-
Создание пользователя: Создание системного пользователя
openclawс ограниченными правамиsudo. -
Установка OpenClaw:
-
В режиме
release: Установка через глобальный пакетpnpm install -g openclaw@latest. -
В режиме
development: Клонирование репозитория из GitHub, сборка из исходников и создание символьных ссылок.
-
-
Настройка прокси: Развертывание 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и хранятся в именованном томе Dockernginx_secrets.