Содержание
Дополнительная информация по установке/настройке 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

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

./do.sh rabbitmq upПо окончании появится сообщение «Container ‘sungerorabbitmq’ has status ‘running’», а также, будет доступна веб страница rabbitmq на порту 15672 сервера.
Настройка rabbitmq
- Открываем страницу в браузере http://ip_адрес_сервера:15672
- Вводим guest/guest логин и пароль.
- На открывшейся странице создайте пользователя с правами администратора. Для этого перейдите на вкладку «Admin» и в разделе «Add a user» заполните поля Username, Password – логин и пароль администратора RabbitMQ. Права администратора в дальнейшем нужны для создания пользователя, от имени которого система Directum RX будет подключаться к RabbitMQ.
- В поле Tags выберите значение Admin и нажмите на кнопку Add user.
- Создайте виртуальный хост RabbitMQ для работы с Directum RX. Для этого на вкладке «Admin» на панели справа перейдите в группу Virtual Hosts и в разделе «Add a new virtual host» в поле Name заполните название хоста, например, rxhost. Затем нажмите на кнопку Add virtual host.
- На панели справа перейдите в группу Users.
- Создайте пользователя, от имени которого система Directum RX сможет подключаться к RabbitMQ. Для этого на вкладке «Admin» в разделе «Add a user» заполните поля Username, Password – логин и пароль пользователя. Затем в поле Tags выберите значение None и нажмите на кнопку Add user.
- Выберите созданного пользователя в списке, затем в разделе «Permissions» в поле Virtual Host выберите созданный виртуальный хост и нажмите на кнопку Set permission.
- В разделе «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, порт, виртуальный хост, созданный ранее, УЗ и точка обмена (можно указать произвольное значение)
- Папка с данными — каталог, где будут храниться данные директум
- Пароль — пароль для УЗ администратора, сервисной УЗ директум
- Код системы — для тестового контура можно указать произвольное значение


docker cp s7-office.site.key.pem sungerohaproxy:/usr/local/etc/ssl.pem.key && docker restart sungerohaproxyДалее нажимаем кнопку «Повторить» на веб странице. После прохождения всех шагов директум будет доступен по ссылке внизу страницы установщика.
Интеграция онлайн редактора с DirectumRX
Настройка Directum
Откроем веб страницу и включим онлайн редактирование, как на скриншоте

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 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 символов.

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Убедимся, что ДС доступен для хапрокси на странице статистики.
Была ли полезна статья?