Обзор развертывания BrainyCP на сервере¶
Предварительные требования¶
Перед развертыванием приложения убедитесь, что сервер соответствует следующим требованиям:
-
Операционная система: Linux-дистрибутив, совместимый с Docker.
-
Права доступа: Требуется доступ root или учетная запись с правами
sudoдля управления Docker и системными директориями. -
Доменная зона: Развертывание настроено для доменной зоны
hostkey.in. -
Требуемые порты:
-
Порт
8000: Внутренняя коммуникация для приложения BrainyCP. -
Порт
443: Внешний безопасный (HTTPS) доступ к веб-интерфейсу.
FQDN конечной панели¶
Полное доменное имя (FQDN) для доступа к панели следует специфической конвенции именования, определенной в конфигурации:
-
Формат:
brainycp<Server ID>.hostkey.in:443 -
Заменяемая переменная
<Server ID>представляет уникальный идентификатор для конкретного экземпляра сервера. -
Трафик маршрутизируется через Nginx по протоколу HTTPS.
Структура файлов и директорий¶
Приложение и его вспомогательные компоненты используют следующую структуру директорий:
-
Установка приложения:
/usr/local/brainycp -
Расположение скрипта установки:
/root/install.sh -
Директория конфигурации Nginx:
/root/nginx -
Конфигурация пользователя Nginx:
/data/nginx/user_conf.d -
Секреты Let's Encrypt (Docker Volume): Подключение к
/etc/letsencryptвнутри контейнера.
Процесс установки приложения¶
Приложение BrainyCP устанавливается с помощью специального скрипта установки, предоставляемого разработчиком:
-
Скрипт установки загружается с
http://core.brainycp.com/install.sh. -
Скрипт сохраняется в расположение
/root/install.sh. -
Выполнение установщика размещает бинарные файлы приложения и начальные файлы конфигурации в директории
/usr/local/brainycp. -
Приложение конфигурируется для прослушивания внутреннего порта
8000.
Docker-контейнеры и их развертывание¶
Решение для обратного прокси и управления SSL развертывается с помощью Docker Compose. Развертывание состоит из следующих сервисов:
-
Образ:
jonasal/nginx-certbot:latest -
Политика перезапуска:
unless-stopped -
Режим сети:
host -
Переменные окружения:
-
CERTBOT_EMAIL: Установлено значениеhkadm@hostkey.com -
Томы (Volumes):
-
nginx_secrets: Внешний том, подключенный к/etc/letsencryptдля хранения SSL-сертификатов. -
Путь на хосте
/data/nginx/user_conf.dмонтируется в/etc/nginx/user_conf.dвнутри контейнера.
Конфигурация развертывания определена в файле docker-compose, расположенном по адресу /root/nginx/compose.yml.
Прокси-серверы¶
Приложение обслуживается прокси-сервером Nginx, управляемым через Docker, для обработки терминации SSL и маршрутизации:
-
Движок прокси: Nginx, работающий внутри Docker-контейнера.
-
Управление SSL: Автоматизировано через образ
nginx-certbotдля обработки сертификатов Let's Encrypt. -
Конфигурация маршрутизации:
-
Прокси прослушивает внешний порт
443. -
Трафик пересылается на приложение, запущенное локально на
127.0.0.1:8002(Примечание: Скрипт конфигурации обновляет параметр прокси-пересылки на этот порт, отличный от внутреннего порта приложения8000, указанного в базовой конфигурации, что указывает на специфическую схему привязки прокси и приложения). -
Пользовательские домены: Файлы конфигурации для пользовательских доменов хранятся в
/data/nginx/user_conf.dс паттерном именованияbrainycp<Server ID>.hostkey.in.conf.
Настройки разрешений¶
К следующим критическим директориям и файлам применяются следующие настройки разрешений:
| Путь | Владелец | Группа | Режим | Описание |
|---|---|---|---|---|
/root/nginx | root | root | 0755 | Директория для конфигурации Docker Compose для Nginx. |
/root/nginx/compose.yml | root | root | 0644 | Файл определения Docker Compose. |
/usr/local/brainycp | root | root | Default | Директория установки приложения. |
Расположение файлов конфигурации и данных¶
Ключевые файлы конфигурации и места хранения данных следующие:
-
Определение Docker Compose:
/root/nginx/compose.yml -
Переменные окружения Nginx:
/data/nginx/nginx-certbot.env -
Конфигурация сайта Nginx:
/data/nginx/user_conf.d/brainycp<Server ID>.hostkey.in.conf -
Данные приложения: Хранятся внутри директории приложения
/usr/local/brainycp.
Доступные порты для подключения¶
Следующие порты настроены для развертывания:
-
Порт 443: Внешний доступ через HTTPS (Nginx Proxy).
-
Порт 8000: Внутренний порт, используемый приложением BrainyCP.
-
Порт 8002: Внутренний порт, используемый прокси-сервером Nginx для пересылки запросов на бэкенд (как настроено в скрипте прокси).
Запуск, остановка и обновление¶
Сервис прокси управляется с помощью команд Docker Compose, выполняемых из директории /root/nginx:
-
Запуск или перезапуск сервисов:
-
Остановка сервисов:
-
Обновление сервисов: Для обновления образа прокси или конфигурации, загрузите последний образ и перезапустите контейнеры:
Для обновления самого приложения BrainyCP скрипт установщика по адресу /root/install.sh должен быть выполнен повторно с соответствующими флагами, предоставленными вендором, либо бинарные файлы приложения в /usr/local/brainycp должны быть заменены вручную.