Document server Onlyoffice для Nextcloud
Установка версии Document server Onlyoffice для Linux на Debian, Ubuntu под управлением Nextcloud
Введение
Сервер документов — это офисный пакет для работы онлайн, который включает в себя просмотрщики и редакторы текстовых документов, электронных таблиц и презентаций, полностью совместимые с форматами Office Open XML: .docx, .xlsx, .pptx и позволяющие совместно редактировать документы в режиме реального времени.
Этот вариант конфигурации работает как Debian так и Ubuntu так как использует универсальный репозиторий squeeze
Функциональность
- Редактор документов
- Редактор электронных таблиц
- Редактор презентаций
- Приложение «Документы» для iOS и Android
- Совместное редактирование
- Поддержка иероглифов
- Поддержка всех популярных форматов: DOC, DOCX, TXT, ODT, RTF, ODP, EPUB, ODS, XLS, XLSX, CSV, PPTX, HTML
Системные требования
- Процессор двухъядерный с тактовой частотой 2 ГГц или лучше
- Оперативная память не менее 2 Гб
- Свободное место на жестком диске не менее 40 Гб
- Дополнительные требования не менее 4 Гб для файла подкачки
- Операционная система 64-битный дистрибутив Debian, Ubuntu или другой совместимый дистрибутив с версией ядра 3.13 или выше
- Дополнительные требования
- PostgreSQL: версия 9.1 или выше
- NGINX: версия 1.3.13 или выше
- Node.js: версия 8.12.0
- libstdc++6: версия 4.8.4 или выше
- Redis
- RabbitMQ
Установка Сервера документов
Установка на Debian-основанные дистрибутивы также требует наличия в системе Node.js
(версии 8.12.0), libstdc++6
, NGINX
и PostgreSQL
.
Все необходимые инструкции по установке этих компонентов и зависимостей можно найти на их официальных сайтах.
Есть и другие зависимости, которые устанавливаются совместно с Сервером документов:
- libcurl3
- libxml2
- supervisor
- fonts-dejavu
- fonts-liberation
- ttf-mscorefonts-installer
- fonts-crosextra-carlito
- fonts-takao-gothic
- fonts-opensymbol
Эти зависимости устанавливаются автоматически, если вы используете Ubuntu 14.04 LTS или выше. Для более ранних дистрибутивов может потребоваться установить их вручную.
Установка зависимостей
Установка sudo для удобства
apt-get install sudo -y
Установка mc для удобства редактирование конфигов
apt-get install mc -y
Сервер документов использует Node.js
(версии 8.12.0), NGINX
и PostgreSQL
как базу данных. Зависимости, найденные в репозитории системы, будут установлены автоматически при установке Сервера документов командой apt-get install.
npm — менеджер пакетов, входящий в состав Node.js.
Добавление репозитория, содержащего актуальные версии пакетов Node.js:
Добавьте репозиторий:
curl -sL https://deb.nodesource.com/setup_8.x | sudo bash -
sudo apt-get install npm -y
Установка и настройка PostgreSQL:
Установите версию PostgreSQL, включенную в вашу версию Ubuntu:
sudo apt-get install postgresql -y
Если вы хотите установить какую-то другую версию PostgreSQL
из репозитория PostgreSQL, обратитесь за дополнительной информацией к официальной документации PostgreSQL.
После установки PostgreSQL создайте базу данных и пользователя PostgreSQL:Пользователем и паролем для созданной базы данных должны быть onlyoffice.
sudo -i -u postgres psql -c "CREATE DATABASE onlyoffice;"
sudo -i -u postgres psql -c "CREATE USER onlyoffice WITH password 'onlyoffice';"
sudo -i -u postgres psql -c "GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;"
Установка redis:
sudo apt-get install redis-server -y
Установка rabbitmq:
sudo apt-get install rabbitmq-server -y
Для дистрибутивов Ubuntu, более ранних, чем 14.04 LTS, может потребоваться установка некоторых других зависимостей.
При использовании Ubuntu 18.04 потребуется установка пакетов npm и nginx-extras. Это можно сделать с помощью команды:
sudo apt-get install npm nginx-extras -y
Смена порта для Сервера документов, используемого по умолчанию
По умолчанию Сервер документов слушает входящие соединения на порту 80. Начиная с версии 4.3 вы можете сменить порт для Сервера документов в случае, если вы планируете использовать его вместо того, который идёт по умолчанию.Если вы меняете порт по умолчанию, убедитесь, что он открыт для исходящих/входящих соединений. Посмотрите полный список портов, которые используются Сервером документов.
Для этого вам нужно поменять порт по умолчанию для системы debconf. Это можно сделать с помощью команды:
echo onlyoffice-documentserver onlyoffice/ds-port select <PORT_NUMBER> | sudo debconf-set-selections
Вместо <PORT_NUMBER>
в команде выше необходимо вписать номер порта, который будет использоваться.ВниманиеЕсли вы хотите поменять протокол Сервера документов на HTTPS, не меняйте порт на 443, а воспользуйтесь этой инструкцией.
Есть ряд дополнительных параметров, которые можно использовать для установки Сервера документов. Для получения дополнительной информации обратитесь к этому разделу.
После этого можно продолжить установку Сервера документов.
Установка Сервера документов
Добавьте GPG-ключ:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5
Добавьте репозиторий Сервера документов:
sudo echo "deb https://download.onlyoffice.com/repo/debian squeeze main" | sudo tee /etc/apt/sources.list.d/onlyoffice.list
Хотя данный пакет APT собран для дистрибутива Debian Squeeze, он совместим с рядом производных Debian (включая Ubuntu), а значит можно использовать один репозиторий для всех этих дистрибутивов.
Обновите кэш менеджера пакетов:
sudo apt-get update -y && apt-get dist-upgrade -y && apt autoremove -y && apt autoclean -y
Установите Сервер документов
sudo apt-get install onlyoffice-documentserver -y
Сборка сервиса проверки орфографии (Ubuntu 18.04)
Для того, чтобы сервис проверки орфографии работал в дистрибутиве Ubuntu 18.04, вам будет нужно его пересобрать. Это делается следующим образом:
- Обновите npm:
sudo npm install -g npm
- Остановите службы Сервера документов:
sudo supervisorctl stop all
- Установите компоненты, необходимые для сборки:
sudo apt-get install build-essential git
- Перейдите в каталог сервиса проверки орфографии:
cd /var/www/onlyoffice/documentserver/server/SpellChecker/
- Удалите старую сборку:
sudo mv node_modules/ node_modules_old/
- Установите зависимости:
sudo npm install
- И запустите службы Сервера документов:
sudo supervisorctl start all
Запуск Сервера документов с использованием HTTPS
В большинстве случаев доступ к порталу по протоколу HTTPS намного безопаснее, чем по протоколу HTTP, который используется по умолчанию. Сервер документов можно легко запустить, используя безопасное соединение. Дополнительную информацию о том, как это сделать, можно найти здесь.
Если надо запустить через nginx-proxy-pass вот готовый конфиг
Редактируем конфиг на стороне сервера Document server onlyoffice
mcedit /etc/onlyoffice/documentserver/nginx/ds.conf
Приводим в следующий вариант
include /etc/nginx/includes/http-common.conf;
server {
listen 192.168.89.248:82;
server_name office.chip-and-del.ru;
listen [::]:82 default_server;
server_tokens off;
include /etc/nginx/includes/ds-*.conf;
listen адрес и порт сервера на котором будет работать Document server onlyoffice.
Измените на свой IP — 192.168.89.248
server_name название сервера
конфиг nginx-proxy-pass
Установку nginx-proxy-pass посмотреть можно тут
# Используйте этот пример для прокси-трафика HTTPS на сервер документов, работающий в 'backendserver-address'.
# Замените {{SSL_CERTIFICATE_PATH}} путь к файлу сертификата ssl
# Замените {{SSL_KEY_PATH}} Путь к файлу закрытого ключа ssl
upstream docservice {
server office.chip-and-del.ru;
}
map $http_host $this_host {
"" $host;
default $http_host;
}
map $http_x_forwarded_proto $the_scheme {
default $http_x_forwarded_proto;
"" $scheme;
}
map $http_x_forwarded_host $the_host {
default $http_x_forwarded_host;
"" $this_host;
}
map $http_upgrade $proxy_connection {
default upgrade;
"" close;
}
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_set_header X-Forwarded-Host $the_host;
proxy_set_header X-Forwarded-Proto $the_scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
## Normal HTTP host
server {
listen 80;
server_name office.chip-and-del.ru;
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;
}
server {
listen 443 ssl;
server_tokens off;
root /usr/share/nginx/html;
## Strong SSL Security
## https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
ssl_certificate /etc/letsencrypt/live/office.chip-and-del.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/office.chip-and-del.ru/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.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;
## [Optional] If your certficate has OCSP, enable OCSP stapling to reduce the overhead and latency of running SSL.
## Replace with your ssl_trusted_certificate. For more info see:
## - https://medium.com/devops-programming/4445f4862461
## - https://www.ruby-forum.com/topic/4419319
## - https://www.digitalocean.com/community/tutorials/how-to-configure-ocsp-stapling-on-apache-and-nginx
# ssl_stapling on;
# ssl_stapling_verify on;
# ssl_trusted_certificate /etc/nginx/ssl/stapling.trusted.crt;
# resolver 208.67.222.222 208.67.222.220 valid=300s; # Can change to your DNS resolver if desired
# resolver_timeout 10s;
## [Optional] Generate a stronger DHE parameter:
## cd /etc/ssl/certs
## sudo openssl dhparam -out dhparam.pem 4096
##
# ssl_dhparam /etc/ssl/certs/dhparam.pem;
location / {
proxy_pass http://192.168.89.248:82;
proxy_http_version 1.1;
}
}
Дополнительная информация: дополнительные параметры для установки Сервера документов
Установка Сервера документов позволяет использовать дополнительные параметры debconf, которые могут быть очень полезны в том случае, если вы хотите установить Сервер документов на нескольких серверах или в некоторых других случаях.
Эти параметры включают в себя:
- Параметры базы данных PostgreSQL
- Задайте адрес хоста базы данных PostgreSQL (заменив
<DB_HOST>
на действительный адрес установленного сервера PostgreSQL):echo onlyoffice-documentserver onlyoffice/db-host string <DB_HOST> | sudo debconf-set-selections
- Задайте имя пользователя базы данных PostgreSQL (заменив
<DB_USER>
на действительное имя пользователя с соответствующими правами доступа к базе данных PostgreSQL):echo onlyoffice-documentserver onlyoffice/db-user string <DB_USER> | sudo debconf-set-selections
- Задайте пароль пользователя базы данных PostgreSQL (заменив
<DB_PASSWORD>
на действительный пароль пользователя с соответствующими правами доступа к базе данных PostgreSQL):echo onlyoffice-documentserver onlyoffice/db-pwd password <DB_PASSWORD> | debconf-set-selections
- Задайте имя базы данных PostgreSQL (заменив
<DB_NAME>
на действительное имя базы данных PostgreSQL):echo onlyoffice-documentserver onlyoffice/db-name string <DB_NAME> | sudo debconf-set-selections
- Задайте адрес хоста базы данных PostgreSQL (заменив
- Параметры Redis
- Задайте адрес хоста Redis (заменив
<REDIS_HOST>
на действительный адрес установленного Redis):echo onlyoffice-documentserver onlyoffice/redis-host string <REDIS_HOST> | sudo debconf-set-selections
- Задайте адрес хоста Redis (заменив
- Параметры RabbitMQ
- Задайте адрес хоста RabbitMQ (заменив
<RABBITMQ_HOST>
на действительный адрес установленного RabbitMQ):echo onlyoffice-documentserver onlyoffice/rabbitmq-host string <RABBITMQ_HOST> | sudo debconf-set-selections
- Задайте имя пользователя RabbitMQ (заменив
<RABBITMQ_USER>
на действительное имя пользователя с соответствующими правами доступа к RabbitMQ):echo onlyoffice-documentserver onlyoffice/rabbitmq-user string <RABBITMQ_USER> | sudo debconf-set-selections
- Задайте пароль пользователя RabbitMQ (заменив
<RABBITMQ_PWD>
на действительный пароль пользователя с соответствующими правами доступа к RabbitMQ):echo onlyoffice-documentserver onlyoffice/rabbitmq-pwd password <RABBITMQ_PWD> | sudo debconf-set-selections
- Задайте адрес хоста RabbitMQ (заменив