ONLYOFFICE имеет хорошую поддержку документов в формате Microsoft Office, поэтому выбор пал на него.

Технологический стек:

  • ONLYOFFICE Docs Community.
  • CentOS 9 под ONLYOFFICE.
  • NextCloud развёрнут в TrueNAS и работает в Jail, но у вас может работать на чём угодно.

Установка ONLYOFFICE

Устанавливаем через snap – это просто и быстро.

Добавить репозиторий EPEL:

sudo yum install epel-release

Установить snap:

sudo yum install snapd

Включить системный модуль, который управляет основным сокетом связи snap:

sudo systemctl enable --now snapd.socket

Включить поддержку классической привязки, создав символическую ссылку между /var/lib/snapd/snap и /snap:

sudo ln -s /var/lib/snapd/snap /snap

Установить ONLYOFFICE:

sudo snap install onlyoffice-ds

Перезагрузить сервер:

sudo reboot -n

Настройка сети

Открыть порты, на которых работает ONLYOFFICE:

sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
sudo firewall-cmd --permanent --zone=public --add-port=443/tcp
sudo firewall-cmd --reload

Вы уже можете заходить по адресу вашего сервера и наблюдать работу сервера ONLYOFFICE.

Настройка SSL и работа по HTTPS

Если у вас уже есть сертификат и ключ, чуть ниже читайте куда их поместить. Мы же сейчас разберём как создать самоподписанный сертификат для использования его на сервере ONLYOFFICE.

Перейти во временный каталог:

cd /tmp

Создать закрытый ключ:

openssl genrsa -out onlyoffice.key 2048

Создать запрос на подпись сертификата:

openssl req -new -key onlyoffice.key -out onlyoffice.csr

Подписать сертификат:

openssl x509 -req -days 365 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt

Для усиления безопасности сервера сгенерировать усиленный dhparam:

openssl dhparam -out dhparam.pem 2048

Скопировать созданные файлы в рабочий каталог ONLYOFFICE:

cp onlyoffice.key /var/snap/onlyoffice-ds/current/var/www/onlyoffice/Data/certs/
cp onlyoffice.crt /var/snap/onlyoffice-ds/current/var/www/onlyoffice/Data/certs/
cp dhparam.pem /var/snap/onlyoffice-ds/current/var/www/onlyoffice/Data/certs/

Разрешить серверу использовать самоподписанные сертификаты:

snap set onlyoffice-ds onlyoffice.use-unautorized-storage=true

Перезапустить ONLYOFFICE, чтобы он подхватил настройки и начал автоматически работать по HTTPS:

snap restart onlyoffice-ds

Сертификат и ключ будут действительны год, через год повторите описанное в данном разделе.

Дополнительные команды

Перейти на HTTP удалив сертификат и перезапустив ONLYOFFICE:

rm /var/snap/onlyoffice-ds/current/var/www/onlyoffice/Data/certs/onlyoffice.*
rm /var/snap/onlyoffice-ds/current/var/www/onlyoffice/Data/certs/dhparam.pem
snap restart onlyoffice-ds

Сменить HTTPS-порт:

snap set onlyoffice-ds onlyoffice.ds-ssl-port=8443

Сменить HTTP-порт:

snap set onlyoffice-ds onlyoffice.ds-port=8080

Включить примеры на сервере, чтобы проверить работу сервера без подключения к NextCloud:

snap set onlyoffice-ds onlyoffice.example-enabled=true

После выполнения команды на главной странице сервера жмите на кнопку и проверяйте работу сервера:

Кнопка

Если работает, то можно подключать к NextCloud. Не забудьте потом отключить:

snap set onlyoffice-ds onlyoffice.example-enabled=false

Получить секретный ключ

Необходимо узнать секретный ключ, который требуется указать в NextCloud, чтобы он мог подключаться к ONLYOFFICE. Для этого на сервере, где установлен ONLYOFFICE открываем файл /var/snap/onlyoffice-ds/current/etc/onlyoffice/documentserver/local.json

Ищем секцию secret и записываем секретный ключ:

Секретный ключ Onlyoffice

Он нам пригодится дальше.

Настройка интеграции ONLYOFFICE и NextCloud

Кстати, есть небольшие особенности при интеграции, поэтому не упускайте детали.

Идём в настройки NextCloud https://{IP-DOMEN}/settings/apps/files и включаем плагин ONLYOFFICE connector:

ONLYOFFICE connector

После включения идём в настройки плагина https://{IP-DOMEN}/settings/admin/onlyoffice

Настройки интеграции Onlyoffice и Nextcloud

(1) — указать домен сервера или IP-адрес доступный снаружи, на котором развёрнут ONLYOFFICE. Если указать IP вашей внутренней сети, то редактировать документы сможете только с внутренней сети, так как NextCloud при открытии документов на редактирование обращается по этому адресу к ONLYOFFICE с вашего устройства (проверьте). И понятно, что если этот адрес недоступен из внешнего мира, то вы не сможете работать с документами.

(2) — тут указываем секретный ключ, который записали ранее узнав его в секции secret.

(3) — тут указываете IP сервера ONLYOFFICE принадлежащий к вашей внутренней сети.

(4) — здесь я указал домен NextCloud, который доступен из внешней сети. По умолчанию он и подставляется сюда.

Далее я выставил следующие настройки, так как считаю их оптимальными для себя:

Настройки интеграции Onlyoffice и Nextcloud
Настройки интеграции Onlyoffice и Nextcloud

Вы можете указывать свои настройки.

Особенности интеграции

  1. Первую особенность я озвучил выше, когда указывал какой IP прописывать, чтобы можно было документы править не только из локальной сети.
  2. Если время на сервере NextCloud отличается от времени на сервере ONLYOFFICE, то вы получите ошибку при сохранении настроек интеграции «При попытке соединения возникла ошибка (Возникла ошибка в службе документов: Error while downloading the document file to be converted.)». Устанавливайте одинаковое время и настройте синхронизацию серверов с каким-нибудь NTP сервером. У Google их четыре https://developers.google.com/time/guides
  3. Если при сохранении настроек синхронизации получаете ошибку «…Invalid Token», то скорее всего пока вы правили настройки NextCloud сбросил секретный ключ. Проверьте и снова внесите корректное значение.