Интеграция Seafile и Onlyoffice Document Server

seafile + onlyoffice


Ранее на сайте рассматривались статьи по установке сервера хранения файлов Seafile и установке сервера редактирования документов Onlyoffice Document Server

Рассмотрим вариант интеграции этих двух сервисов

Останавливаем сервисы seafile, seahub

$ sudo systemctl stop seafile seahub

Редактируем конфиг nginx

$ 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;
    }

Проверяем

$ 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

$ sudo systemctl restart nginx

Редактируем конфиг seahub_settings.py

$ 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')

Запускаем ранее остановленные сервисы

$ sudo systemctl start seafile seahub

Важно. При интеграции Seafile и Onlyoffice в тестовой среде (в виртуальных машинах VirtualBox) не работало редактирование в onlyoffice: вэб-интерфейс редактора документов загружался, но далее появлялась ошибка.
При установке интеграции серверов в боевой среде, и использовании реальных доменных имен, все заработало штатно.

Максим Макаров

У блога появился хостинг, его любезно предоставила компания Облакотека. Облакотека - облачные сервисы для создания и управления виртуальной ИТ-инфраструктурой.
Если вам понравился мой блог и вы хотели бы видеть на нем еще больше полезных статей, большая просьба поддержать этот ресурс.

Оцените автора
IT Draft
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.

  1. Сергей

    Здравствуйте!
    Подскажите, как бороться с проблемой, которая в конце статьи с желтом прямоугольнике «Важно!…»
    У меня такая же беда. Перерыл весь Инет. Не могу найти, как исправить.

    0
    Ответить
    1. Максим Макаров

      Здравствуйте.
      Я в конечном итоге развернул onlyoffice в боевой среде с реальным доменным именем.
      Предполагаю, что onlyoffice требовательный к FQDN.

      0
      Ответить
      1. Сергей

        У меня сеть закрытая, поэтому я не могу выставить сервера наружу с реальными доменными именами. Но внутри своего домена у меня имена реальные. Причем с Nextcloud тот же сервер OO работает без проблем. Все сервера на виртуалках под ESXi. Сервер был поднят на Ubuntu. Потом по Вашей инструкции поднял второй на Centos 8 — та же беда. Сейчас еще попробую Seafile поднять на Centos тоже. Хотя, мне кажется, где-то на какую-то папку нет прав, потому что в отладчике вижу, что обращение к файлу есть.

        0
        Ответить
        1. Максим Макаров

          Тоже самое было, разворачивал в Virtualbox:
          — Onlyoffice+Owncloud работали без ошибок.
          — Onlyoffice+Seafile с ошибками. Причем разворачивал Seafile разных версий, в т.ч. и обновлялся до PRO-версии.
          Развернул в боевой среде на ESXi с реальными доменными именами но для локальной сети, все завелось.
          Если на внутреннем DNS заведено доменное имя для onlyoffice и для seafile, попробуй еще прописать их в /etc/hosts на этих 2-х серверах.

          0
          Ответить
          1. Сергей

            А какая версия Seafile у вас развернута?
            Я развернул 7.1.5 CE.
            В отладчике Мозиллы при открытии файла в заголовке http_put-запроса вижу параметр «Состояние: 403 Forbidden»
            И ответ JSON в нем:
            «error_msg: file lock feature only supported in professional edition.»

            Как-будто данная фукция поддерживается только в ПРО версии :(

            0
          2. Максим Макаров автор

            Версия: 7.1.0 CE

            0
          3. Сергей

            Заработало.
            Везде установил протокол HTTP. До этого у меня на SF был HTTPS, а на OO HTTP.
            И при установке SF на Centos8 пришлось кое-что доустанавливать, чтобы поднялась служба seahub.
            Спасибо!

            0