Устанавливаем Rocket.Chat на платформе Docker, настраиваем обратный прокси для HTTPS-доступа и выполняем интеграцию с Active Directory
устанавливаем Docker Engine - Community и Docker Compose, как рассказывается в этой статье
создаем папку для хранения параметров развертывания контейнеров
mkdir /etc/docker/rocketchat
создаем файл /etc/docker/rocketchat/docker-compose.yml с параметрами развертывания контейнеров
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | version: '3.7' networks: net: ipam: config: - subnet: 192.168.102.1/24 volumes: db: conf: app: proxy: services: db: container_name: rocketchat_db image: mongo:latest networks: - net volumes: - db:/data/db - conf:/data/configdb command: mongod --replSet rs0 restart: always app: depends_on: - db container_name: rocketchat_app image: rocket.chat:latest networks: - net volumes: - app:/app/uploads environment: - PORT=3000 - ROOT_URL=https://chat.domain.com/ - MONGO_URL=mongodb://db/rocketchat - MONGO_OPLOG_URL=mongodb://db/local restart: always proxy: depends_on: - app container_name: rocketchat_proxy image: httpd networks: - net ports: - 80:80 - 443:443 volumes: - proxy:/usr/local/apache2 restart: always |
создаем контейнеры, разделы и сети
docker-compose -f /etc/docker/rocketchat/docker-compose.yml up --no-start
запускаем контейнер базы данных
docker container start rocketchat_db
подключаемся к контейнеру
docker exec -t -i rocketchat_db bash
запускаем интерфейс командной строки MongoDB
mongo
выполняем инициализацию набора репликации
rs.initiate({ _id : "rs0", members: [{ _id: 0, host: "localhost:27017" }] })
проверяем параметры и статус репликации
rs.conf()
rs.status()
выходим из интерфейса командной строки MongoDB
exit
отключаемся от контейнера базы данных
exit
запускаем контейнер приложения
docker container start rocketchat_app
запускаем контейнер прокси
docker container start rocketchat_proxy
настраиваем Apache контейнера прокси так же, как в этой статье, за исключением следующего:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | LoadModule rewrite_module modules/mod_rewrite.so LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so <VirtualHost *:80> Redirect permanent / https://chat.domain.com/ </VirtualHost> <VirtualHost *:443> SSLEngine on SSLCertificateKeyFile /usr/local/apache2/conf/private.key SSLCertificateFile /usr/local/apache2/conf/public.cer SSLCertificateChainFile /usr/local/apache2/conf/chain.cer RewriteEngine On RewriteCond %{HTTP:Upgrade} =websocket [NC] RewriteRule /(.*) ws://app:3000/$1 [P,L] RewriteCond %{HTTP:Upgrade} !=websocket [NC] RewriteRule /(.*) http://app:3000/$1 [P,L] ProxyPassReverse / http://app:3000/ </VirtualHost> |
проходим в браузере по ссылке https://chat.domain.com
в разделе "Администрирование - Настройки - Протокол LDAP" выполняем настройку интеграции с Active Directory
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | основные включить LDAP - да резервная авторизация - да (иначе авторизация под локальным администратором будет невозможна) найти пользователя после входа в систему - да хост - dc.domain.local ldap-порт - 389 переподключение - да шифрование - без шифрования base DN - cn=users,dc=domain,dc=local аутентификация включить - да user DN - cn=rocketchat,cn=users,dc=domain,dc=local пароль - ... синхронизация/импорт поле "Имя пользователя" - sAMAccountName поле уникального идентификатора - objectGUID домен по умолчанию - не указан объединить существующих пользователей - да синхронизация пользовательских данных - да карта пользовательских данных - {"displayName":"name", "mail":"email"} синхронизация групп - нет синхронизация пользовательских аватаров - да фоновая синхронизация - да интервал фоновой синхронизации - every 8 hours фоновая синхронизация импортирует новых пользователей - да Фоновая синхронизация обновляет сущестующих пользователей - да поиск пользователей фильтр - (&(objectclass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(memberOf:1.2.840.113556.1.4.1941:=cn=пользователи rocket.chat,cn=users,dc=domain,dc=local)) область - sub поле поиска - sAMAccountName |
замечание: для успешного импорта пользователей соответствующие учетные записи Active Directory должны включать атрибут mail
включаем использование для отображения имен пользователей атрибута displayName (вместо sAMAccountName)
1 | внешний вид - пользовательский интерфейс - использовать настоящее имя - да |
включаем поддержку кириллицы в названиях каналов
1 | общие настройки - UTF8 - проверка имен UTF8 - добавляем диапазоны символов А-Яа-я |
выполняем тихую установку клиентов использую параметры установщика /S /allusers /disableAutoUpdates