Настройка "Р7-Офис. Сервер документов"

  • Р7-Офис. Сервер документов должен быть установлен на машину с сервером Web-клиента.

    • Если версия Web-клиента выше версии 6.1, сборка 735 и выше, Р7-Офис можно устанавливать отдельно от сервера Web-клиента.

    • Если версия Web-клиента ниже версии 6.1, сборка 735 и выше, Р7-Офис необходимо устанавливать на сервер Web-клиента. Если Р7 будет установлен отдельно от серверных компонентов Docsvision, функции консолидации и объединения версий не будут работать. Также могут возникать проблемы с редактированием файла. Аналогичное поведение будет наблюдаться, если в конфигурационном файле указать адрес Р7 офиса, установленного на другой машине Linux.

  • Для установки Р7-Офис требуется минимальная версия ОС Astra Linux 1.7.3.

"Р7-Офис. Сервер документов" или "OnlyOffice" используется для предварительного просмотра файлов в карточках и для консолидации версий документов при согласовании. Данный раздел описывает установку и настройку Р7-Офис. Сервер документов, а также подготовку Web-клиента для использования функций предварительного просмотра и консолидации.

Предварительный просмотр при помощи "Р7-Офис. Сервер документов" или OnlyOffice позволяет отображать предпросмотр не печатной версии документа, а непосредственно файла. Например, для документа Excel появляется возможность скопировать данные из файла с сохранением структуры и форматирования. Возможность предварительного просмотра сохраняется, но функциональность ограничена набором возможностей Р7, например, новый компоненте не поддерживает функцию поворота на 90 градусов.

Р7-Офис сервер документов может быть установлен и настроен самостоятельно по инструкции ниже или можно сразу подключиться к активному серверу Р7. Если планируется подключаться к активному серверу, перейдите сразу к указанию адреса Р7 Сервера документов в конфигурационном файле Web-клиента.

Установка Р7-Офис. Сервер документов

Чтобы настроить работу Р7-Офис для включения предварительного просмотра и работы консолидации:
  1. Установите "Р7-Офис. Сервер документов" согласно официальной инструкции на сайте Р7-Офис. Потребуется лицензия на Р7-Офис. В случае установки лицензии в ручном режиме, дополнительно может потребоваться назначить права на файл license.lic:

    chmod 644 /var/www/r7-office/Data/license.lic
  2. Если все действия выполнены правильно, при открытии в браузере адреса http://localhost:port появится сообщение "Сервер документов запущен".

  3. Создайте файл конфигурации для Р7-Офис /etc/nginx/includes/ds-docsvision.conf.

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

    systemctl reload nginx
  5. В конфигурационный файл добавьте следующие строки:

    location ~* ^(\/upload.*)(\/.*) {
      alias /tmp$1$2;
      add_header Content-Disposition "attachment; filename*=UTF-8''$arg_filename";
    }
  6. В файле /etc/r7-office/documentserver/local.json задайте для параметров inbox, outbox и browser значение false. Затем перезапустите службу сервера документов:

    sudo systemctl restart ds-docservice.service

    Если Р7-Офис и Web-клиент находятся на одной машине и для связи между собой используют один частный IP адрес, для корректного отображения предварительного просмотра необходимо изменить значение следующих параметров в файле /etc/r7-office/documentserver/default.json:

    "request-filtering-agent" : {
      "allowPrivateIPAddress": false,
      "allowMetaIPAddress": false
    },

    По умолчанию значение параметров установлено в false, необходимо изменить значение на true.

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

    sudo service nginx restart && sudo supervisorctl restart all
  7. В целях повышения безопасности настоятельно рекомендуется перевести сервер документов на использование HTTPS. Если переводить сервер документов на HTTPS не планируется, перейдите к пункту Конфигурация Web-клиента. Для этого на сервере с установленным Р7 необходимо установить самоподписанный сертификат.

  8. Создать сертификат можно при помощи утилиты OpenSSL. Запустите Win64 OpenSSL Command Prompt от имени администратора, перейдите в директорию, в которой располагается файл r7-cert.pfx

  9. Выполните команду:

    openssl req -x509 -newkey rsa:2048 -keyout test.key -nodes -out test.crt -subj "/CN=r7.domain.com (1)
    1 Вместо r7.domain.com укажите имя сервера с установленным Р7.
  10. Установите сертификат в системе на сервере Web-клиент, поместив его в папку /usr/local/share/ca-certificates/, после чего необходимо будет выполнить команду:

    sudo update-ca-certificates -v -f.
  11. После установки сертификата переключите Р7 на использование HTTPS с созданным сертификатом согласно https официальной инструкции на сайте Р7.

  12. Переведите Web-клиент на использование HTTPS.

Конфигурация Web-клиента

Для использования "Р7-Офис. Сервер документов" с целью повышения безопасности настоятельно рекомендуется перевести Web-клиент на использование HTTPS. Если переводить Web-клиент на использование HTTPS не планируется, перейдите сразу к указанию адреса Р7 Сервера документов в конфигурационном файле Web-клиента.

  1. Создайте самоподписанный сертификат при помощи утилиты OpenSSL:

    openssl req -x509 -newkey rsa:4096 -sha256 -keyout .\out\cert.key -out .\out\certificate.crt -subj "/CN=http://WebClientDomain.com" -days 600
  2. Откройте конфигурационный файл Web-клиента по адресу /usr/lib/docsvision/webclient/appsettings.json в любом текстовом редакторе и отредактируйте следующие параметры:

      "Kestrel": {
        "Endpoints": {
          "Http": {
            "Url": "https://*:5004", (1)
            "Certificate": {
            "Path": "/path/to/your.crt", (2)
            "KeyPath": "/path/to/your.key" (3)
          }
        }
      }
    1 Адрес, по которому будет доступен Web-клиент.
    2 Путь к сертификату.
    3 Путь к закрытому ключу сертификата.
  3. Следующим шагом в том же конфигурационном файле необходимо указать адрес сервера документов Р7 и определить режим предварительного просмотра:

      "Docsvision": {
        "WebClient": {
          "SettingGroups": {
            "WebClient": {
              "ServerR7ConnectionAddress": "https://dvserver.preview.com", (1)
              "ServerR7UploadDirectory": "/tmp/upload", (2)
              "FilePreviewMode": "2", (3)
            }
          }
        }
      }
    1 ServerR7ConnectionAddress — URL сервера документов Р7-Офис/OnlyOffice. Настройка обязательна для заполнения. Если URL сервера документов Р7 не указан, остальные настройки будет проигнорированы, и будет использоваться стандартный инструмент предварительного просмотра PDF.js.
    2 ServerR7UploadDirectory — каталог загрузки консолидируемых файлов.
    3 FilePreviewMode — определяет, какой компонент используется для предпросмотра. Значения: 0 — предпросмотр отключен, 2 — предпросмотр с помощью Р7.
  4. Откройте в браузере адрес Р7-Офис сервер документов, например, https://dvserver.preview.com.

  5. Откройте карточку с приложенным файлом. Предпросмотр должен отображаться.

Авторизация с помощью токена

Работа с Р7-Офис сервер документов для консолидации и предварительного просмотра поддерживает авторизацию с помощью токена, что является более безопасным вариантом стандартного режима работы.

Чтобы настроить авторизацию с помощью токена:
  1. В конфигурационном файле Р7-Офис по адресу /etc/r7-office/documentserver/local.json установите параметры inbox, outbox и browser в значение true для использования токенов.

  2. В том же конфигурационном фйле local.json укажите секретное слово для параметров inbox, outbox, session, используя цифры и буквы латинского алфавита, фрагмент конфигурационного файла см. ниже.

      "services": {
        "CoAuthoring": {
          "sql": {
            "type": "postgres",
            "dbHost": "localhost",
            "dbPort": "5432",
            "dbName": "r7office",
            "dbUser": "r7office",
            "dbPass": "r7office"
          },
          "redis": {
            "host": "localhost"
          },
          "token": {
            "enable": {
              "request": {
                "inbox": true,
                "outbox": true
              },
              "browser": true
            },
            "inbox": {
              "header": "Authorization"
            },
            "outbox": {
              "header": "Authorization"
            }
          },
          "secret": {
            "inbox": {
              "string": "verysecretstring" (1)
            },
            "outbox": {
              "string": "verysecretstring" (2)
            },
            "session": {
              "string": "verysecretstring" (3)
            }
          }
        }
      },
    1 Секретное слово для параметра inbox.
    2 Секретное слово для параметра outbox.
    3 Секретное слово для параметра session.
  3. Перезапустите сервер документов Р7.

  4. В конфигурационном файле Web-клиента по адресу /usr/lib/docsvision/webclient/appsettings.json в разделе "Docsvision"  "WebClient" > "SettingGroups" > "WebClient" укажите параметр ServerR7SecretToken со значением секретного слова.

  5. Перезапустите dvwebclient.

  6. Если предыдущие шаги настройки выполнены корректно, Р7-Офис сервер документов должен работать без ошибок. Если при предварительном просмотре или консолидации возникают ошибки с упоминанием токена в тексте ошибки, настройка выполнена некорректно, проверьте правильность выполнения описанных выше шагов.