Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы
Редакторы
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
Команда
Команда
Мобильные редакторы
Мобильные редакторы
Облачный офис
Облачный офис
Почта
Почта
Органайзер
Органайзер
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

Установка и интеграция Directum RX с сервером документов

Обновлено: 15.12.25
Уточнение

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

Внесение записей в глобальный DNS:

Перед инсталляцией рекомендуется внести необходимые записи в глобальный dns, для возможности работы приложения, после всех указанных ниже действий.
Необходимо задать две А записи: для Directum RX и сервера документов (если предполагается использование сервера документов на отдельном сервере).

На сервере с Directum RX:

Уточнение

Установка производилась на ОС Debian 11

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

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

Важно

Для версии 4.11 требуется версия докер от 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

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

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

После сохранения конфига запускаем 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, порт, виртуальный хост, созданный ранее, УЗ и точка обмена (можно указать произвольное значение)
  • Папка с данными — каталог, где будут храниться данные директум
  • Пароль — пароль для УЗ администратора, сервисной УЗ директум
  • Код системы — для тестового контура можно указать произвольное значение

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

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

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

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

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

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

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

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

Настройка Directum

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

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

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

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

После успешного перезапуска отключаем визуальный режим конфигурирования и опускаемся до блока 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'

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

Уточнение

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

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

После выполненных действий в веб клиенте должна быть доступна кнопка настройки онлайн редактирование

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

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

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

nano /home/directum/haproxy/haproxy.cfg

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

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

После секций вида 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 символов.

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

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

documentserver:
  image: downloads.r7-office.ru:9010/r7office/documentserver-ee:2024.3.2.622
  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 registry Р7:

docker login -u admin -p jgbHw224teWqf https://downloads.r7-office.ru:9010

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

docker-compose up -d

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

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

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

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

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

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

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

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

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

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