Обзор развертывания Rocket.Chat на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие условия:
-
Операционная система: Ubuntu или AlmaLinux.
-
Права доступа: права суперпользователя (root) для установки системных пакетов и управления Docker.
-
Сетевые параметры:
-
Внутренний порт:
3000 -
Внешний порт:
443(HTTPS)
FDQN итоговой панели на домене hostkey.in¶
Доступ к приложению осуществляется по следующему шаблону доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | rocketchat |
| Домен | hostkey.in |
| Полный шаблон | rocketchat{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
Основные данные и конфигурации распределены по следующим путям:
-
/opt/rocketchat— рабочая директория приложения, содержащая файлы репозитория Rocket.Chat и файл окружения.env. -
/root/nginx— директория для управления прокси-сервером Nginx. -
/data/nginx/user_conf.d— директория с конфигурационными файлами виртуальных хостов Nginx.
Процесс установки приложения¶
Развертывание Rocket.Chat выполняется в несколько этапов:
-
Подготовка системы: устанавливается Docker и плагин
docker-compose-plugin. -
Загрузка файлов: из репозитория GitHub скачивается актуальная версия файлов конфигурации Rocket.Chat в директорию
/opt/rocketchat. -
Настройка окружения: создается файл
.envна основе параметров системы, который определяет версию приложения (8.1.0), версию базы данных MongoDB (8.2) и доменное имя. -
Запуск стека: развертывание контейнеров с помощью Docker Compose (используются файлы
compose.database.ymlиcompose.yml). -
Настройка проксирования: создание конфигурации Nginx для перенаправления трафика с порта
443на внутренний порт приложения3000.
Контейнеры Docker и их запуск¶
Приложение работает в составе нескольких контейнеров, управляемых через Docker Compose.
Основной стек Rocket.Chat¶
Для работы приложения используются два основных компонента:
-
Rocket.Chat: основной сервис приложения (версия
8.1.0). -
MongoDB: база данных (версия
8.2), обеспечивающая хранение данных приложения.
Прокси-сервер и SSL¶
Для обеспечения безопасного соединения используется дополнительный контейнер:
-
Nginx-Certbot (
jonasal/nginx-certbot:latest): -
Порты: использует сетевой режим
host. -
Тома (volumes):
-
nginx_secrets:/etc/letsencrypt— для хранения SSL-сертификатов. -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d— для конфигурационных файлов проксирования. -
Переменные окружения: указан адрес электронной почты
hkadm@hostkey.comдля управления сертификатами Let's Encrypt. -
Политика перезапуска:
unless-stopped.
Инструкция по обновлению приложения¶
Для обновления основного приложения необходимо выполнить следующие действия:
-
Перейти в рабочую директорию
/opt/rocketchat. -
Выполнить команду для подтягивания актуальных образов и перезапуска контейнеров: