Конфигурация Chat Server хранится по пути ./elph-chat-server/stable/ в файлах:
Чтобы перейти в файл конфигурации введите команду:
<nano/vim/mcedit> elph-chat-server/stable/.env |
# ELPH-CHAT-SERVER CONFIGFILE^
# Модули конфигурации расположены в порядке важности
# Без сконфигурированных параметров подключения к БД сервер не запустится
# Без нужных параметров сервер не запустится
# Без сконфигурированного провайдера аутентификации не будет доступа к учетным записям
# ...
# ---------- Необходимо сконфигурировать ----------
# Адреса сервисов
ELPH_PROXY="elph-proxy.domain"
ELPH_CHAT="elph-chat.domain"
ELPH_STATUS_SERVICE="elph-status.domain"
ECSS_ADDRESSBOOK_HOST="ecss-address-book.domain"
LDAP_HOST="ldap.host.domain"
ELPH_SSW="ssw.domain"
ELPH_SSW_DOMAIN="ssw-domain"
# Публичный адрес сервера (по которому он будет доступен через ecss-elph-proxy)
PUBLIC_URL="https://${ELPH_PROXY}"
# ---------- Менять не нужно ----------
ROOT_URL="https://${ELPH_CHAT}:3443"
# ######################## Docker ########################
# Источник докер образов
DOCKER_REPO_EXTERNAL="hub-ims.eltex-co.ru/external"
DOCKER_REPO_ECSS="hub-ims.eltex-co.ru/ecss"
# Версия докер образов
TAG="2.12.0"
CLIENT_TAG="2.12.0"
# ---------- Менять не нужно ----------
MONGO_TAG=5.0
REDIS_TAG=7.2
KEYCLOAK_TAG=26.2
KEYCLOAK_POSTGRES_TAG=17
MINIO_TAG=RELEASE.2025-02-07T23-21-09Z
MONITOR_TAG=0.1-${TAG}
EVENTS_WEBHOOK_TAG=0.1
SERVER_TAG=${TAG}
FILE_SERVICE_TAG=${TAG}
VOLUMES_DIR="./volumes"
DEPLOY_PLATFORM=docker
# ########################
# Разрешить работу с не подтвержденными SSL сертификатами (самоподписанные/локальные/и т. д.)
NODE_TLS_REJECT_UNAUTHORIZED=0
# ######################## Параметры подключения к mongodb ########################
MONGO_URL=mongodb://mongo:27017/elph?replicaSet=rs01
MONGO_OPLOG_URL=mongodb://mongo:27017/local?replicaSet=rs01
# ########################
# ######################## Настройки авторизации ########################
# Чат сервер может работать в режиме когда он сам выписывает токен
# Приватный ключ для подписи токена пользователя (!!! Должен быть изменен с дефолтного значения и одинаков на всех сервисах !!!)
BEARER_TOKEN_PRIVATE_KEY='eca6fdb9bfa839dd6cd479e91d1e6d2344ac6e387e2b81a0482f01e8b976da115ae54dff18e611409edf14e4562cdc7474c3ed1f8125b8b3b49513cdb8438b9d'
# Или может работать в режиме работы с чужим токеном Openid connect
# В таком случае должен быть указан адрес сервера ключам которого должен доверять сервис
# Адрес сервиса SSO авторизации
AUTH_TOKEN_ISSUER="https://${ELPH_PROXY}/elph/auth/realms/${ELPH_SSW_DOMAIN}"
# Настройка времени жизни токена авторизации в секундах (по умолчанию час)
JWT_CUSTOM_EXP=
# общая шина
RABBITMQ_HOST="${ELPH_STATUS_SERVICE}"
RABBITMQ_PORT="5672"
RABBITMQ_URL="amqp://guest:guest@${RABBITMQ_HOST}:${RABBITMQ_PORT}"
# Настройки файлового хранилища MinIO
MINIO_ROOT_USER="minioadmin"
MINIO_ROOT_PASSWORD="minioadmin"
TUS_SERVER_URL=http://file-service:3000/tus
FILE_SERVICE_URL=http://file-service:3000
# Настройки подключения к redis
REDIS_HOST=redis
REDIS_PORT=6379
#####################################################
# Keycloak Base Settings <- REQUIRED
#####################################################
KEYCLOAK_IS_SSL_ENABLE="true"
KEYCLOAK_CLIENT_SECRET="Wek1sbYRt2wZkPCpJooWNDb40ulQPNOX"
KEYCLOAK_HOST=${ELPH_CHAT}
KEYCLOAK_PORT="8282"
KEYCLOAK_ENDPOINT="https://${ELPH_PROXY}/elph/auth/"
KEYCLOAK_USER="admin"
KEYCLOAK_PASSWORD="admin"
KEYCLOAK_REALM="${ELPH_SSW_DOMAIN}"
# Настройки для Elph Chat
KEYCLOAK_ELPH_CHAT_CLIENT_ID="chat-server-sync"
KEYCLOAK_ELPH_CHAT_CLIENT_SECRET="X0Wb1OiaSvGstO0YGo2EuORLueCXxc86"
KEYCLOAK_ELPH_CHAT_REALM="${KEYCLOAK_REALM}"
KEYCLOAK_ELPH_CHAT_SYNC_ENABLED=true
KEYCLOAK_ELPH_CHAT_SYNC_INTERVAL=600000
# Keycloak DB credentials
POSTGRES_USER="postgres"
POSTGRES_PASSWORD="postgres"
POSTGRES_DB_NAME="postgres"
POSTGRES_HOST="postgres"
POSTGRES_PORT="5432"
POSTGRES_URL="jdbc:postgresql://${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB_NAME}"
# Keycloak RabbitMQ credentials
KK_TO_RMQ_EXCHANGE="keycloak.events"
KK_TO_RMQ_USERNAME="guest"
KK_TO_RMQ_PASSWORD="guest"
# Keycloak LDAP credentials
LDAP_CONNECTION_URL="ldap://${LDAP_HOST}"
LDAP_BIND_DN=""
LDAP_BIND_CREDENTIALS=""
LDAP_PROVIDER_UI_DISPLAY_NAME="ldap-of-ecss"
LDAP_USERS_DN=""
LDAP_USERNAME_ATTRIBUTE="uid"
LDAP_USER_RDN_ATTRIBUTE="uid"
LDAP_USER_UUID_ATTRIBUTE="entryUUID"
LDAP_USER_OBJ_CLASSES="inetOrgPerson,organizationalPerson"
LDAP_CUSTOM_USER_FILTER="(&(objectClass=inetOrgPerson)(mail=*)(telephoneNumber=*))"
# Настройки конфигов которые возвращаются каждому пользователю при запросе на /auth/me
SIP_SERVERS="${ELPH_SSW}:5060"
MOBILE_SSW_HOST="${ELPH_SSW}:5060"
MOBILE_SSW_FIRST_PROXY=""
MOBILE_SSW_SECOND_PROXY=""
#####################################################
AUP_URL="https://aup.loc"
AUP_KEYCLOAK_URL="https://${AUP_URL}/auth"
AUP_KEYCLOAK_REALM="ecss"
AUP_KEYCLOAK_ISSUER="https://${AUP_URL}/auth/realms/${AUP_KEYCLOAK_REALM}"
|
|
# ####################### Для работы сервера ########################
# ---------- Необходимо сконфигурировать ----------
PORT=3000
NODE_PATH=/usr/bin/node
NODE_ENV=production
# ########################
# ######################## Аутентификация через KEYCLOAK ########################
KEYCLOAK_CLIENT_ID="chat-server-sync"
KEYCLOAK_CLIENT_SECRET="X0Wb1OiaSvGstO0YGo2EuORLueCXxc86"
KEYCLOAK_SYNC_ENABLED=true
KEYCLOAK_SYNC_INTERVAL=600000
# ######################## Аутентификация через ECSS10 ########################
# Параметры подключения к ecss-web-api (ecss-core)
ECSS_CORE_HOST="${ELPH_SSW}"
# ---------- Опционально ----------
ECSS_CORE_DOMAIN="${ELPH_SSW_DOMAIN}"
ECSS_CORE_USE_DEFAULT_DOMAIN="false"
ECSS_CORE_PORT=8086
ECSS_CORE_SERVICE=call
# ########################
# ######################## Получения доп информации о пользовтеле (аватар/дисплейнейм) ########################
# Параметры подключения к address-book сервису (adress_book - для синхронизации display name и аватара пользователя)
ECSS_ADDRESSBOOK_URL="http://${ECSS_ADDRESSBOOK_HOST}:4000"
# Параметры подключения к ecss-mysql (БД meeting-db - для работы чатов телеконференций)
ECSS_MEETING_DB_HOST="${ELPH_SSW}"
ECSS_MEETING_DB_PORT=3306
ECSS_MEETING_DB_NAME=ecss_meeting_db
ECSS_MEETING_DB_USER=ecss_meeting_db
ECSS_MEETING_DB_PASS=ecss_meeting_db
ECSS_ADDRESSBOOK_DB_NAME=ecss_address_book
ECSS_ADDRESSBOOK_DB_PASSWORD=address_book
ECSS_ADDRESSBOOK_DB_USER=address_book
# Если обновления аватара не было UPDATE_ADDRBOOK_AVATAR_EVERY_MS секунд, обновить данные при входе пользователя
UPDATE_ADDRBOOK_AVATAR_EVERY_MS=80000
# Префикс перенаправления на ecss-elph-api
ECSS_AVATAR_URL_ORIGIN_PREFIX="https://${ELPH_PROXY}/elph_api/loadlocal/"
# ########################
# ######################## Разметка сообщений (markdown, katex, autolink) ########################
# Разрешенные "подозрительные домены"
# Чтобы подсвечивались ссылки в сообщениях на ресурсы которые не являются публичными доменами нужно внести их в список
# список (через запятую) пример: domain.asd,evil.troian.loc
MESSAGEPARSER_AUTOLINK_CUSTOM_DOMAINS=eltex.loc
# ########################
# ######################## Тех поддержка (сбор обратной связи очтетов/клиентских логов) ########################
# ---------- Опционально ----------
# Включить создание supportuser
OVERWRITE_SETTING_Support_User=true
OVERWRITE_SETTING_Support_User_Welcome_Message="Добро пожаловать в чат технической поддержки!"
OVERWRITE_SETTING_Support_User_Password="password"
OVERWRITE_SETTING_Support_User_Name="Поддержка Elph"
OVERWRITE_SETTING_Support_User_Cluster_Update_Message_Enable=true
OVERWRITE_SETTING_Support_User_Cluster_Update_Message="Версия сервера обновлена"
# ########################
# ######################## Пользователь для агента безопасности ########################
# ---------- Опционально ----------
# Включить создание security-user
OVERWRITE_SETTING_Security_User=false
OVERWRITE_SETTING_Security_User_Password=""
# ########################
# ######################## Системные отчеты использования системы ########################
# ---------- Опционально ----------
### Разрешить системе отправлять сообщения пользователям (нужно для отправки отчета о системе)
SYSTEM_ADMIN_MESSAGES=true
### Генерировать отчет использования системы
SYSTEM_REPORTS_ENABLE=true
### Отправлять отчет каждые (<число>_<week|month>)
SYSTEM_REPORTS_INTERVAL="1_week"
# ########################
# ######################## Системное уведомление в чате пользователей о заполненности диска на сервере базы данных ########################
# ---------- Опционально ----------
### Включить уведомления
USED_SPACE_REPORTER_ENABLE=true
### Отправлять уведомления, если дисковое пространство заполнено больше чем на N%
USED_SPACE_REPORTER_PERCENT_LIMIT=85
USED_SPACE_REPORTER_INTERVAL=1_day
# ######################## Фильтры для логов ########################
# ---------- Опционально ----------
# Будут выводиться логи только из определенных здесь лейблов. Default значение - вывод логов с любыми лэйблами
# Примеры:
# Если LOGGER_LOG_LABELS пустое значение => будет вывод логов с любыми лэйблами
# LOGGER_LOG_LABELS=AmqpConnection - будут выводиться только логи с лэйблом AmqpConnection
# LOGGER_LOG_LABELS=Stream* - будут выводиться только логи, которые начинаются на Stream. Например: StreamNotifyRoom, StreamRoomMessages, etc.
#
# LOGGER_LOG_LABELS=-AmqpConnection -
# Будут выводиться все логи, кроме AmqpConnection (отличительная черта - знак минуса в начале строки).
# Если передадите -AmqpConnection,ChatService - значит логи с лэйблами AmqpConnection & ChatService будут исключены
#
# Примечание: Регистр в значениях не важен. Во время сравнения, значения из LOGGER_LOG_LABELS приводит к нижнему регистру
LOGGER_LOG_LABELS=
# ---------- Опционально ----------
# Будут выводиться логи только с определенным здесь уровнем. По дефолту - значение warn
# Доступные уровни LOGGER_LOG_LEVEL:
# - debug или 0
# - info или 1
# - warn или 2
# - error или 3
# Указывая уровень, нужно понять что будут отображаться только логи указанного уровня и ниже => логи уровня выше отображаться не будут.
# Например:
# - LOGGER_LOG_LEVEL=debug => debug, info, warn & error
# - LOGGER_LOG_LEVEL=info => info, warn & error
# - LOGGER_LOG_LEVEL=warn - будут отображаться только логи уровнем warn & error
# - LOGGER_LOG_LEVEL=error - только логи уровня error
LOGGER_LOG_LEVEL=
# ########################
|
|
Основные конфигурационные параметры
В первоначальной настройке необходимо изменить следующие параметры:
Обязательный к изменению параметр: BEARER_TOKEN_PRIVATE_KEY — секретный ключ для генерации токена авторизации. По умолчанию стоит демонстрационное значение, которое важно поменять для обеспечения безопасности сервера. Значением может выступать любая комбинация символов >256 бит (примерно 32 символа). Значение данного параметра должно быть одинаковым в конфигурационном файле Chat Server и на всех сервисах: User Status Service, Call History Service и Address Book Service. |
ELPH_PROXY="elph-proxy.domain" — aдрес Elph Proxy, по которому Chat Server будет доступен извне;
ELPH_CHAT="elph-chat.domain" — адрес Chat Server;
ELPH_STATUS_SERVICE="elph-status.domain" — адрес Status Service;
ECSS_ADDRESSBOOK_HOST="ecss-address-book.domain" — адрес Address Book;
LDAP_HOST="ldap.host.domain" — адрес LDAP;
ELPH_SSW="ssw.domain"— адрес ядра ECSS;
ELPH_SSW_DOMAIN="ssw-domain" — домен SSW;
Для корректной работы к RabbitMQ должен подключаться Chat Server той же версии, что и сам rabbit. |
MINIO_ROOT_USER=ecss;
MINIO_ROOT_PASSWORD=password — стандартные логин пароль для доступа к MinIO(http://<chat-address>:9000).
KEYCLOAK_USER=admin;
KEYCLOAK_PASSWORD=admin — стандартные логин пароль для доступа к Keycloak (http://<chat-address>:8282).
После изменения любого параметра нужно перезапустить Chat Server: ./ecss-elph-chat-server.sh down && ./ecss-elph-chat-server.sh up |
|
Если используется один стандартный домен, то производится настройка параметров ECSS_CORE_USE_DEFAULT_DOMAIN и ECSS_CORE_DOMAIN: ECSS_CORE_USE_DEFAULT_DOMAIN="true" — все пользователи без домена при логине будут отправляться на стандартный домен. При значении "false" Chat Server будет ожидать имя домена в авторизационных данных от клиента; ECSS_CORE_DOMAIN=<domain_name> — имя домена ECSS, с которым будет работать Chat Server. При ECSS_CORE_USE_DEFAULT_DOMAIN="false" допускается оставить значение параметра ECSS_WEB_API_DOMAIN пустым. |
Изменение конфигурации
Перед изменением конфигурации сначала остановите Chat Server.
Для остановки Chat Server без очистки контейнеров и docker-network:
./ecss-elph-chat-server.sh stop
|
Для остановки Chat Server с очисткой контейнеров и docker-network:
./ecss-elph-chat-server.sh down |
Изменить конфигурацию можно двумя способами:
Заново сконфигурировать при установке. Заново запустите скрипт с установкой:
./ecss-elph-chat-server.sh install |
Изменить файл конфигурации вручную. Подробнее об этом в разделе «v. 2.12.0. Настройка и управление Chat Server».
Для этого остановите Chat Server:
./ecss-elph-chat-server.sh stop |
Измените конфигурацию:
<nano/vim/mcedit> elph-chat-server/stable/.env |
Запустите Chat Server командой:
./ecss-elph-chat-server.sh up |
Остальные параметры являются опциональными. Изменять их необходимо в случае, если используется нестандартная схема развёртывания ECSS-10.
Обратите внимание на архитектуру: для корректной работы конференций Chat Server должен иметь доступ к ecss-mysql. Для этого настройте маску доступа к mysql. |
Введите команду на хосте с ecss-mysql:
dpkg-reconfigure ecss-mysql |
Откроется диалоговое окно с вопросом о маске, например, для доступа всех IP-адресов можно задать маску: %.%.%.%.