Предварительные требования (Обязательное условие)
Для настройки интеграции необходимо предварительно развернуть сервер ONLYOFFICE Docs (Document Server).
Важно
Установка ONLYOFFICE Docs должна производиться на отдельной машине (выделенном сервере), обособленно от сервера Vitro-CAD.
Официальные дистрибутивы ONLYOFFICE Docs для различных операционных систем, а также руководства по их установке доступны в официальной документации ONLYOFFICE.
После успешного развертывания ONLYOFFICE Docs на отдельном сервере можно переходить к пошаговой настройке интеграции с Vitro-CAD.
1. Схема сетевого взаимодействия
Для работы редактора должны выполняться 4 сетевых соединения:
Инициатор | Адрес назначения | Назначение |
|---|---|---|
Браузер пользователя | Vitro-CAD | Открытие страницы редактора и получение конфигурации |
Браузер пользователя | DocumentServerUrl | Загрузка интерфейса и ресурсов ONLYOFFICE |
ONLYOFFICE Docs | PortalPublicUrl | Загрузка исходного файла и отправка результата сохранения (callback) |
Vitro-CAD | DocumentServerUrl | Проверка активной сессии и загрузка сохраненного файла |
- DocumentServerUrl — сетевой адрес сервера ONLYOFFICE Docs. Должен быть доступен из браузеров пользователей и с сервера Vitro-CAD.
- PortalPublicUrl — сетевой адрес сервера Vitro-CAD. Должен быть доступен с сервера ONLYOFFICE Docs.
2. Проверка Vitro-CAD и настройка просмотрщика файлов
Проверка версии
- Убедитесь, что версия серверной части Vitro-CAD — не ниже 2026.1.5.3.
- Если потребовалось обновление сервера, после его проведения перезапустите службу Vitro Server.
Настройка просмотрщика в Центре администрирования (GUI)
Чтобы при клике на файл соответствующего формата открывался редактор ONLYOFFICE Docs, необходимо вручную назначить просмотрщик для нужных расширений:
- Перейдите в Центр администрирования Vitro-CAD.
- В левом боковом меню выберите раздел Настройки → Списки → Расширения файлов. Список скрытый.
- Нажмите на необходимое расширение в списке (например, docx, xlsx, pptx и т. д.).
- В правой панели свойств найдите поле Просмотрщик файлов.
- Введите или выберите из выпадающего списка значение Only Office (onlyOffice).
- Сохраните изменения.
- Повторите процедуру для остальных целевых расширений файлов.
Примечание
Если просмотрщик не назначен расширению, при попытке открытия файл будет автоматически скачиваться на ПК вместо перехода в веб-редактор ONLYOFFICE.
Поддерживаемые форматы:
- Документы: doc, docm, docx, dot, dotm, dotx, odt, ott, rtf, txt;
- Таблицы: csv, ods, ots, xls, xlsb, xlsm, xlsx, xlt, xltm, xltx;
- Презентации: odp, otp, pot, potm, potx, pps, ppsm, ppsx, ppt, pptm, pptx.
Проверка назначения просмотрщика через БД (опционально)
Проверить корректность привязки просмотрщика в базе данных можно с помощью SQL-запроса:
SELECT fe.internal_name AS extension, fv.internal_name AS viewer FROM public.file_extension fe LEFT JOIN public.file_viewer fv ON fv.id = fe.file_viewer WHERE fe.internal_name IN ( 'doc', 'docm', 'docx', 'dot', 'dotm', 'dotx', 'odt', 'ott', 'rtf', 'txt', 'csv', 'ods', 'ots', 'xls', 'xlsb', 'xlsm', 'xlsx', 'xlt', 'xltm', 'xltx', 'odp', 'otp', 'pot', 'potm', 'potx', 'pps', 'ppsm', 'ppsx', 'ppt', 'pptm', 'pptx' ) ORDER BY fe.internal_name;
Для всех настроенных расширений в колонке viewer должно отображаться значение onlyOffice.
3. Сетевой доступ между серверами
- Выберите адреса подключения:
- DocumentServerUrl (например,
https://docs.example.ru/— сетевой адрес сервера ONLYOFFICE Docs, доступный с рабочих мест и с сервера Vitro-CAD. - PortalPublicUrl (например,
https://vitro.example.ru/— сетевой адрес Vitro-CAD, доступный с сервера ONLYOFFICE Docs.
- DocumentServerUrl (например,
- Проверьте доступность адресов и портов между серверами:
- Windows (PowerShell):
Test-NetConnection docs.example.ru -Port 443 Test-NetConnection vitro.example.ru -Port 443
- Linux (Bash):
curl -I https://docs.example.ru/healthcheck curl -I https://vitro.example.ru/
- Windows (PowerShell):
Важно
Если страница Vitro-CAD открывается по HTTPS, адрес DocumentServerUrl также обязан использовать HTTPS. В противном случае браузер заблокирует загрузку ONLYOFFICE как Mixed Content.
4. Настройка Vitro-CAD (onlyoffice.json)
- Создайте или отредактируйте файл onlyoffice.json на сервере Vitro-CAD:
- Windows:
C:\Program Files\Vitro Software\Vitro\Server\Conf\onlyoffice.json - Linux:
/etc/Vitro/Server/Conf/onlyoffice.json
- Windows:
- Укажите параметры конфигурации:
{ "DocumentServerUrl": "https://docs.example.ru/", "PortalPublicUrl": "https://vitro.example.ru/", "JwtSecret": "<JWT_SECRET>", "SessionLookupDays": 7 }
Параметры конфигурации:
Параметр | Обязательный | Назначение |
|---|---|---|
DocumentServerUrl | Да | Корневой адрес ONLYOFFICE Docs (доступный клиентам и серверу Vitro-CAD) |
PortalPublicUrl | Да | Корневой адрес Vitro-CAD (доступный с сервера ONLYOFFICE Docs) |
JwtSecret | Да | Секрет подписи запросов между Vitro-CAD и ONLYOFFICE Docs |
SessionLookupDays | Нет | Глубина поиска активной сессии в днях (по умолчанию 7) |
Важно
Протокол и порт должны точно соответствовать реальному адресу.
После изменения onlyoffice.json необходимо перезапустить Vitro Server.
5. Настройка JWT в ONLYOFFICE Docs
- Сгенерируйте случайный секрет длиной 32 байта:
- Windows (PowerShell):
$bytes = New-Object byte[] 32 $generator = [System.Security.Cryptography.RandomNumberGenerator]::Create() $generator.GetBytes($bytes) [Convert]::ToBase64String($bytes) $generator.Dispose()
- Linux:
openssl rand -base64 32
- Windows (PowerShell):
- Укажите полученное значение в параметре JwtSecret файла onlyoffice.json.
- Откройте файл local.json на сервере ONLYOFFICE Docs:
- Windows:
C:\Program Files\ONLYOFFICE\DocumentServer\config\local.json - Linux:
/etc/onlyoffice/documentserver/local.json
- Windows:
- Включите проверку JWT и укажите тот же секрет (добавьте в файл local.json):
{ "services": { "CoAuthoring": { "token": { "enable": { "browser": true, "request": { "inbox": true, "outbox": true } } }, "secret": { "inbox": { "string": "<JWT_SECRET>" }, "outbox": { "string": "<JWT_SECRET>" }, "session": { "string": "<JWT_SECRET>" } } } } }
Важно
Значения JwtSecret, secret.inbox.string, secret.outbox.string и secret.session.string должны полностью совпадать.
Важно
Не изменяйте файл default.json, так как его параметры восстанавливаются при обновлении ONLYOFFICE Docs.
Разрешение доступа к частным IP-адресам
Если PortalPublicUrl содержит частный IP-адрес, ONLYOFFICE Docs может заблокировать загрузку файла и callback. В этом случае добавьте в local.json на сервере ONLYOFFICE Docs:
{
"services": {
"CoAuthoring": {
"request-filtering-agent": {
"allowPrivateIPAddress": true,
"allowMetaIPAddress": false
}
}
}
}
6. HTTPS и сертификаты
Для производственной установки следует использовать доверенные сертификаты и HTTPS для Vitro-CAD и ONLYOFFICE Docs.
Необходимо проверить два независимых условия:
- Браузеры пользователей доверяют сертификату
DocumentServerUrl. - Сервер ONLYOFFICE Docs доверяет сертификату
PortalPublicUrl.
7. Перезапуск служб
После изменения local.json на сервере ONLYOFFICE Docs и onlyoffice.json на сервере Vitro-CAD перезапустите службы.
На сервере ONLYOFFICE Docs и Vitro-CAD (Linux):
sudo systemctl restart ds-converter ds-docservice ds-metrics sudo systemctl restart vitro-server
На сервере ONLYOFFICE Docs (Windows PowerShell от имени администратора):
Restart-Service DsConverterSvc Restart-Service DsDocServiceSvc Restart-Service DsProxySvc
После этого перезапустите службу Vitro Server на сервере Vitro-CAD. Открытые вкладки редактора в браузерах пользователей необходимо перезагрузить.
8. Проверка работы интеграции
Проверка доступности ONLYOFFICE Docs
С рабочего места пользователя и с сервера Vitro-CAD выполните:
Invoke-WebRequest "https://docs.example.ru/healthcheck" -UseBasicParsing Invoke-WebRequest "https://docs.example.ru/web-apps/apps/api/documents/api.js" -UseBasicParsing
Запрос healthcheck должен вернуть true, оба запроса должны завершиться со статусом 200.
Проверка связи ONLYOFFICE с Vitro-CAD
С сервера ONLYOFFICE Docs проверьте доступность PortalPublicUrl:
curl -I https://vitro.example.ru/
После открытия документа ONLYOFFICE Docs обращается к адресу:
/onlyOffice/api/editor/getDocument/...
Проверка открытия и сохранения
- В Vitro-CAD откройте файл docx, xlsx или pptx.
- Убедитесь, что файл открылся в новой вкладке ONLYOFFICE.
- Внесите изменение и нажмите кнопку сохранения.
- Закройте вкладку редактора.
- Проверьте появление новой версии файла в Vitro-CAD.
9. Права пользователей
Vitro-CAD передает в ONLYOFFICE идентификатор и имя пользователя текущей сессии.
Права Vitro-CAD | Режим ONLYOFFICE |
|---|---|
Нет Read | Открытие запрещено |
Есть Read, нет Upload | Только просмотр |
Есть Read и Upload | Редактирование актуальной версии |
Открыта конкретная версия | Только просмотр независимо от Upload |
10. Диагностика и устранение неполадок
Симптом | Причина и решение |
|---|---|
Вместо редактора скачивается файл |
|
Пустой документ или «Загрузка не удалась» | ONLYOFFICE Docs не смог загрузить файл с сервера Vitro-CAD. Проверьте PortalPublicUrl, маршрутизацию и файрволл между серверами, параметр allowPrivateIPAddress и логи docservice. |
«Не удается сохранить документ» | ONLYOFFICE не может отправить POST на /onlyOffice/api/editor/processCallback/... или Vitro-CAD не может скачать файл по предоставленному адресу. |
Invalid token или код команды 6 | Не совпадают секреты JWT в onlyoffice.json и local.json (inbox, outbox, session), либо службы не были перезапущены. |
socket hang up, ECONNREFUSED | ONLYOFFICE Docs не может подключиться к PortalPublicUrl (например, ошибочно указан HTTP-протокол на HTTPS-порту или сетевое подключение заблокировано). |
Журналы (логи) ONLYOFFICE Docs:
- Windows:
C:\Program Files\ONLYOFFICE\DocumentServer\Log\docservice,...\converter - Linux:
/var/log/onlyoffice/documentserver/docservice/,...\converter
11. Текущие ограничения
- История изменений и changes.zip не сохраняются отдельно в Vitro-CAD и не отображаются в интерфейсе истории ONLYOFFICE.
- Сравнение версий средствами ONLYOFFICE не подключено.
- Редактируется только актуальная версия; исторические версии открываются только для просмотра.
- После ForceSave финальный callback со статусом 2 может создать дополнительную версию с тем же содержимым.