Установка Onlyoffice в Nextcloud

В этой статье мы нарастим функционал Nextcloud. Установим ONLYOFFICE офисный пакет — редактор документов, таблиц и презентаций, с открытым исходным кодом, разработанный компанией Ascensio System SIA. Этот редактор имеет неоспоримый плюс, он 100% совместим с Microsoft Office, а так есть очень полезный раздел как «Совместная работа» что позволяет редактировать документы «онлайн» будем считать его аналогом Google Docs.

1. Установка Cервера документов — ONLYOFFICE Docs и сопутствующих программ

Статья по сути является переводом инструкции взятой с официльного сайта и некоторыми дополнениями и тонкостями с которыми мне пришлось столкнуться.

Добавим GPG-ключ:

mkdir -p -m 700 ~/.gnupg
curl -fsSL https://download.onlyoffice.com/GPG-KEY-ONLYOFFICE | gpg --no-default-keyring --keyring gnupg-ring:/tmp/onlyoffice.gpg --import
chmod 644 /tmp/onlyoffice.gpg
sudo chown root:root /tmp/onlyoffice.gpg
sudo mv /tmp/onlyoffice.gpg /usr/share/keyrings/onlyoffice.gpg

Добавим репозиторий ONLYOFFICE Docs:

echo "deb [signed-by=/usr/share/keyrings/onlyoffice.gpg] https://download.onlyoffice.com/repo/debian squeeze main" | sudo tee /etc/apt/sources.list.d/onlyoffice.list
Хотя данный пакет APT собран для дистрибутива Debian Squeeze, он совместим с рядом производных Debian (включая Ubuntu), а значит можно использовать один репозиторий для всех этих дистрибутивов.

Обновим репозиторй

sudo apt update

Установка на Debian — основанные дистрибутивы также требует наличия в системе libstdc++6, NGINX и PostgreSQL.
Есть и другие зависимости, которые устанавливаются совместно с ONLYOFFICE Docs:

    • libcurl3 
    • libxml2 
    • supervisor 
    • fonts-dejavu 
    • fonts-liberation 
    • ttf-mscorefonts-installer 
    • fonts-crosextra-carlito 
    • fonts-takao-gothic 
    • fonts-opensymbol 

Установим postgresql и создадим базу данных и пользователя для onlyoffice

Нужно создать базу данных и пользователя с именем "onlyoffice", пароль по вашему усмотрению.
sudo apt-get install postgresql

sudo -i -u postgres psql -c "CREATE DATABASE bd_onlyoffice;"
sudo -i -u postgres psql -c "CREATE USER user_onlyoffice WITH password 'вашпароль';"
sudo -i -u postgres psql -c "GRANT ALL privileges ON DATABASE bd_onlyoffice TO user_onlyoffice;"
Если у вас в системе установлен другой веб-сервер, при установке может быть конфликт портов, поэтому остановите демон apache2: $ sudo systemctl stop apache2 и продолжите установку NGINX, позже мы поменяем стандартный порт 80 и 443 на другие.

Установка NGINX

sudo apt-get install nginx

Установка mscorefonts ( Основные шрифты Microsoft TrueType для Интернета )

sudo apt-get install ttf-mscorefonts-installer

Установка REDIS (резидентная система управления базами данных класса NoSQL с открытым исходным кодом)

sudo apt-get install redis-server

Установка rabbitmq (тиражируемое связующее программное обеспечение, ориентированное на обработку сообщений)

sudo apt-get install rabbitmq-server
sudo apt install onlyoffice-documentserver

При установке будет требовать пароль от базы данных, которую мы создали раньше.

2. Подключение ssl сертификатов и перевод сайта на режим работы в HTTPS

Сейчас я пользуюсь проксирующим сервером на nginx, что очень удобно в случае большого количества серверов для которого необходимы https. Кому интересно можете прочитать статью, меня очень выручает данное решение.

Лучше использоваться ssl сертификаты и использовать HTTPS протокол, поддерживающий шифрование.

Воспользуемся центром сертификации Let’s Encrypt — предоставляющий бесплатные криптографические сертификаты X.509.

Поищем модуль в репозиториях по ключевым словам:

sudo apt-cache search certbot
sudo apt-get install python3-certbot-apache
sudo apt install certbot

Вот так выглядит установка и генерация сертификата.

certbot --apache -d wadis.ru -d www.wadis.ru
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Requesting a certificate for wadis.ru and www.wadis.ru
Created an SSL vhost at /etc/apache2/sites-available/wadis-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/wadis-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/wadis-le-ssl.conf

We were unable to find a vhost with a ServerName or Address of www.wadis.ru.
Which virtual host would you like to choose?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: 000-default.conf               |                       |       | Enabled
2: wadis.conf                     | wadis.ru              |       | Enabled
3: wadis-le-ssl.conf              | wadis.ru              | HTTPS | Enabled
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-3] then [enter] (press 'c' to cancel): 3
Deploying Certificate to VirtualHost /etc/apache2/sites-available/wadis-le-ssl.conf
Redirecting vhost in /etc/apache2/sites-enabled/wadis.conf to ssl vhost in /etc/apache2/sites-available/wadis-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://wadis.ru and
https://www.wadis.ru
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Subscribe to the EFF mailing list (email:).

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/wadis.ru/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/wadis.ru/privkey.pem
   Your certificate will expire on 2022-09-18. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again with the "certonly" option. To non-interactively
   renew *all* of your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Поменяем стандартный порт :80 NGING на любой другой. Хотя я не буду использоваться http и мне это совсем не нужно, но может кому то понадобится использовать не защищенное соединение.

sudo nano /etc/nginx/sites-available/default
По умолчанию Сервер документов - ONLYOFFICE Docs слушает входящие соединения на порту 80. Начиная с версии 4.3 вы можете сменить порт.  

Сменим порты NGNX для Сервера документов ONLYOFFICE и укажем путь к нашим ssl сертификатам.

mcedit /etc/nginx/conf.d/ds.conf 
include /etc/nginx/includes/http-common.conf;
## Normal HTTP host
server {
  listen 0.0.0.0:8099;
  listen [::]:8099 default_server;
  server_name _;
  server_tokens off;

  ## Redirects all traffic to the HTTPS host
  root /nowhere; ## root doesn't have to be a valid path since we are redirecting
  rewrite ^ https://$host$request_uri? permanent;
}
#HTTP host for internal services
server {
  listen 127.0.0.1:8099;
  listen [::1]:8099;
  server_name localhost;
  server_tokens off;
..
  include /etc/nginx/includes/ds-common.conf;
  include /etc/nginx/includes/ds-docservice.conf;
}
## HTTPS host
server {
  listen 0.0.0.0:4455 ssl;
  listen [::]:4455 ssl default_server;
  server_tokens off;
  root /usr/share/nginx/html;

  ## Strong SSL Security
  ## https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
  ssl on;
  ssl_certificate /etc/letsencrypt/live/wadis.ru/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/wadis.ru/privkey.pem;
  ssl_verify_client off;

  ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";

  ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
  ssl_session_cache  builtin:1000  shared:SSL:10m;

  ssl_prefer_server_ciphers   on;

  add_header Strict-Transport-Security max-age=31536000;
  # add_header X-Frame-Options SAMEORIGIN;
  add_header X-Content-Type-Options nosniff;

  include /etc/nginx/includes/ds-*.conf;

}

Смена порта для Сервера документов, используемого по умолчанию

Это можно сделать с помощью команды:
echo onlyoffice-documentserver onlyoffice/ds-port select | sudo debconf-set-selections

sudo echo onlyoffice-documentserver onlyoffice/ds-port select 4455 | sudo debconf-set-selections

Запускаем службу

sudo supervisorctl start all

У меня возникла ошибка. unix:///var/run/supervisor.sock no such file. Так же при прописании сервера документов в nextcloud вышла ошибка bad gateway 502

Чтобы исправить ошибку нужно создать каталог в любой удобной директории

mkdir /home/mailoffice/supervisor
и прописываем пути для pid файла в конфигурационном файле супервизора

sudo nano /etc/supervisor/supervisord.conf 
pidfile=/home/mailoffice/supervisior/supervisor.pid

sudo supervisorctl start all
ds:docservice: started
ds:converter: started
ds:metrics: started
ds:example: started

Проверим работу сервиса перейдя по адресу. ваш_ip:порт что мы указали в debconf

3. Заключительный этап

Находим и включаем приложение в nextcloud

Переходим в настройки ONLYOFFICE и прописываем наш только что настроенный сервис документов

В поле адрес сервера для внутренних запросов ONLYOFFICE Docs пропишем домен где находится Nextcloud, в моем случае jira.wadis.ru
В поле адрес ONLYOFFICE Docs для внутренних запросов сервера: путь до нашего сервера документов.
Секретный ключ берем с файла local.json
cat /etc/onlyoffice/documentserver/local.json | grep secret

Теперь у нас появился новый функционал. Попробуем создать документ

На этом установка и настройка Сервера документов завершен.

Давайте дальше расширим функционал, следующая статья будет посвящена установке и настройке Nextcloud Talk ( удобное расширение, которое позволяет совершать конференции на своем личном сервере, а так же обмениватся сообщениями, голосовать, создавать опрос в рамках этой конференции )

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Top