Обзор развертывания Openclaw на сервере¶
Предварительные требования и базовые условия¶
Для развертывания Openclaw требуется среда Linux-сервера с определенными системными пакетами и настройками пользователей. На хост-системе должны присутствовать следующие компоненты:
-
Операционная система: Дистрибутив на базе Ubuntu или Debian (подразумевается использованием
apt). -
Привилегии: Для установки, управления службами и настройки межсетевого экрана требуются права root или привилегии
sudo. -
Системные пакеты: Должны быть установлены или требуются следующие пакеты:
-
ansible -
ca-certificates -
curl -
dbus-user-session -
git -
sudo -
Docker: Docker Engine должен быть установлен и работать корректно.
-
Учетная запись пользователя: Создается выделенный системный пользователь с именем
openclawс домашним каталогом в/home/openclaw. -
Сеть: Порты 80 и 443 должны быть доступны для обратного прокси-сервера. Порт 18789 используется внутренне для Openclaw Gateway.
FQDN финальной панели¶
Приложение доступно по Полному доменному имени (FQDN), структура которого выглядит следующим образом:
-
Формат домена:
<prefix><Server ID>.hostkey.in -
Префикс:
openclaw -
Зона:
hostkey.in -
Пример: Если Server ID равен
123, домен будетopenclaw123.hostkey.in. -
Протокол доступа: Принудительно используется HTTPS (порт 443). HTTP (порт 80) перенаправляет на HTTPS.
Структура файлов и каталогов¶
Для развертывания используются определенные каталоги для конфигурации, данных и сертификатов. Структура организована следующим образом:
-
Каталог установки Openclaw:
/opt/openclaw-ansible -
Содержит клонированный репозиторий из
https://github.com/openclaw/openclaw-ansible.git. -
Ветка:
main. -
Домашний каталог пользователя Openclaw:
/home/openclaw -
Принадлежит пользователю
openclawи группеopenclaw. -
Содержит данные приложения и конфигурацию.
-
Каталог конфигурации Nginx:
/root/nginx -
Содержит
compose.ymlдля контейнера Nginx/Certbot. -
Каталог данных Nginx:
/data/nginx -
/data/nginx/user_conf.d: Содержит пользовательские конфигурации блоков сервера Nginx. -
/data/nginx/letsencrypt: Каталог для файлов вызова (challenge) Let's Encrypt. -
/data/nginx/nginx-certbot.env: Переменные окружения для контейнера Nginx. -
SSL-сертификаты:
/etc/letsencrypt -
Управляются через Docker-том
nginx_secrets. -
Сертификаты хранятся в
/etc/letsencrypt/live/<final_domain>/. -
Хранилище токена шлюза:
~/.ansible/openclaw/gateway-<server_id>.token -
Расположен в домашнем каталоге пользователя, выполняющего развертывание (обычно
/root).
Процесс установки приложения¶
Приложение Openclaw устанавливается с помощью скрипта, расположенного в каталоге /opt/openclaw-ansible. Процесс включает клонирование репозитория, установку зависимостей и запуск установщика.
-
Клонирование репозитория:
-
Репозиторий клонируется в
/opt/openclaw-ansibleс помощью Git. -
Ветка:
main. -
Установка зависимостей:
-
Коллекции Ansible устанавливаются командой
ansible-galaxy collection install -r requirements.yml. -
Запуск установщика:
-
Выполняется скрипт
./run-playbook.shс флагом-e ansible_become=true. -
Переменные окружения, установленные во время установки:
-
NODE_OPTIONS:--max-old-space-size=768 -
npm_config_jobs:2 -
npm_config_loglevel:warn -
CI:true -
PNPM_HOME:/home/openclaw/.local/share/pnpm
-
-
Конфигурация начальной настройки (Onboarding):
-
Команда
openclaw onboardвыполняется в неинтерактивном режиме со следующими параметрами:-
--mode local -
--auth-choice skip -
--gateway-auth token -
--gateway-token <TOKEN> -
--gateway-port 18789 -
--gateway-bind loopback -
--skip-bootstrap -
--skip-skills -
--skip-health -
--accept-risk
-
-
Патчинг конфигурации:
-
Конфигурация шлюза патчится для включения поддержки обратного прокси HTTPS, установки доверенных прокси-серверов и определения разрешенных источников для интерфейса управления (Control UI).
Права доступа и безопасность¶
Меры безопасности реализуются через изоляцию пользователей, правила межсетевого экрана и аутентификацию на основе токенов.
-
Изоляция пользователей:
-
Служба Openclaw работает от имени выделенного пользователя
openclaw. -
Для пользователя
openclawвключена функция lingering (сохранение сессии) черезloginctl enable-linger openclaw. -
Межсетевой экран (UFW):
-
Если UFW установлен, порты 80 и 443 разрешены для TCP-трафика.
-
Межсетевой экран перезагружается после изменения правил.
-
Аутентификация:
-
Openclaw Gateway использует аутентификацию на основе токенов.
-
Токен безопасно хранится в
/root/openclaw-gateway-token.txtс правами доступа0600. -
Аутентификация Tailscale отключена (
allowTailscale: false). -
Доверенные прокси-серверы:
-
Шлюз доверяет прокси-серверам по адресам
127.0.0.1и::1.
Базы данных¶
В предоставленных данных конфигурации не указана выделенная служба базы данных (например, PostgreSQL или MySQL) для Openclaw. Приложение, по-видимому, хранит состояние и конфигурацию локально в каталоге /home/openclaw и использует файловую систему для хранения токенов. Строки подключения или настройки базы данных в исходных файлах отсутствуют.
Контейнеры Docker и их развертывание¶
Docker используется для развертывания обратного прокси-сервера Nginx и Certbot для управления SSL-сертификатами.
-
Образ контейнера:
jonasal/nginx-certbot:6.2.0-nginx1.31.0 -
Метод развертывания: Docker Compose
-
Расположение файла Compose:
/root/nginx/compose.yml -
Режим сети:
host -
Тома (Volumes):
-
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. -
RENEWAL_INTERVAL: Установлено значение8dв файле окружения. -
Команда запуска:
-
docker compose up -dвыполняется в/root/nginx.
Прокси-серверы¶
Nginx действует как обратный прокси-сервер для Openclaw Gateway, обрабатывая завершение SSL-сессий и перенаправление HTTP на HTTPS.
-
Файл конфигурации:
/data/nginx/user_conf.d/<final_domain>.conf -
Блок сервера HTTP:
-
Слушает порт 80.
-
Предоставляет файлы вызова Let's Encrypt из
/var/www/letsencrypt. -
Перенаправляет весь остальной трафик на HTTPS.
-
Блок сервера HTTPS:
-
Слушает порт 443 с включенным SSL.
-
SSL-сертификаты:
-
Полная цепочка:
/etc/letsencrypt/live/<final_domain>/fullchain.pem -
Закрытый ключ:
/etc/letsencrypt/live/<final_domain>/privkey.pem -
Доверенный сертификат:
/etc/letsencrypt/live/<final_domain>/chain.pem
-
-
Параметры SSL:
-
DH-параметры:
/etc/letsencrypt/dhparams/dhparam.pem -
Заголовок HSTS:
max-age=31536000; includeSubDomains
-
-
Настройки проксирования:
-
Проксирует запросы на
http://127.0.0.1:18789. -
Версия HTTP: 1.1.
-
Заголовки:
Upgrade,Connection,Host,X-Forwarded-Host,X-Forwarded-Proto,X-Forwarded-Port,X-Real-IP,X-Forwarded-For. -
Таймауты: Таймауты чтения и отправки установлены на 3600 секунд.
-
Буферизация: Отключена.
-
Перенаправления: Отключены.
-
Настройки прав доступа¶
Права доступа к файлам и каталогам строго определены для обеспечения безопасности и корректной работы.
| Путь | Владелец | Группа | Режим | Описание |
|---|---|---|---|---|
/root/nginx | root | root | 0755 | Каталог compose Nginx |
/data/nginx | root | root | 0755 | Каталог данных Nginx |
/data/nginx/user_conf.d | root | root | 0755 | Каталог конфигурации Nginx |
/data/nginx/letsencrypt/.well-known/acme-challenge | root | root | 0755 | Каталог вызовов Let's Encrypt |
/data/nginx/nginx-certbot.env | root | root | 0644 | Файл окружения Nginx |
/root/nginx/compose.yml | root | root | 0644 | Файл Docker Compose |
/data/nginx/user_conf.d/<final_domain>.conf | root | root | 0644 | Конфигурация блока сервера Nginx |
/home/openclaw | openclaw | openclaw | 0755 | Домашний каталог пользователя Openclaw |
/root/openclaw-gateway-token.txt | root | root | 0600 | Файл токена шлюза |
/etc/sudoers.d/openclaw-path | root | root | 0440 | Конфигурация Sudoers |
/etc/systemd/system/openclaw-gateway.service | root | root | 0644 | Файл службы Systemd |
Расположение файлов конфигурации и данных¶
-
Конфигурация Openclaw Gateway: Управляется через
openclaw config patchи хранится в каталоге/home/openclaw. -
Конфигурация Nginx:
/data/nginx/user_conf.d/<final_domain>.conf -
Docker Compose:
/root/nginx/compose.yml -
Переменные окружения:
/data/nginx/nginx-certbot.env -
SSL-сертификаты:
/etc/letsencrypt/live/<final_domain>/ -
Токен шлюза:
/root/openclaw-gateway-token.txt
Доступные порты для подключения¶
-
Порт 80 (HTTP): Используется для вызовов Let's Encrypt и перенаправления на HTTPS.
-
Порт 443 (HTTPS): Основной порт доступа к веб-интерфейсу Openclaw через Nginx.
-
Порт 18789: Внутренний порт для Openclaw Gateway. Привязан к
loopback(127.0.0.1) и не доступен напрямую из внешних сетей.
Запуск, остановка и обновление¶
Openclaw Gateway управляется как служба systemd.
-
Имя службы:
openclaw-gateway.service -
Запуск службы:
-
Остановка службы:
-
Перезапуск службы:
-
Включение при загрузке:
-
Проверка статуса:
-
Перезагрузка демона:
Для контейнера прокси-сервера Nginx:
-
Запуск/Обновление:
-
Проверка статуса: