Справка

Установка платформы на сервер

Безоблачный Pyrus

Для установки Pyrus выполните пошаговую инструкцию. Вам понадобится лицензия Pyrus Datacenter, получить которую можно связавшись c нами.

Примечание: все команды, описанные в данном разделе, выполняются из командной строки с правами суперпользователя.

Подготавливаем систему

  1. В системе должно быть предустановлено ПО, описанное в технических требованиях.

    Проверить работоспособность Docker можно, выполнив команду

    $ docker run hello-world
    
  2. Для стабильной работы docker-контейнера с поисковым движком Elasticsearch необходимо настроить параметр vm.max_map_count (см. подробнее):

    $ sysctl -w vm.max_map_count=262144
    
  3. Загрузите docker-compose-файл для управления контейнерами системы Pyrus, доступный по адресу https://pyrus.com/datacenter/docker-compose.yml, командой:

    $ curl -fsSL https://pyrus.com/datacenter/docker-compose.yml -o docker-compose.yml
    

Важно: Настоятельно рекомендуем изменить стандартный пароль для подключения к базе данных в docker-compose-файле.

Настраиваем DNS

Машина с Pyrus должна быть доступна из вашей корпоративной сети по адресу pyrus.yourdomain.org. Для этого узнайте IP-адрес сервера и добавьте соответствующую А-запись в DNS-зону домена. Проверить DNS-запись можно, например, с помощью утилиты dig:

$ dig pyrus.yourdomain.org

Команда должна вывести A-запись заданного доменного имени. Убедитесь, что она соответствует IP-адресу сервера.

Устанавливаем SSL-сертификаты

Для обеспечения безопасной работы необходимо установить SSL-сертификат вашего домена pyrus.yourdomain.org.

Раскомментируйте строки с путями до сертификатов в пункте nginx в файле docker-compose.yml и укажите правильные пути до собственного сертификата и приватного ключа:

volume:
	- /path/to/cert:/etc/nginx/ssl/cert.crt
	- /path/to/key:/etc/nginx/ssl/key.key

где:

  • /path/to/cert — путь до сертификата в формате PEM или DER;
  • /path/to/key — путь до приватного ключа в формате PEM.

Важно: контейнеру nginx необходим постоянный доступ к сертификату и приватному ключу. Не переносите и не удаляйте эти файлы без соответствующих изменений в docker-compose.yml.

Примечание 1: стоит указывать полную цепочку с корневым сертификатом. При необходимости соберите полную цепочку сертификатов следующим образом:

$ cat pyrus.crt intermediate.crt root.crt > ca.pem
# Порядок указания сертификатов отражает выполняемую
# клиентом последовательность проверки:
# сертификат сервера, промежуточный сертификат
# и корневой сертификат.

Примечание 2: если вы хотите установить сертификат в уже запущенном приложении, необходимо перезапустить контейнер с nginx.

$ docker-compose up -d nginx

Создаем базу данных и поисковые индексы

  1. Скачайте последние версии контейнеров и запустите скрипт установки следующими командами.

    $ docker-compose --profile all pull
    $ docker-compose up -d postgres logs elastic
    

    Скрипты внутри контейнеров pyrus-postgresql создадут пустую базу данных Pyrus на вашей машине. Проверить результат успешного запуска можно следующей командой.

    $ docker exec pyrus-postgresql pg_isready
    # /var/run/postgresql:5432 - accepting connections
    
  2. Инициализируйте базу данных Pyrus и создайте аккаунт администратора вашей организации с помощью следующих команд.

    $ docker-compose run --rm pyrus-setup --create --skip --setadmin --email [ADMIN_EMAIL] --adminpassword [ADMIN_PASSWORD]
    $ docker-compose run --rm pyrus-setup -ct --start
    
  3. Инициализируйте поисковые индексы Elasticsearch. Для этого выполните следующие команды.

    $ docker-compose run --rm elastic-console -iall
    

Настраиваем хранилище S3

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

Чтобы настроить работу Pyrus с хранилищем S3, выполните следующую команду (пример приведен для хранилища MinIO, в вашей установке Pyrus Datacenter по соображениям безопасности обязательно смените указанные здесь значения ‑‑accessKey и ‑‑secretKey)

$ docker-compose run --rm pyrus-setup --configure-s3 --bucket pyrus --accessKey admin --secretKey admin123 --endpointUrl http://pyrus-minio:9000 --storageType MinIo

Параметры

‑‑bucketИмя корзины S3, в которой хранятся файлы.
‑‑accessKeyКлюч для доступа к хранилищу файлов S3.
‑‑secretKeyСекретный ключ для доступа к хранилищу файлов S3.
‑‑endpointUrlАдрес S3 для хранения файлов. Для AWS S3 можно указать имя региона, например, eu-west-2. Для остальных хранилищ необходимо указать адрес сервера, например, https://s3mts.ru:443 для MTS S3, https://hb.bizmrg.com для VkCloud S3 и т.д.
‑‑storageTypeНеобязательный параметр, тип хранилища. Поддерживаются варианты: Aws, MinIo, Mts, VkCloud.

Чтобы использовать хранилище MinIO, работающее на том же самом хосте, где находится установка Pyrus Datacenter, дополнительно к команде, описанной выше, запустите MinIO и создайте в хранилище корзину для файлов командами:

$ docker-compose up -d minio
$ docker-compose run --rm pyrus-setup --cb

Устанавливаем лицензию и доменное имя

  1. Для запуска Pyrus установите лицензию приложения командой:

    $ docker-compose run --rm pyrus-setup --setup -id 100000 -v [YOUR_LICENSE]
    # [YOUR_LICENSE] - текст лицензии, который вы получили
    # от вашего аккаунт-менеджера.
    # Например: docker-compose run --rm pyrus-setup --setup -id 100000 -v aHR0cHM6Ly9weXJ1cy5jb20vcnUvam9icw==
    
  2. После чего настройте домен основного приложения:

    $ docker-compose run --rm pyrus-setup --setup -id 100001 -v [YOUR_HOSTNAME]
    # [YOUR_HOSTNAME] - имя вашего домена, по которому ваши
    # пользователи будут обращаться к системе.
    # Например: docker-compose run --rm pyrus-setup --setup -id 100001 -v pyrus.yourdomain.org
    

Полный список конфигурационных параметров доступен в соответствующем разделе.

Запуск контейнеров в боевом режиме

Запустите систему командой:

$ docker-compose up -d

Дождитесь запуска всех контейнеров.

Проверяем текущую версию платформы

Запустите команду:

$ docker-compose run --rm pyrus-setup --version

Была ли эта статья полезной?