Обновление серверной части приложения#

Загрузка новой версии установщика#

Для обновления серверной части приложения необходимо обновить установщик. Для этого перейдите в директорию ранее загруженного установщика и выполните команду:

git pull

Внимание

Обновление установщика необходимо выполнять от имени того же пользователя, от которого выполнялась загрузка установщика.

После выполнения команды установщик будет готов к дальнейшему обновлению серверной части.

Обновление версии приложения#

Обновление происходит в два этапа:

  • корректировка текущих конфигурационных файлов для новой версии;

  • запуск команды автоматического обновления.

Все корректировки конфигурационных файлов должны выполняться в строгой последовательности от текущей версии развернутого приложения до версии, соответствующей текущей версии установщика.

Корректировки версий#

Внимание

Найдите отметку для вашей текущей версии серверной части в блоке ниже и выполните все корректировки, описанные ниже метки, включая те, что указаны для версий выше текущей.

1.6.* и ниже#

>> если текущая установленная версия 1.6.* или ниже, начните отсюда

Для версий выше 1.6.* Google Recaptcha является обязательным требованием. Убедитесь, что у вас указаны все необходимые данные в файле configs/captcha.yaml в соответствии с разделом Настройка Google Recaptcha. Если у вас нет необходимых ключей, то получите их в соответствии с рекомендациями раздела Подключение Google Recaptcha, а затем заполните конфигурационный файл configs/captcha.yaml.

В версиях выше 1.6.* реализована поддержка аутентификации по электронной почте. Для устранения несовместимости установщика со старой версией конфигурационного файла откройте файл configs/team.yaml любым текстовым редактором и добавьте в конце файла два поля:

root_user.mail: "<адрес электронной почты>"
root_user.password: "very-strong-password"

Внимание

Каждое поле должно располагаться на новой строке. Перед названием поля в файле не должно быть пробелов или других символов.

Выполните команду предварительного обновления в директории установщика:

sudo python3 script/update.py

Выполнение команды завершится сообщением об отсутствии настройки SMTP-сервера. Выполните настройки в соответствии с разделом Настройка почты.

Примечание

Настройка почты для Root‑пользователя является необходимым требованием, однако дальнейший процесс обновления не привяжет указанную почту к учетной записи в приложении.

1.9.* и ниже#

>> если текущая установленная версия 1.9.* или ниже, начните отсюда

Выполните команду предварительного обновления в директории установщика:

sudo python3 script/update.py

Выполните служебные команды:

sudo python3 script/init_premise.py
sudo python3 script/activate_server.py

2.0.1 и ниже#

>> если текущая установленная версия 2.0.1 или ниже, начните отсюда

Выполните обновление библиотек командой:

sudo pip3 install docker==7.1.0

2.0.7 и ниже#

>> если текущая установленная версия 2.0.7 или ниже, начните отсюда

Обновление разрешений для сервера лицензий#

Обновите разрешения в сетевом экране, добавив адрес 45.92.177.63 (license.getcompass.ru и push-onpremise.getcompass.ru) в разрешенные.

sudo ufw allow out to 45.92.177.63 port 443;
sudo ufw allow from 45.92.177.63 port 443;
Обновление настроек SSO-аутентификации#

Выполните команду предварительного обновления в директории установщика:

sudo python3 script/update.py

Выполните обновление связей учетных записей и SSO аутентификации.

sudo python3 script/reform_sso.py

Если настроена авторизация через SSO и хотите выполнять авторизацию в аккаунт root-пользователя через SSO, то заполните поле root_user.sso_login в файле настроек configs/team.yaml и выполните команду:

sudo python3 script/add_root_user_sso_login.py
Обновление настроек сервиса аудио- и видеозвонков#

Разрешите в сетевом экране внешний доступ к сервису аудио- и видеозвонков:

sudo ufw allow 10000/tcp;
sudo ufw allow 10000/udp;

Закройте в сетевом экране доступ к медиа-сервису предыдущей версии:

sudo ufw deny 31800/tcp;
sudo ufw deny 31801/tcp;
sudo ufw deny 31802/tcp;
sudo ufw deny 33000:33999/tcp;
sudo ufw deny 33000:33999/udp;

sudo ufw deny 3478/tcp;
sudo ufw deny 5349/tcp;
sudo ufw deny 34000:34999/tcp;
sudo ufw deny 34000:34999/udp;

Примечание

Вышеуказанные команды актуальны для настроек по умолчанию, если при установке указывались другие порты, необходимо указать их.

Если вы не планируете использовать собственный TURN-сервер, разрешите в настройках сетевого экрана доступ к TURN-серверу по умолчанию:

sudo ufw allow out to 77.223.115.66 port 443;
sudo ufw allow out to 77.223.115.66 port 80;

sudo ufw allow from 77.223.115.66 port 443;

4.1.0 и ниже#

>> если текущая установленная версия 4.1.0 или ниже, начните отсюда

Выполните команду предварительного обновления в директории установщика:

sudo python3 script/update.py

Выполните команду обновления конфигов компаний:

sudo docker exec -it $(sudo docker ps | grep php_monolith | awk '{print $1}') bash -c "php /app/src/Compass/Pivot/sh/php/domino/force_update_company_db.php"

4.4.3 и ниже#

>> если текущая установленная версия 4.4.3 или ниже, начните отсюда

Установите библиотеку для python:

sudo pip3 install pycryptodome==3.21.0

При необходимости выполните конфигурирование шифрования сообщений.

4.4.12 и ниже#

>> если текущая установленная версия 4.4.12 или ниже, начните отсюда

Примечание

Пользователи клиентских приложений для компьютера с версией ниже 5.12.7 получат оповещение о необходимости обновления на новую актуальную версию. Для продолжения работы на сервере, пользователи должны будут подтвердить обновление.

Выполните команду обновления в директории установщика:

sudo python3 script/update.py

После обновления при необходимости выполните настройку ограничения доступа к файлам.

Примечание

Если вы не планируете ограничивать доступ к файлам, этот раздел можно пропустить.

Конфигурация ограничения доступа к файлам по прямым ссылкам С помощью этой настройки вы можете ограничить доступ к файлам по прямым ссылкам для неавторизованных пользователей.

Внимание

Для ограничения доступа к файлам все клиентские приложения должны быть обновлены до актуальной версии. Для перевода клиентских приложений на актуальную версию используются анонсы принудительного обновления. Каждый пользователь получит оповещение с предложением обновить приложение. Во время работы анонсов приложение будет недоступно для использования, пока не будет обновлено до актуальной версии.

Включите ограничение на доступ к файлам по прямым ссылкам в конфигурационном файле configs/team.yaml:

# Включено ли ограничение доступа к файлам по прямым ссылкам.
# none - проверка не производится, файл всегда доступен по прямой ссылке;
# auth - проверка авторизации перед доступом к файлу - только участник команды может получить доступ к файлу.
file.access_restriction_mode: "auth"

Установите анонс обновления для мобильных приложений командой из директории установщика:

sudo python3 script/set_client_application_version_restriction.py -v compass -e production

В ходе работы скрипта вам будет предложено выбрать тип анонса:

  • Минимально поддерживаемая версия приложения.

  • Версия с функционалом «Поддержка авторизации файлов».

Необходимо выбрать тип «Версия с функционалом 'Поддержка авторизации файлов'».

Предупреждение

Анонс для desktop-приложения будет запущен автоматически в ходе обновления сервера. Если приложение ещё не обновлено и анонс не отобразился в нём после запуска обновления сервера, пожалуйста, попросите пользователей перезапустить приложение для компьютера сочетанием клавиш:

  • CTRL+R – для Windows и Linux;

  • CMD+R – для MacOS.

Когда анонсы отобразятся в приложении, повторно выполните обновление серверной части для применения изменений в конфигурационном файле:

sudo python3 script/update.py

Отмена изменений и отключение анонса обновления

Если в ходе обновления произошла ошибка, для отмены изменений установите «none» в соответствующем параметре в файле configs/team.yaml:

file.access_restriction_mode: "none"

Выполните обновление серверной части для применения изменений:

sudo python3 script/update.py

Запустите скрипт управления анонсами:

sudo python3 script/set_client_application_version_restriction.py -v compass -e production

Выберите «Минимально поддерживаемая версия приложения» и подтвердите выполнение скрипта.

Запуск обновления#

Обновление запускается командой из директории установщика:

sudo python3 script/update.py

Обновление приложения занимает некоторое время. В зависимости от мощности сервера время может варьироваться от 3 до 15 минут. Текущее состояние обновления можно узнать с помощью команды:

sudo docker service ls | grep -vE "default-file|jitsi-custom"

У всех сервисов правое и левое число в колонке REPLICAS должны совпадать (ниже пример, количество строк и значения в полях могут быть другими):

ID             NAME              MODE         REPLICAS   IMAGE                                                     PORTS
jrnsa5illaao   pivot_nginx       replicated   1/1        dockerhub.com/nginx/nginx:apline-latest                   *:31000->443/tcp
7wismhojfze5   pivot_php_pivot   replicated   1/1        docker.getcompass.com/compass-on-premise/php_pivot:1.1.0
3meydkmdpx3j   pivot_go_event    replicated   1/1        docker.getcompass.com/compass-on-premise/go_event:1.1.0

Если по истечении ожидаемого времени сервис не готов к работе, то можно получить дополнительную информацию командой:

sudo docker service ps <ID_или_NAME_сервиса> --no-trunc

Напишите нам в пространстве поддержки On-premise, Telegram или на почту support@getcompass.ru, чтобы получить индивидуальную демонстрацию функционала и помощь по вопросам интеграции мессенджера в вашей компании.