Команды управления
Остановка чат-сервера без очистки docker container и docker network:
./ecss-elph-chat-server.sh stop
Остановка чат-сервера с очисткой docker container и docker network:
./ecss-elph-chat-server.sh down
Запуск чат-сервера:
./ecss-elph-chat-server.sh up
Рестарт чат-сервера:
./ecss-elph-chat-server.sh restart
Просмотр запущенных контейнеров:
Логи
Для просмотра логов баз данных:
docker logs elph-chat-server-stable_mongo_1
Для просмотра логов сервера:
docker logs elph-chat-server-stable_server_1
Для просмотра логов в реальном времени добавить "--follow" в конце команды:
docker logs elph-chat-server-stable_server_1 --follow
Конфигурация
Конфигурация чат-сервера хранится в файле ./elph-chat-server/stable/.env
Чтобы перейти в файл конфигурации введите команду:
<nano/vim/mcedit> elph-chat-server/stable/.env
Пример исходного .env файла
# ELPH-CHAT-SERVER CONFIGFILE 2.4^
# Модули конфигурации расположены в порядке важности
# Без докер образа не будет ничего
# Без сконфигурированных параметров подключения к БД не запустится сервер
# Без нужных серверу параметров он откажется запускаться
# Без сконфигурированного провайдера аутентификации не будет доступа к учетным записям
# ...
# ######################## Docker ########################
# Источник докер образов
DOCKER_REPO="hub-ims.eltex-co.ru"
# Версия докер образов
TAG="2.3.0"
# ---------- Менять не нужно ----------
NGINX_TAG=1.23.3-${TAG}
MONGO_TAG=4.4-${TAG}
SERVER_TAG=${TAG}
VOLUMES_DIR="./volumes"
DEPLOY_PLATFORM=docker
# ########################
# ######################## Параметры подключения к mongodb ########################
MONGO_URL=mongodb://mongo:27017/elph?replicaSet=rs01
MONGO_OPLOG_URL=mongodb://mongo:27017/local?replicaSet=rs01
# ########################
# ####################### Для работы серверов ########################
# ---------- Необходимо сконфигурировать ----------
# Публичный адрес сервера
PUBLIC_URL=https://elph-chat.loc
# ---------- Менять не нужно ----------
ROOT_URL="https://elph-chat.loc"
PORT=3000
NODE_PATH=/usr/bin/node
NODE_ENV=production
# ########################
# ######################## Авторизация на чат-сервере ########################
# Приватный ключ для подписи токена пользователя
BEARER_TOKEN_PRIVATE_KEY=[token]
# Адрес сервиса SSO авторизации
AUTH_TOKEN_ISSUER='http://sso-elph.loc:5000'
# ######################## Аутентификация через ECSS10 ########################
# Параметры подключения к ecss-web-api (ecss-core)
ECSS_CORE_HOST="ecss-core.loc"
# ---------- Опционально ----------
ECSS_CORE_DOMAIN="default"
ECSS_CORE_USE_DEFAULT_DOMAIN="false"
ECSS_CORE_PORT=8086
ECSS_CORE_SERVICE=call
# ########################
# ######################## Получения доп.информации о пользователе (аватар/дисплейнейм) ########################
# Параметры подключения к ecss-mysql (БД adress_book - для синхронизации display name и аватара пользователя)
ECSS_ADDRESSBOOK_HOST="address-book.mysql.ecss"
# ---------- Опционально ----------
ECSS_ADDRESSBOOK_PORT=3306
ECSS_ADDRESSBOOK_DB_USER="ecss_chat"
ECSS_ADDRESSBOOK_DB_PASSWORD="ecss_chat"
ECSS_ADDRESSBOOK_DB_NAME="ecss_address_book"
ECSS_ADDRESSBOOK_DB_CONNECTION_LIMIT=10
# Параметры подключения к ecss-mysql (БД meeting-db - для работы чатов телеконференций)
# По умолчанию идентичен ECSS_ADDRESSBOOK_HOST, если нужно поменять то нужно отредактировать docker-compose.yml
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
# При входе, если обновление было больше чем это, то обновить данные
UPDATE_ADDRBOOK_AVATAR_EVERY_MS=80000
# Префикс перенаправления на ecss-elph-api
ECSS_AVATAR_URL_ORIGIN_PREFIX="https://elph_api:8098/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"
# ########################
# ######################## Системные отчеты использования системы ########################
# ---------- Опционально ----------
### Разрешить системе отправлять сообщения пользователям (нужно для отправки отчета о системе)
SYSTEM_ADMIN_MESSAGES=true
### Генерировать отчет использования системы
SYSTEM_REPORTS_ENABLE=true
### Отправлять отчет каждые (<число>_<week|month>)
SYSTEM_REPORTS_INTERVAL="1_week"
# ########################
# ######################## Системное уведомление в чате пользователей о заполненности диска на сервере базы данных ########################
# ---------- Опционально ----------
### Включить уведомления
USED_SPACE_REPORTER_ENABLE=true
### Проверять заполненность диска каждые (<число>_<day|week|month>)
USED_SPACE_REPORTER_INTERVAL=1_day
### Отправлять уведомления, если дисковое пространство заполнено больше чем на N%
USED_SPACE_REPORTER_PERCENT_LIMIT=85
# ######################## Cпецифичная настройка ########################
# ---------- Опционально ----------
# Разрешить работу с не подвержденными SSL сертификатами (самоподписанные/локальные/и тд)
NODE_TLS_REJECT_UNAUTHORIZED=0
# Слать пуш нотификации через apple-сервер либо через печницу apple (false), на работу android пуш нотификаций не влияет
OVERWRITE_SETTING_Push_production=true
# Настройка времени жизни токена авторизации в секундах (по умолчанию час)
JWT_CUSTOM_EXP=
# ---------- Менять не нужно ----------
OVERWRITE_SETTING_API_CORS_Origin='*'
OVERWRITE_SETTING_API_Enable_CORS=true
OVERWRITE_SETTING_Iframe_Restrict_Access=false
OVERWRITE_SETTING_Initial_Channel_Created=true
# ########################
# NGINX_ACCESS_LOGS=./log/ecss-chat-server.access.log
# Для монтирования своих сертификатов (по умолчанию самоподписанные)
# NGINX_CERTS=
# NGINX_RPIVATE_SSL_KEYS=
# ######################## Фильтры для логов ########################
# Определение здесь значений отключит все логгеры, кроме тех, что здесь описаны.
# Для нормальной работы оставить пустыми, если нет необходимости дебажить.
# ---------- Опционально ----------
### Будут выводиться логи только из определенных здесь лейблов.
LOGGER_LOG_LABELS=
### Будут выводиться логи только с определенным здесь уровнем.
LOGGER_LOG_LEVEL=
# ########################
# ######################## Интеграция сервиса транскрипции ########################
STT_SERVICE_URL=http://stt.loc
RECIEVE_TRANSCRIBE_ENABLE=false
RECIEVE_TRANSCRIBE_INTERVAL=1_minutes
# общая шина
RABBITMQ_URL="amqp://guest:guest@[rabbitMQ address]:5672/"
# Использовать в дефолтных аватарах первую букву имени
OVERWRITE_SETTING_UI_Use_Name_Avatar=true
Основные конфигурационные параметры
В первоначальной настройке необходимо изменить следующие параметры:
PUBLIC_URL=https://<ip_address_chat_server>:3443 #Внешний адрес чат-сервера, по которому он будет доступен для пользователей Elph Desktop.
ECSS_CORE_HOST=<ip_address_elph_api> #Адрес ядра ECSS
ECSS_ADDRESSBOOK_HOST=<ip_address_mysql> #адрес ecss-mysql
ECSS_AVATAR_URL_ORIGIN_PREFIX=https://<ip_address_elph_proxy>/elph_api/loadlocal/ #Адрес Elph-API для доступа к аватарам, подробнее об этом в разделе «Настройка аватаров».
RABBITMQ_URL=RABBITMQ_URL="amqp://guest:guest@[rabbitMQ_address]:5672/" # Адрес брокера RabbitMQ. В версии 2.4.0 поставляется совместно с User Status Service.
Настройка системных отчетов использования системы
Отчеты по использованию системы по умолчанию настроены на отправку отчетов раз в неделю пользователю supportuser.
Список интервалов, поддерживаемых для отправки отчетов: weeks, months. Указывать интервал меньше не рекомендуется.
SYSTEM_REPORTS_INTERVAL="1_week"
Пример отчета использования системы:
Уведомления о заполненности диска на сервере базы данных
Список пользователей, получающих отчет, настраивается аналогично настройке системных отчетов использования системы (USED_SPACE_REPORTER_SUBSCRIBERS_USERNAMES).
Список интервалов поддерживаемых для отправки отчетов: day, weeks, months. Указывать интервал меньше не рекомендуется.
USED_SPACE_REPORTER_PERCENT_LIMIT — процент заполненности диска, при достижении которого начинают отправляться уведомления. По умолчанию равен 85. При заполненности диска менее указанного процента отчеты о заполненности приходить не будут.
USED_SPACE_REPORTER_INTERVAL=1_day
USED_SPACE_REPORTER_PERCENT_LIMIT=85
Пример уведомления о заполненности диска:
Остальные параметры являются опциональными. Изменять их необходимо в случае, если используется нестандартная схема развёртывания ECSS-10.
Введите команду:
dpkg-reconfigure ecss-mysql
Откроется диалоговое окно с вопросом о маске, например, для доступа всех IP-адресов можно задать маску: %.%.%.%.
Более подробно про настройку ecss-mysql можно почитать в Настройка SSW для работы c Elph.
Сетевые окончания
3443 — https-порт для доступа к чат-серверу.