• Post category:Интеграция
  • Запись изменена:22.10.2024

Установка DirectumRX

Дополнительная информация по установке/настройке доступа по ссылке

Установить docker и docker-compose

Установить docker и docker-compose можно из стандартных репозиториев ОС или из официального репозитория докер.

Для версии 4.10 требуется версия докер от 19.3 до 25

Для установки из стандартных репозиториев выполним:

apt update && apt install docker.io docker-compose # пример для debian и ubuntu

Можно проверить установку командами:

docker -v && docker-compose -v

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

Для этого, открываем на редактирование файл /etc/docker/daemon.json

В файл добавляем адрес реджистри, например:

{
    "insecure-registries" : [ "ciaregistry.directum.ru" ]
}

Сохраняем файл и перезапускаем службу докер

systemctl restart docker

Скачиваем дистрибутив директум

Скачаем дистрибутив директум, например, по ссылке доступна версия 4.10.48:

wget https://download.r7-office.ru/directum/directum_rx_4.10.48.0x.zip

Распакуем архив дистрибутива

unzip directum_rx_4.10.48.0x.zip

Команда распакует архив в текущую директорию.

Распакуем архив с установщиком

Для распаковки рекомендуется создать отдельный каталог и распаковать туда архив:

mkdir /launcher
tar -xvzf DirectumLauncher.tar.gz -C /launcher
cd /launcher

Подготовка к установке

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

Для импорта локально используем архив с образами из поставки DockerImages.tar.gz
Для авторизации необходима УЗ. Информация по авторизации здесь.

Установка rabbitmq

Копируем файл конфига из дефолтного:

cp ./etc/config.yml.example ./etc/config.yml
nano ./etc/config.yml

В файле в секции variables в переменной home_path укажите путь до папки с данными, например /home/directum

Установка DirectumRX 4.10 с онлайн редактором Р7 Офис

В секции services_config добавьте секцию SungeroRabbitMQ с данными образа и каталогом хранения данных

SungeroRabbitMQ:
    rabbitmq_data_path: '{{ home_path }}/rabbitmq_data'
    docker_tag: 'registry.directum.ru/public/rabbitmq:3.12.13-management-alpine'

Установка DirectumRX 4.10 с онлайн редактором Р7 Офис

После сохранения конфига запускаем rabbitmq

./do.sh rabbitmq up

По окончании появится сообщение «Container ‘sungerorabbitmq’ has status ‘running’», а также, будет доступна веб страница rabbitmq на порту 15672 сервера.

Настройка rabbitmq

  1. Открываем страницу в браузере http://ip_адрес_сервера:15672
  2. Вводим guest/guest логин и пароль.
  3. На открывшейся странице создайте пользователя с правами администратора. Для этого перейдите на вкладку «Admin» и в разделе «Add a user» заполните поля Username, Password – логин и пароль администратора RabbitMQ. Права администратора в дальнейшем нужны для создания пользователя, от имени которого система Directum RX будет подключаться к RabbitMQ.
  4. В поле Tags выберите значение Admin и нажмите на кнопку Add user.
  5. Создайте виртуальный хост RabbitMQ для работы с Directum RX. Для этого на вкладке «Admin» на панели справа перейдите в группу Virtual Hosts и в разделе «Add a new virtual host» в поле Name заполните название хоста, например, rxhost. Затем нажмите на кнопку Add virtual host.
  6. На панели справа перейдите в группу Users.
  7. Создайте пользователя, от имени которого система Directum RX сможет подключаться к RabbitMQ. Для этого на вкладке «Admin» в разделе «Add a user» заполните поля Username, Password – логин и пароль пользователя. Затем в поле Tags выберите значение None и нажмите на кнопку Add user.
  8. Выберите созданного пользователя в списке, затем в разделе «Permissions» в поле Virtual Host выберите созданный виртуальный хост и нажмите на кнопку Set permission.
  9. В разделе «Topic permissions» в поле Virtual Host выберите созданный виртуальный хост и нажмите на кнопку Set topic permission.

Когда настройка завершена, из соображений безопасности рекомендуется отключить страницу администрирования RabbitMQ. Для этого в Directum Launcher перейдите в режим Настройка. Затем в конфигураторе в секции RabbitMQ добавьте параметр management_panel_disabled и установите для него флажок.

Во избежание проблем с сертификатами рекомендуется установить сертификат на локальную машину:

sudo cp your-cert.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

Установка директум

Для установки на сервере должны быть расположены сертификат и ключ в формате .pem

Также, если БД расположена на выделенном сервере, необходимо на сервере БД разрешить подключение с сервера директум в файле pg_hba.conf

В СУБД необходимо расширение postgresql-contrib. Установить с помощью стандартного менеджера apt install postgresql-contrib и активировать в psql «CREATE EXTENSION IF NOT EXISTS citext;»

Увеличьте максимально допустимое количество наблюдателей за файлами на текущем компьютере – системный параметр /proc/sys/fs/inotify/max_user_instances. Для этого в командной строке перейдите в созданную папку и с привилегиями суперпользователя выполните команду:

./do.sh set_inotify_instances_limit

В каталог с распакованным установщиком перенесем архивы, необходимые для минимальной установки DirectumRX.tar.gz Platform.tar.gz WebHelp.zip

mv /root/DirectumRX.tar.gz /root/Platform.tar.gz /root/WebHelp.zip /launcher

Если в компании не используется DNS-сервер, в конфигурационном файле etc/config.yml перед секцией logs_path добавьте секцию extra_hosts. Укажите в ней соответствие IP-адреса текущего сервера и доменного имени, по которому доступна система Directum RX.

extra_hosts:
    company-rx.directum.ru: '192.168.0.42'
logs_path: &logs
    LOGS_PATH: '{{ home_path }}/logs'

Во время установки указанное соответствие запишется в файл hosts docker-контейнеров. Это необходимо для корректного импорта шаблонов документов и пакетов разработки.

Также рекомендуется добавить строку в файл /etc/hosts

Далее запускаем страницу установщика командой

./DirectumLauncher --host=0.0.0.0

И переходим в браузере по адресу сервера, указав порт 5000, например, http://192.168.26.160:5000/

Далее, на открывшейся странице заполняем строки:

  • Адрес сайта — имя сервера, например, directum.ubuntu.s7-office.site
  • Путь до сертификата — указать путь до сертификата в формате .pem на сервере
  • Строка подключения к БД, порт, имя БД, УЗ для подключения. Если БД не создана, то установить галочку и указать УЗ админа БД для создания.
  • Строка подключения к rabbitMQ, порт, виртуальный хост, созданный ранее, УЗ и точка обмена (можно указать произвольное значение)
  • Папка с данными — каталог, где будут храниться данные директум
  • Пароль — пароль для УЗ администратора, сервисной УЗ директум
  • Код системы — для тестового контура можно указать произвольное значение

Установка DirectumRX 4.10 с онлайн редактором Р7 Офис

После заполнения строк нажимаем Установить.

Если не проходит проверка работоспособности сервисов, проверяем состояние докер контейнеров на сервере.

При постоянном рестарте контейнера sungerohaproxy и повторении ошибки в его логе

Установка DirectumRX 4.10 с онлайн редактором Р7 Офис

Можно в ручном режиме копировать ключ с сервера внутрь контейнера с последующим рестартом командой:

docker cp s7-office.site.key.pem sungerohaproxy:/usr/local/etc/ssl.pem.key && docker restart sungerohaproxy

Далее нажимаем кнопку «Повторить» на веб странице.

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

Интеграция онлайн редактора с DirectumRX

Настройка Directum

Откроем веб страницу и включим онлайн редактирование, как на скриншоте

Установка DirectumRX 4.10 с онлайн редактором Р7 Офис

Переходим на страницу установщика (на порту 5000) и, на вкладке «Настройки сервисов», добавляем переменные (ENABLE_COLLABORATIVE_EDITING, ENABLED_WEB_EDITORS) в веб сервер:

Установка DirectumRX 4.10 с онлайн редактором Р7 Офис

начения переменных, как на скриншоте.

Далее, нажимаем кнопку «Применить настройки» внизу страницы и ждем перезапуска сервисов.

После успешного перезапуска отключаем визуальный режим конфигурирования и опускаемся до блока SungeroWebServer и добавляем дополнительный блок в конце, соблюдая синтаксис yml:

WEB_EDITORS:
    onlyoffice:
    -   '@name': 'onlyoffice'
        '@url': '/collaboration'
        '@extensions': 'doc;docx;dotx;xlsx;xltx;xls;pptx;potx;ppt;odt;ott;ods;ots;odp;otp;txt;html;rtf;csv;pdf;epub;xps;djvu;'
        '@supportEncrypted': 'false'
        '@supportStrictAccess': 'false'

Установка DirectumRX 4.10 с онлайн редактором Р7 Офис

Снова применяем настройки и ждем перезапуска сервисов.

В случае постоянного перезапуска контейнера хапрокси, после перезапуска сервисов, снова выполняем копирование сертификата и рестарт хапрокси

docker cp s7-office.site.key.pem sungerohaproxy:/usr/local/etc/ssl.pem.key && docker restart sungerohaproxy

После выполненных действий в веб клиенте должна быть доступна кнопка настройки онлайн редактирование
Установка DirectumRX 4.10 с онлайн редактором Р7 Офис

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

Конфигурационный файл расположен в директории, указанной при установке в строке «Папка с данными», в примере /home/directum

Открываем файл на редактирование

nano /home/directum/haproxy/haproxy.cfg

Добавляем строку в секцию frontend directumrx после строк в формате use_backend

use_backend collaboration-backend if { path_beg -i /collaboration/ /editor/ }

Установка DirectumRX 4.10 с онлайн редактором Р7 Офис

После секций вида backend <…> добавим секцию решения:

backend collaboration-backend
    mode http
    http-request set-header Host directum-ubuntu.s7-office.site
    http-request set-header X-Forwarded-Host "directum-ubuntu.s7-office.site/editor" if { path_beg -i /editor/ }
    http-request set-header X-Forwarded-Host "directum-ubuntu.s7-office.site/collaboration" if { path_beg -i /collaboration/ }
    http-request set-header X-Forwarded-Proto https
    http-request set-header X-Real-Ip %[src]
    http-request set-header X-Original-Url %[path]
    http-request set-path '%[path,regsub("^/(editor|collaboration)/","/","i")]'
    server collaboration-service 192.168.27.227:8090 no-ssl

где directum-ubuntu.s7-office.site — имя сервера с директум

192.168.27.227:8090 — адрес и порт сервера с онлайн редактором

После сохранения изменений в конфигурационном файле перезапускаем хапрокси

docker restart sungerohaproxy

Настройки коллаборации редактора

Файлы интеграции онлайн редактора доступны по ссылке.

Переносим архив с файлами на сервер, создаем для него каталог, распаковываем и переходим в директорию:

mkdir /collab && unzip integration_r7_ofis_Directum.zip -d /collab/ && cd /collab/collab-build-v1.5.0

Открываем файл с переменными ./settings/tenant1.env на редактирование и меняем значения переменных:

CLIENT_HOST=directum-ubuntu.s7-office.site
 
CLIENT_PATH=/Client
EDITOR_PATH=/editor
SELF_PATH=/collaboration
 
CLIENT_USERNAME=Service User
CLIENT_PASSWORD=Password123!
 
GOOGLE_ANALYTICS_ID=GA_ID

Где CLIENT_HOST — имя, по которому доступен сервис директум

CLIENT_PATH — можно найти на странице лаунчера/установщика «Общие настройки» переменная WEB_HOST_PATH_BASE

CLIENT_PASSWORD — заданный при установке пароль

В подпапке settings откройте конфигурационный файл settings.share.env.

Раскомментируйте в нем параметр JWT_SECRET и укажите в нем строку для генерации JWT-токенов длиной не менее 20 символов.
Установка DirectumRX 4.10 с онлайн редактором Р7 Офис

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

Открываем файл docker-compose.yml на редактирование и изменяем образ на Р7, приводим блок к виду:

documentserver:
  image: r7office/documentserver-ee
  depends_on:
    - postgres
    - redis
    - rabbit
    - saver
  volumes:
    - ./oo_data:/var/lib/r7-office/documentserver/App_Data
    - ./oo_logs:/var/log/r7-office
    - ./fonts:/usr/share/fonts
  env_file:
    - settings/system/oo.env
    - settings/settings.share.env
  logging:
    driver: "json-file"
    options:
      max-size: "10m"
      max-file: "5"
  hostname: documentserver
  container_name: meta_documentserver
  restart: on-failure

Также добавляем в файл дополнительно 2 блока:

collaboration_tenant1:
  logging:
    driver: "json-file"
    options:
      max-size: "10m"
      max-file: "5"
  image: ${DOCKER_REGISTRY}/collaboration/backend:${VERSION_TAG}
  env_file:
    - settings/system/collaboration.env
    - settings/tenant1.env
    - settings/settings.share.env
  environment:
    - CALLBACK_URL=http://collaboration_tenant1:3333/callback
    - INTERNAL_HAPROXY_URL=http://haproxy_tenant1/
  volumes:
    - ./db_tenant1/:/db/
  hostname: collaboration_tenant1
  restart: on-failure
  container_name: collaboration_tenant1
  depends_on:
    - saver
 
haproxy_tenant1:
  logging:
    driver: "json-file"
    options:
      max-size: "10m"
      max-file: "5"
  image: ${DOCKER_REGISTRY}/collaboration/haproxy:${VERSION_TAG}
  hostname: haproxy
  environment:
    - COLLABORATION_SERVICE_ADDRESS=collaboration_tenant1:3333
  ports:
    - "8090:80"
  restart: on-failure
  container_name: haproxy_tenant1
  depends_on:
    - documentserver
    - collaboration_tenant1
    - staticfiles

Итоговый файл docker-compose.yml должен выглядеть так

Сохраняем и запускаем коллаборацию онлайн редактора

docker-compose up -d

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

Установка DirectumRX 4.10 с онлайн редактором Р7 Офис

если все корректно запущено, откроется страница

Установка DirectumRX 4.10 с онлайн редактором Р7 Офис

Далее, можно выполнить тестирование редактора.

Создаем документ по кнопке Создать, выбираем Прочее — Простой документ, создается карточка.

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

Установка DirectumRX 4.10 с онлайн редактором Р7 Офис

Установка DirectumRX 4.10 с онлайн редактором Р7 Офис

Вынос онлайн редактора на другой сервер

Вариант выноса редактора в контейнере докер

Вариант выноса редактора на другой сервер

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

docker cp haproxy_tenant1:/usr/local/etc/haproxy/haproxy.cfg ./tenant_haproxy.cfg

добавляем монтирование файла в композ docker-compose.yml и переменные с именем и портом ДС

haproxy_tenant1:
  logging:
    driver: "json-file"
    options:
      max-size: "10m"
      max-file: "5"
  image: ${DOCKER_REGISTRY}/collaboration/haproxy:${VERSION_TAG}
  hostname: haproxy
  environment:
    - COLLABORATION_SERVICE_ADDRESS=collaboration_tenant1:3333
    - DOCUMENTSERVER_ADDRESS=ds.test4.s7-office.site # здесь указываем доменное имя или ip ДС
    - DOCUMENTSERVER_PORT=443 # указываем порт ДС
  ports:
    - "8090:80"
    - "8095:8095" # вынос порта для просмотра статистики хапрокси (по дефолту УЗ и пароль - пустые строки)
  volumes:
    - ./tenant_haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg # файл конфига хапрокси
  restart: on-failure
  container_name: haproxy_tenant1
  depends_on:
    - documentserver
    - collaboration_tenant1
    - staticfiles

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

resolvers docker_dns
  nameserver dns1 127.0.0.11:53
  nameserver dns2 8.8.8.8:53 # пример на сервере google
  accepted_payload_size 8192 # allow larger DNS payloads

Если ДС доступен по протоколу https, то необходимо добавить в конце строки check ssl verify none

server-template docserver 20 ${DOCUMENTSERVER_ADDRESS}:${DOCUMENTSERVER_PORT} check port ${DOCUMENTSERVER_PORT} resolvers docker_dns init-addr none check ssl verify none

Убедимся, что ДС доступен для хапрокси на странице статистики.