Перейти к содержанию

Обзор развертывания 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

  • Для запуска или обновления:

    docker compose -f compose.database.yml -f compose.yml -p rocketchat up -d
    
    (Примечание: Выполняйте из директории /opt/rocketchat)

  • Для остановки:

    docker compose -f compose.database.yml -f compose.yml -p rocketchat down
    

Стопка прокси-сервера Nginx

  • Для запуска или обновления:

    docker compose -p nginx up -d
    
    (Примечание: Выполняйте из директории /root/nginx)

  • Для остановки:

    docker compose -p nginx down
    

Расположение файлов конфигурации и данных

В следующей таблице обобщены ключевые места расположения конфигурационных данных:

Компонент Путь к файлу / директория Описание
Окружение 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.
question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×