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 и NextCloud
Кстати, есть небольшие особенности при интеграции, поэтому не упускайте детали.
Идём в настройки NextCloud https://{IP-DOMEN}/settings/apps/files и включаем плагин ONLYOFFICE connector:
После включения идём в настройки плагина https://{IP-DOMEN}/settings/admin/onlyoffice
(1) — указать домен сервера или IP-адрес доступный снаружи, на котором развёрнут ONLYOFFICE. Если указать IP вашей внутренней сети, то редактировать документы сможете только с внутренней сети, так как NextCloud при открытии документов на редактирование обращается по этому адресу к ONLYOFFICE с вашего устройства (проверьте). И понятно, что если этот адрес недоступен из внешнего мира, то вы не сможете работать с документами.
(2) — тут указываем секретный ключ, который записали ранее узнав его в секции secret.
(3) — тут указываете IP сервера ONLYOFFICE принадлежащий к вашей внутренней сети.
(4) — здесь я указал домен NextCloud, который доступен из внешней сети. По умолчанию он и подставляется сюда.
Далее я выставил следующие настройки, так как считаю их оптимальными для себя:
Вы можете указывать свои настройки.
Особенности интеграции
- Первую особенность я озвучил выше, когда указывал какой IP прописывать, чтобы можно было документы править не только из локальной сети.
- Если время на сервере NextCloud отличается от времени на сервере ONLYOFFICE, то вы получите ошибку при сохранении настроек интеграции «При попытке соединения возникла ошибка (Возникла ошибка в службе документов: Error while downloading the document file to be converted.)». Устанавливайте одинаковое время и настройте синхронизацию серверов с каким-нибудь NTP сервером. У Google их четыре https://developers.google.com/time/guides
- Если при сохранении настроек синхронизации получаете ошибку «…Invalid Token», то скорее всего пока вы правили настройки NextCloud сбросил секретный ключ. Проверьте и снова внесите корректное значение.