NextCloud: Установка OnlyOffice

Просмотров: 3667Комментарии: 0
ВкусняшкиFAQ SolutionLinuxfor Dummies
NextCloud: Установка OnlyOffice

Продолжаю свой цикл статей про установку настройку NextCloud. Сегодня хочется остановиться на добавлении редактора офисных документов OnlyOffice в NextCloud. С этой штукой я прям заморочился совсем не кисло и даже уже пытался забить ибо не выходил "каменный цветок". Но так как статья всетаки появилась, делаею вывод, я победил.

Итак, по порядку, как шло мое дело (рекомендую ознакомиться со следующими статьями для понимания):

Я не зря дал ссылки на предыдущие статьи, без этого бэеграунда не совсем будет понятно что я делаю.

В магазине расширений NextCloud имеется приложение ONLYOFFICE connector, это ничто иное, как аплет интеграции, самого приложения, там нет. Требутся установка backend сервера OnlyOffice. Сервер редактирования документов распространяется во многих вариантах, но я для удобства решил воспользоваться docker контейнером. Чисто теоретически удобно для дальнейшего обновления, это раз, а два, это то что я решил выполнять это все на 1 внктреннем сервере и желательно чтобы эти сервисы не пересекались.

Для начала выполню установку Docker на nextcloud сервере (на сайте производителя отличная документация), но в своем случаее я приведу ее на понятном русском языке (все действия выполняются на машине, которая выполняет роль nextcloud сервера):

Обновление и установка пакетов:

# apt-get update

# apt-get install \

ca-certificates \

curl \

gnupg \

lsb-release

Установка ключей

# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Установка стабильного репозитария

# echo \

"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \

$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Обновление репозитариев и установка Docker

# apt-get update

# apt-get install docker-ce docker-ce-cli containerd.io

Все, докер установлен, теперь можно качать OnlyOffice контейнер и запускать его (на сайте onlyoffice замечательная документация по установке в docker контейнере, но я укажу для истории на русском). Выполним команду:

# docker run -i -t -d -p 8090:80 \

-v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \

-v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \

-v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql onlyoffice/documentserver

Прошу заметить, что изначально я не указываю параметр --restart=always, это для изначального тестирования, далее можно будет обновить этот контейнер и запускать его автоматически после перезагрузки.

В каталоге /app/onlyoffice/DocumentServer, будут храниться данные приложения и логи, они помогут для отладки. Сервис будет запущен на локальном порту 8090, можно также прибиндить конкретно к интерфейсу указав например 192.168.1.50:8090:80.

Будет выполнено скачивание контейнера и его запуск, после успешного запуска контейнера можно проверить доступность, открыв в браузере страницу с моем случаее http://192.168.1.50:8090? Если видим экран привествия, хорошо. Если страница недоступна по указанному порту, то необходимо его открыть. Выполнив в моем случаее:

# iptables -A INPUT -p tcp --dport 8090 -j ACCEPT

Теперь должно работать

OnlyOffice

Половина дела уже сделана. Слежущим этапом нужно настроить реверс прокси c SSL (так как для редактора требуется обязатольно HTTPS) нового домена например: NextCloud у меня на nc.olorg.ru, а OnlyOffice будет на word.olorg.ru, для базовой настройки я пользовалься ранее написанным материалом ранее написанным материалом (указывал в начале статьи).

Далее, если раньше не был установлен Connector, его можно включить, настроить и убедится что не работает.

# sudo -u www-data php /var/www/nextcloud/occ onlyoffice:documentserver --check

Будет выдаваться ошибка.

Для реверс проксей требуется указать дополнительные параметры:

location / {

proxy_pass http://192.168.1.50:8090;

proxy_set_header Host $host;

proxy_redirect http:// $scheme://; #https://;

proxy_http_version 1.1;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header Connection $connection_upgrade;

}

Дальше можно проверить конфигурации nginx

# /usr/sbin/nginx -t

С моем случаее не отрабатывала $connection_upgrade, но это тоже легко исправить, отредактировав основную конфигурацию nginx, /etc/nginx/nginx.conf, добавив в конце http секцию:

# Connection header for WebSocket reverse proxy

map $http_upgrade $connection_upgrade {

default upgrade;

'' close;

}

Проверив еще раз конфигурацию nginx, убеждаемся что все ок и перезагружаем конфигурацию nginx:

# /usr/sbin/nginx -s reload

Проверяем конфигурацию onlyoffice

# sudo -u www-data php /var/www/nextcloud/occ onlyoffice:documentserver --check

Все работает smile. Наслаждамся выполненой работой.

OnlyOffice

А теперь самое время вернуться к автозапуску docker контейнера. сначала узнаем ID контейнера, а затем его модифициреум.

# docker ps

Первая колонка это CONTAINER ID, копируем, запоминаем и выполняем

# docker update --restart=always CONTAINER ID

Теперь можно считать себя молодцом.

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

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Вы можете войти под своим логином или зарегистрироваться на сайте.

(обязательно)