По дороге с облаками: интеграция пакета ONLYOFFICE в Nextcloud

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Надеюсь, ни для кого не секрет, что вследствие определённых причин интернет начал сильно преображаться. Например, привычные сервисы становятся недоступны в силу блокировок или собственного решения компании о прекращении предоставления услуг в отдельных регионах.

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

Хранение и обмен документами:

  • Google Drive
  • iCloud
  • Яндекс.Диск

Совместное создание и редактирование документов:

  • Microsoft 365
  • Google Docs
  • Яндекс.Документы

Пожалуй, разумным выбором в такой ситуации будет настройка собственных сервисов на VPS или локальном сервере, если есть необходимость ограничить распространение документов рамками внутренней сети. Как минимум в качестве резерва. Для обеспечения хранения и удобного обмена файлами отлично подходит Nextcloud, и думаю, многие уже об этом знают. Так же как и про то, что данное решение уже давно переросло функционал простого хранилища и превратилось в полноценную рабочую среду, способную организовать многие рабочие процессы на собственном локальном сервере или VPS.

Если вдруг нужна инструкция по установке Nextcloud, то подсмотреть, например, для FreeBSD можно здесь. Я же хочу уделить внимание возможности замены ставших для многих уже привычными, облачных сервисов совместной работы с офисными документами.

После длительных поисков и раздумий было решено остановить своё внимание на продукте ONLYOFFICE, являющемся автономным сервером и имеющем дополнительное приложение, позволяющее интегрировать создание/редактирование документов в рабочую среду Nextcloud.

И если с установкой приложения в Nextcloud всё предельно просто, оно устанавливается через внутренний магазин и из настроек для запуска нужно указать только адрес (где расположен сервер документов), то с настройкой серверной части есть несколько не очень очевидных нюансов, на разбор которых ушло приличное количество времени.

Здесь, пожалуй, стоить сделать небольшое отступление и пояснить суть моего выбора. Ведь есть же Nextcloud Office, и устанавливается он из встроенного магазина приложений буквально в несколько кликов. Но при выборе, на чём остановиться в постройке собственной рабочей среды, было одно немаловажное отличие этих двух продуктов, перевесившее в пользу именно ONLYOFFICE.

А разница тут довольно принципиальная. Если Nextcloud Office — это по своей сути тот же LibreOffice со своими плюсами / минусами и тараканами в плане совместимости с форматированием в документах, созданных с использованием MS Office, то пакет ONLYOFFICE — уже обещает максимальную совместимость по формату.

Приведу цитату с сайта разработчиков:

«ONLYOFFICE заточен на работу с *.docx, *.xlsx и *.pptx и обладает максимальной совместимостью с форматами MS Office. Это буквально означает, что все объекты, которые есть в редакторах ONLYOFFICE, были созданы в соответствии со стандартами MS Office (Это четыре тома и более семи тысяч страниц). Мы уже много сделали, но, конечно, много всего ещё предстоит добавить.»

За много лет накопилось огромное количество текстовой документации в формате *.doc/*.docx и не меньшее количество таблиц с данными и расчётами в формате *.xls/*.xlsx, заниматься переделыванием в новый формат совершенно не было никакого желания, собственно это и определило, на чём остановить свой выбор.

Что ж, пора приступать к увлекательному процессу установки и настройки. Не стоит забывать и тот момент, что описывается установка бесплатной версии «community edition», сервер которой, естественно, имеет свои ограничения, однако и такого функционала вполне достаточно для небольшого коллектива в 10-15 человек. Собственно, ограничение связано с максимальным количеством одновременных подключений (не более 20) и отсутствием мобильных веб-редакторов, а также технической поддержки.

Самая большая проблема, с которой я столкнулся в процессе установки, это то, что document server не совмещается на одном сервере с Nextcloud, если только специально не использовать Docker. В моём распоряжении виртуализация, и поэтому всё это было небольшой проблемой, но времени отняло немало, пока я понял это и нашёл подтверждение на форуме.

Для установки ONLYOFFICE Document server Community Edition был настроен виртуальный сервер на основе Ubuntu 20.04LTS. Разработчики рекомендуют использовать Debian, Ubuntu или любой другой совместимый дистрибутив с ядром не ниже версии 3.13.

И вот, собственно, пошаговое руководство по установке.

Первым делом обновляем данные о пакетах:

sudo apt-get update
sudo apt-get upgrade

Помимо прочих компонентов, для нормальной работы требуется наличие в системе работающего веб-сервера Nginx. Выполним для этого ряд действий:

sudo apt-get install nginx
sudo systemctl start nginx
sudo systemctl enable nginx

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

Устанавливаем совместимую с дистрибутивом базу данных PostgreSQL:

sudo apt-get install postgresql

После успешной установки необходимо создать саму базу данных и пользователя. Стоит обратить особое внимание, что имя пользователя базы данных обязательно должно быть — onlyoffice, а вот пароль (password) можно указать любой, главное — его не забыть. Он понадобится на этапе установки самого сервера.

sudo-i -u postgres psql -c "CREATE DATABASE onlyoffice;"
sudo -i -u postgres psql -c "CREATE USER onlyoffice WITH password 'password';"
sudo -i -u postgres psql -c "GRANT ALL priviteges ON DATABASE onlyoffice TO onlyoffice;"      

Устанавливаем брокер сообщений RabbitMQ:

sudo apt-get install rabbitmq-server

Устанавливаем дополнения веб-сервера nginx-extras:

sudo apt-get install nginx-extras

По умолчанию ONLYOFFICE работает с портом 80, и при желании его можно изменить (этот способ не подходит для настройки работы через HTTPS). Для смены порта нужно выполнить следующее:

echo onlyoffice-documentserver onlyoffice/ds-port select <номер_порта> | sudo debconf-set-selections       

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

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80--recv-keys CB2DE8E5

echo "deb https://download.onlyoffice.com/repo/debian squeeze main" | sudo tee /etc/apt/source.list.d/onlyoffice.list         

Обновляем пакетный менеджер:

sudo apt-get update

Устанавливаем пакет стандартных шрифтов майкрософт:

sudo apt-get install ttf-mscorefonts-installer

И собственно сама установка ONLYOFFICE Documentserver'а. Вот при выполнении этого этапа и будет запрошен пароль доступа к создаваемой ранее базе данных.

sudo apt-get install onlyoffice-documentserveer

Собственно, на данном моменте уже можно проверить работоспособность. Зайдя в браузере по адресу настраиваемого сервера, мы должны увидеть следующее:



Здесь внизу есть кнопка [GO TO TEST EXAMPLE], по которой можно запустить тестовые документы и проверить работоспособность. Но для этого сначала нужно выполнить:

sudo supervisorctl start ds:example

И теперь можно убедиться в работоспособности сервера и оценить интерфейс.







Главное, после проверки работоспособности не забыть выключить тестовые файлы:

sudo supervisorctl stop ds:example

С установкой серверной части закончено, и пора приступать к настройке клиентской. Здесь всё просто. Заходим в Nextcloud (под аккаунтом администратора), открываем магазин приложений > аккаунт > приложения, в поиске вводим ONLYOFFICE и устанавливаем. После переходим в аккаунт > настройки и в левом меню в разделе «Параметры сервера» ищем пункт ONLYOFFICE.



Здесь в поле «Адрес» ONLYOFFICE Docs пишем адрес сервера, который настраивали на предыдущих шагах, и ниже нажимаем сохранить.



Видим в правом верхнем углу надпись: «Настройки были успешно обновлены (версия 7.0.1.37)», что свидетельствует об успешно установленном соединении с сервером. Помимо этого, ниже на странице появились и дополнительные настройки, позволяющие выбрать типы документов, доступные для редактирования.



Выбираем нужные и ещё раз жмём сохранить. На этом основная настройка завершена. Теперь в меню создания нового файла появились дополнительные пункты для создания файлов текстового редактора / таблиц / презентаций.

Также дополнительно можно настроить работу сервера документов через HTTPS протокол. Здесь всё тоже довольно просто и лаконично.

Останавливаем веб-сервер Nginx:

sudosystemctl stop nginx

Далее нужно скопировать файл конфигурации из шаблона ds-ssl.conf.tmpl и внести ряд изменений:

sudo cd -f  /etc/onlyoffice/documentserver/nginx/ds-ssl.conf.tmpl /etc/onlyoffice/documentserver/nginx/ds-ssl.conf
sudo ln -f -s /etc/onlyoffice/documentserver/nginx/ds-ssl.conf /etc/nginx/conf.d/ds.conf          

Остаётся только отредактировать файл /etc/onlyoffice/documentserver/nginx/ds-ssl.conf заменив {{SSL_CERTIFICATE_PATH}} на путь к файлу SSL сертификата и {{SSL_KEY_PATH}} на путь к файлу приватного ключа SSL сертификата.

Для локального использования можно обойтись и самоподписанным сертификатом, хотя большого смысла в использовании HTTPS в таком случае нет. Но на всякий случай оставлю инструкцию о том, как это можно сделать, вдруг кому-то пригодится.

Для начала создадим приватный RSA ключ, который будет использоваться для создания сертификатов CSR или CRT:

cd /etc/ssl/
sudo opensslgenrsa-out ds.local.key 2048

В данном случае ds.local — имя, присвоенное серверу документов в локальной сети, по которому можно на него зайти через браузер с других компьютеров.

Теперь создадим сертификат CSR:

sudoopensslreq-new -key ds.local.key -out ds.local.csr

В процессе выполнения команды потребуется ввести ряд дополнительных данных, таких как код страны, страна, город, компания, расположение, доменное имя (в данном случае это и есть ds.local), адрес электронной почты.

И последним шагом создадим самоподписанный сертификат CRT:

sudoopenssl x509 -in ds.local.csr -out ds.local.crt -req-signkey ds.local.key -days1800

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

'onlyoffice' => array ('verify_peer_off' => TRUE, ),

Безопасности это, конечно, системе не добавит, но для локального использования вполне подойдёт. Также нужно скопировать сертификат на машину с установленным Nextcloud и импортировать его, используя консоль. Выполнять команду нужно в корневом каталоге, где расположены файлы Nextcloud.

sudo php occ security:certificates:import /path/to/ds.local.crt

Вот, собственно, и все действия необходимые для базовой локальной настройки интеграции пакета ONLYOFFICE в Nextcloud.

Сказать, что это было сложно? Нет, всё достаточно просто, когда знаешь, что делаешь. А вот полезность полученного результата сложно недооценить как для использования в работе небольшого коллектива, так и в домашнем применении. Единственное, что осталось нерешённым, так это то, как совместить оба пакета на одном сервере?

Если вдруг кто-то знает решение, то очень интересно было бы узнать, как это осуществить. В сети я нашёл только информацию о том, что так можно делать только на разных серверах.


НЛО прилетело и оставило здесь промокод для читателей нашего блога:

— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.
Источник: https://habr.com/ru/company/first/blog/657775/


Интересные статьи

Интересные статьи

Привет! Меня зовут Саша Шутай, я тимлид в AGIMA. В прошлой статье я рассказывал, что делать, если на проекте Bitrix сожительствует с Vue.js и поисковые боты не видят контента сайта. А в этой помогу ра...
Ранее мы рассмотрели роль СМЭВ в обеспечении работоспособности портала «Госуслуг», а также общие принципы организации взаимодействия с ним на стороне поставщика сведений посредством Workf...
От редактора блога Google: Интересовались ли вы когда-нибудь тем, как инженеры Google Cloud Technical Solutions (TSE) занимаются вашими обращениями в техподдержку? В сфере ответственн...
Сравнивать CRM системы – дело неблагодарное. Очень уж сильно они отличаются в целях создания, реализации, в деталях.
Культура европейской цивилизации — преимущественно визуальная. Мы привыкли, что большинство интерфейсов, с которыми мы сталкиваемся, передают добрую долю информации при помощи символов. Звук, как...