Интеграция Seafile и OnlyOffice Document Server
OnlyOffice — бесплатный офисный пакет и экосистема приложений для совместной работы. Он состоит из онлайн-редакторов текстовых документов, электронных таблиц, презентаций, форм и PDF-файлов, а также платформы для совместной работы в комнатах.
Ранее на сайте рассматривались статьи по установке сервера хранения файлов Seafile и установке сервера редактирования документов OnlyOffice Document Server
Рассмотрим вариант интеграции этих двух сервисов
Останавливаем сервисы seafile
, seahub
1
$ sudo systemctl stop seafile seahub
Редактируем конфиг Nginx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$ sudo nano /etc/nginx/sites-available/seafile.conf
# Required for only office document server
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;
"" $host;
}
map $http_upgrade $proxy_connection {
default upgrade;
"" close;
}
[...]
location /onlyofficeds/ {
# THIS ONE IS IMPORTANT ! - Trailing slash !
proxy_pass https://onlyoffice.example.ru/;
client_max_body_size 100M; # Limit Document size to 100MB
proxy_read_timeout 3600s;
proxy_connect_timeout 3600s;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_http_version 1.1;
# THIS ONE IS IMPORTANT ! - Subfolder and NO trailing slash !
proxy_set_header X-Forwarded-Host $the_host/onlyofficeds;
proxy_set_header X-Forwarded-Proto $the_scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Проверяем
1
2
3
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Перезапускаем Nginx
1
$ sudo systemctl restart nginx
Редактируем конфиг seahub_settings.py
1
2
3
4
5
6
7
8
$ sudo nano /opt/seafile/conf/seahub_settings.py
[...]
# Enable Only Office
ENABLE_ONLYOFFICE = True
VERIFY_ONLYOFFICE_CERTIFICATE = True
ONLYOFFICE_APIJS_URL = 'https://seafile.example.ru/onlyofficeds/web-apps/apps/api/documents/api.js'
ONLYOFFICE_FILE_EXTENSION = ('doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'odt', 'fodt', 'odp', 'fodp', 'ods', 'fods')
ONLYOFFICE_EDIT_FILE_EXTENSION = ('docx', 'pptx', 'xlsx')
Запускаем ранее остановленные сервисы
1
$ sudo systemctl start seafile seahub
Важно. При интеграции Seafile и Onlyoffice в тестовой среде (в виртуальных машинах VirtualBox) не работало редактирование в onlyoffice: вэб-интерфейс редактора документов загружался, но далее появлялась ошибка.
При установке интеграции серверов в боевой среде, и использовании реальных доменных имен, все заработало штатно.