Обзор развертывания Rocket.Chat на сервере¶
Предварительные требования и основные условия¶
Для успешного развертывания Rocket.Chat на сервере должны быть выполнены следующие условия:
-
Операционная система: AlmaLinux или Ubuntu (требуется установка через Docker).
-
Привилегии: Необходим доступ root для конфигурации и управления контейнерами.
-
Настройка домена: Сервер должен быть настроен для разрешения полностью квалифицированного доменного имени (FQDN) в формате
rocketchat[Server ID].hostkey.in. -
Порты:
-
Внутренняя коммуникация: порт
3000(используется приложением Rocket.Chat). -
Внешний доступ: порт
443(HTTPS через прокси-сервер Nginx).
FQDN финальной панели управления¶
Приложение доступно по следующей структуре полностью квалифицированного доменного имени:
-
Формат:
rocketchat[Server ID].hostkey.in:443 -
Пример: Если ID сервера равен
123, адрес будетrocketchat123.hostkey.in.
Структура файлов и каталогов¶
В процессе развертывания используются определенные директории для файлов конфигурации, хранения данных и сертификатов:
-
Данные приложения:
/opt/rocketchat -
Содержит репозиторий
rocketchat-compose. -
Хранит файл конфигурации
.env. -
Конфигурация Nginx:
-
Директория:
/root/nginx(содержитcompose.yml). -
Файлы конфигурации:
/data/nginx/user_conf.d/rocketchat[Server ID].hostkey.in.conf. -
SSL-сертификаты: Управляются через том
nginx_secrets, смонтированный по пути/etc/letsencryptвнутри контейнера Nginx. -
Среда Nginx:
/data/nginx/nginx-certbot.env.
Процесс установки приложения¶
Rocket.Chat развертывается с использованием Docker Compose со следующими параметрами версий:
-
Версия Rocket.Chat:
8.1.0 -
Версия MongoDB:
8.2 -
Репозиторий: В ходе развертывания официальный репозиторий
rocketchat-composeклонируется с адресаhttps://github.com/RocketChat/rocketchat-compose.gitв директорию/opt/rocketchat. -
Файл окружения: Файл
.envгенерируется внутри/opt/rocketchatи содержит определения версий и корневой URL домена.
Контейнеры Docker и их развертывание¶
Система использует две основные стопки Docker Compose:
Стопка Rocket.Chat
-
Источник проекта:
/opt/rocketchat -
Файлы Compose:
-
compose.database.yml(сервис MongoDB) -
compose.yml(приложение Rocket.Chat) -
Выполнение: Стопка запускается с использованием плагина Docker Compose V2.
Стопка Nginx и Certbot
-
Источник проекта:
/root/nginx -
Образ:
jonasal/nginx-certbot:latest -
Назначение: Обработка терминации SSL через Certbot и роль обратного прокси к внутреннему сервису Rocket.Chat.
-
Режим сети: Host.
Прокси-серверы¶
Nginx настроен как обратный прокси для обработки внешнего трафика и терминации SSL.
-
Конфигурация прокси: Сервер Nginx слушает порт
443и пересылает запросы на внутренний сервис Rocket.Chat по адресу127.0.0.1:3000. -
Интеграция с Certbot: Контейнер Nginx включает Certbot для автоматического получения и продления SSL-сертификатов для домена.
-
Файл конфигурации: Правило
proxy_passопределяется в файле/data/nginx/user_conf.d/rocketchat[Server ID].hostkey.in.conf. -
Переменная окружения: Переменная
CERTBOT_EMAILустановлена в значениеhkadm@hostkey.comдля уведомлений о сертификатах.
Базы данных¶
Rocket.Chat использует MongoDB в качестве backend базы данных.
-
Версия:
8.2 -
Метод развертывания: Управляется через Docker Compose с использованием файла
compose.database.yml. -
Расположение: Данные хранятся внутри системы томов Docker, связанной со стопкой Rocket.Chat в директории
/opt/rocketchat.
Доступные порты для подключения¶
-
Порт 3000: Внутренний порт приложения Rocket.Chat (доступен только внутри сети контейнеров или на localhost).
-
Порт 443: Внешний порт для безопасного доступа через HTTPS с использованием прокси-сервера Nginx.
Настройки прав доступа¶
Права доступа к файлам и директориям устанавливаются в процессе развертывания для обеспечения безопасности и корректной работы:
-
/opt/rocketchat:
-
Владелец:
root -
Группа:
root -
Режим: Применяются стандартные права доступа для директорий.
-
/opt/rocketchat/.env:
-
Владелец:
root -
Группа:
root -
Режим:
0644(только чтение для группы/остальных). -
/root/nginx:
-
Владелец:
root -
Группа:
root -
Режим:
0755. -
/root/nginx/compose.yml:
-
Владелец:
root -
Группа:
root -
Режим:
0644.
Запуск, остановка и обновление¶
Управление сервисами осуществляется с помощью команд Docker Compose, нацеленных на конкретные директории проектов.
Стопка Rocket.Chat
-
Для запуска или обновления:
(Примечание: Выполняйте из директории/opt/rocketchat) -
Для остановки:
Стопка прокси-сервера Nginx
-
Для запуска или обновления:
(Примечание: Выполняйте из директории/root/nginx) -
Для остановки:
Расположение файлов конфигурации и данных¶
В следующей таблице обобщены ключевые места расположения конфигурационных данных:
| Компонент | Путь к файлу / директория | Описание |
|---|---|---|
| Окружение Rocket.Chat | /opt/rocketchat/.env | Определяет версии, домен и настройки портов. |
| Исходный код Rocket.Chat | /opt/rocketchat/ | Содержит файлы compose.yml и compose.database.yml. |
| Определение Compose для Nginx | /root/nginx/compose.yml | Определяет контейнеры Nginx и Certbot. |
| Конфигурация сайта Nginx | /data/nginx/user_conf.d/rocketchat[Server ID].hostkey.in.conf | Настройка proxy_pass. |
| Окружение Nginx | /data/nginx/nginx-certbot.env | Переменные окружения для стопки Nginx. |