Перенос и обновление onlyoffice

Введение

У меня под управлением есть Onlyoffice на базе следующих продуктов:

  1. Community Server версии 9.6.4.
  2. Document Editor 5.2.3.

Все установлено из пакетов на сервере под управлением Centos 7. Данные версии продукта были выпущены минимум пару лет назад, а может и больше. Несколько раз я предпринимал попытки все это обновить штатным образом через менеджер пакетов, но у меня ничего не получалось. Обновленная система не работала. Проблемы в первую очередь возникают либо с зависимостями, либо с интеграцией портала с редактором документов.

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

  • Перенос Onlyoffice на другой сервер.
  • Переход на работу в Docker.
  • Обновление до последних версий софта.

Здесь на каждом этапе будут свои сложности. Во-первых, как такового Community Server на сайте onlyoffice и в документации нет. Его заменил продукт ONLYOFFICE Groups, который включает в том числе и Community Server. Во-вторых, не существует актуальных инструкций по данной теме. Да, есть отдельно по переносу, есть по обновлению. Но рассматривается это примитивно, типа запустите yum update и обновите пакеты, или docker pull и обновите образы. Варианты, когда где-то возникает проблема, не рассматриваются. Ну и в-третьих, нет никакой поддержки. Во всем надо разбираться самому.

У меня по сути наложились две ошибки, поэтому все сильно усложнилось. Обновить onlyoffice через обновление пакетов у меня не получилось, поэтому исходные данные были старой версии. При их переносе на новый сервер, не получалось просто взять их и подсунуть ему. Сервер падал с ошибками. По логам я понял, что изменилась структура базы данных, что с этим делать не сразу догадался.

Здесь косвенно можно судить о качестве разработки и подходу к self-hosted решению (качество не очень). Я ожидал, что когда я перекину старые данные новому серверу, он поймет, что они старые и обновит все до последней версии. Но так не получилось. В итоге все делал вручную, о чем дальше и расскажу.

Бэкап

Скажу пару слов про бэкап onlyoffice. Как уже стало понятно из предыдущих разделов, бэкапить достаточно только базу данных и директорию с файлами. Можно их в сыром виде переносить и это будет нормально работать. Раньше я так и делал, да и сейчас делаю, потому что это позволяет автоматизировать процессы с помощью скриптов.

С появлением отдельного компонента портала — Панель управления, этот вопрос упростился, так как то же самое можно сделать через web интерфейс.

У вас есть возможность подключить внешнее хранилище и бэкапить портал туда по расписанию. Либо в локальный файл сохранять и потом куда-то копировать. Надежнее всего использовать оба способа — забирать сырые данные и сформированный через панель управления архив. Бэкапов много не бывает :) С помощью сырых данных можно без проблем держать холодный или горячий резерв.

Для холодного резерва достаточно держать подменный сервер, куда раз в сутки копировать файлы и восстанавливать базу из дампа. Для горячего поднять кластер mysql и почаще синхронизировать файлы.

Установка Onlyoffice

Системные ресурсы для виртулаки я рекомендую следующие: 4 CPU, 8GB Ram, 50+GB SSD. Можно и на 4-х гигабайтах оперативной памяти стартануть, но работать будет плохо. Может падать из-за нехватки памяти.

Переходим к установке. Разработчики предлагают готовый скрипт, который все сделает автоматически.

Я всегда ставлю без почтового сервера. Разбираться еще и с проблемами интеграции почтового сервера совсем не хочется. Использую отдельный почтовый сервер, который настраиваю сам. Дальше в системе можно будет указать параметры smtp для отправки почты через внешние службы.

После того, как контейнеры будут загружены и запущены, система готова к работе. Все важные данные будут подключены через volumes, расположенные на хосте в директории /app/onlyoffice. Именно эти данные и нужно будет бэкапить. Там же лежит директория с базами mysql. Я рекомендую дополнительно бэкапить базу данных дампом.

Сразу же подскажу вам дефолтные учетные записи от баз в onlyoffice, чтобы в случае чего не пришлось искать в документации.

PostgreSQL Database: onlyoffice, User: onlyoffice, Password: onlyoffice
RabbitMQ User: guest, Password: guest
MySQL Database: onlyoffice, User: root, Password: my-secret-pw

После установки onlyoffice, у вас будут запущены четыре контейнера docker:

OnlyOffice полностью готов к работе. Можно зайти на него по ip адресу сервера.

Укажите все необходимые данные для запуска в работу и переходите к настройке.

Перенос Onlyoffice

В целом, про перенос onlyoffice я почти все рассказал в предыдущем разделе. Выношу его отдельно для тех, кто будет переезжать без обновления. А так же для тех, у кого обновление прошло штатно и отдельно заострять на нем внимания нет необходимости. Если вы переносите данные onlyoffice между серверами одной и той же версии, то проблем никаких быть не должно. Вам необходимо перенести:

  1. Базу данных Mysql.
  2. Директорию Data портала, где хранятся сами файлы.

В большинстве случаев для переноса базы данных достаточно остановить сервер mysql и скопировать директорию /var/lib/mysql, если у вас локальная версия, либо подключенную к docker через volume — /app/onlyoffice/mysql/data. Я делал так много раз, проблем не было.

Далее переносите файлы из директории /var/www/onlyoffice/Data в случае локальной версии, или /app/onlyoffice/CommunityServer/data в случае с docker. После этого на новом месте проверяете права на файлы и стартуете сервисы. Все, больше ничего делать не надо.

Данное руководство будет актуально для переноса данных с локальной версии, установленной из пакетов, на Docker версию и обратно. Я так одно время делал, когда сталкивался с какими-то проблемами или ошибками. В целом, с переносом проблем нет, если до этого у вас не ломались обновления.

Здесь же сделаю еще одно важное дополнение. Я уже говорил в первой статье, что не рекомендую настраивать https на самом сервере Onlyoffice

Потом будет труднее переезжать, обновляться, тестировать какие-то изменения. Когда у вас версия работает по http, вы спокойно ее клонируете, меняете ip и заходите по нему в веб интерфейс. Нет никаких ошибок https. Если нужно переехать, просто поднимаете новый сервер, все отлаживаете на нем, переносите данные и переключаете на nginx, работающем в режиме proxy_pass бэкенд и все. Я всегда придерживаюсь такого подхода при работе web приложений. Все входящие соединения пропускаю через nginx.

Настройка Onlyoffice

После установки, Onlyoffice встретит вас следующим окном.

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

Дальше можете пройтись по остальным разделам настроек и выставить их по своим потребностям. Я обычно делаю следующее:

  • Модули и инструменты. Отключаю тем модули, что мне не нужны. Обычно это CRM, События, Блоги, Почта, Чат. Здесь же указываю стартовой страницей по умолчанию Документы. Это чтобы при входе у него сразу же открывались документы.
  • В разделе Доступ к порталу можно настроить ограничения по доменам почтовых ящиков, с которых разрешена регистрация. Так вы можете оставить ее открытой, но ограничить доменом своей организации. Там же есть возможность настроить ограничения по ip и некоторые другие настройки безопасности.
  • В Сторонних сервисах можно активировать поддержку интеграции с каким-то внешним сервисом. Например, включить оповещения в Telegram.
  • У вас есть возможность установить сервис документов (контейнер onlyoffice/documentserver) на отдельную виртуальную машину. В разделе Служба документов можно настроить подобное подключение. Я делал подобное, рабочее решение.
  • В разделе Настройки SMTP надо указать почтовый ящик, через который портал будет рассылать почту. Можете либо свой сервер использовать, либо какой-то бесплатный публичный.

Из основного в настройках все. Дальше можно пройти в Панель управления и настроить HTTPS. Только не забудьте перезайти в портал по доменному имени, а не IP адресу.

После нажатия на кнопку будет получен бесплатный сертификат от Let’s Encrypt. Вообще, с сертификатами, которые настраиваются автоматически через Панель управления, могут возникать различные проблемы при переезде, а так же в том случае, если у вас сервер не смотрит напрямую в интернет. В общем случае, я бы рекомендовал проксировать все запросы на портал через отдельный nginx с настройкой proxy_pass. Собственно, сам я всегда так и делаю. А дальше уже запрос по http идет на портал. Это более гибкая конфигурация, которая позволяет без проблем переезжать порталу куда угодно.

Но если у вас одиночная виртуалка, смотрящая напрямую в интернет, сойдет и так.

В целом, базовая настройка onlyoffice уже закончена. Вы можете спокойно пользоваться. Вам надо зарегистрировать пользователей, насоздавать документов, общих папок, расставить права и т.д. В вашем распоряжении будет wiki, форум. Очень удобный инструмент для ведения документации. И все это полностью подконтрольно вам, хранится только у вас. Работает достаточно шустро, если хватает ресурсов виртуалки.

Далее можете посмотреть мою следующую статью на эту же тему — Перенос и обновление Onlyoffice.

Шаг 3. Связываем OnlyOffice и Nextcloud.

Сначала переходим на прокси, где в файле настроек, описывающего доступ к облаку, вписываем директиву location для OnlyOffice.

Потом переходим в веб-интерфейс Nextcloud, а затем в Приложения

В списке слева ищем раздел «Офис и текст» и ставим приложение ONLYOFFICE, нажав «Скачать и включить».

Теперь, когда установили приложение, переходим в настройки.

Слева находим пункт ONLYOFFICE

Переходим. В поле Адрес службы редактирования документов вводим адрес, где расположен наш сервер, путь для которого мы определили выше описывая директиву location для nginx. Иначе говоря, вводим в поле доменное имя, по которому расположен Nextcloud с путём к серверу документов. Получившийся путь должен быть примерно таким:

Нажмите сохранить и интерфейс должен стать похожим на тот, что на скриншоте выше.

В настройках можете указать какой тип документов открывать.

Важное замечание

Для ещё большего удобства использования облака совместно с onlyoffice существует замечательное приложение для Android — ONLYOFFICE Documents. С помощью которого можно удобно редактировать таблицы, документы, презентации и т.д.

Интерфейс его довольно заурядный, как и у всех офисных пакетов, но вот функция интеграции с облаком выделяет это приложение.

Однако после 5 версии OnlyOffice разработчики убрали эту замечательную функцию редактирования документа из облака на своём телефоне. И теперь появляется вот такое сообщение при попытке открыть документ.

Так вот, как оказалось, с пятой версии сервера разработчики сделали такую возможность только для платных версий OnlyOffice, но не для бесплатных.

Путём недолгих экспериментов с образами Docker, я выяснил, что последняя рабочая версия OnlyOffice — 5.4.2.46. А так как у нас тут контейнерные перевозки, то нет никаких проблем запускать образ докера с нужной версией OnlyOffice, которая равняется 5.4.2.46. Таким образом команда для запуска нормально работающей версии OnlyOffice такая:

На этом вроде всё

P.S. Возможные ошибки

Шаг 2. Ставим OnlyOffice

Опять же, всё делаем на той же машине, где поставили Docker.

По понятной инструкции с сайта OnlyOffice подготавливаем и ставим образ.

Для начала создаём сертификаты для связи Nextcloud’а и OnlyOffice.

Генерируем параметры Диффи-Хеллмана (DHE), обеспечивающие более высокую стойкость.

Создаём директорию для хранения сертификатов

Перемещаем в неё свежесозданные самоподписанные сертификаты.

И запускаем контейнер в фоне, который будет всегда перезапускаться, если он был остановлен. Например, после перезагрузки сервера. Также пробросим в контейнер папку с нашими сертификатами.

Сам образ OnlyOffice при запуске ищет в /var/www/onlyoffice/Data сертификаты с именами, которые были созданы выше.

Сервер с OnlyOffice готов и дальше его можно не трогать.

Что такое Onlyoffice

Для начала кратко расскажу, что из себя представляет onlyoffice. Конкретно в этой статье я буду рассказывать об установке на свой сервер набора софта для онлайн редактирования и совместного доступа к документам наподобие Google Docs. Причем лично мне он нравится больше, чем сервис от google. Субъективно гугл документы работают медленнее.

Функциональность:

Помимо онлайн сервиса, у onlyoffice есть бесплатные редакторы документов для работы офлайн на своем компьютере. Лично мне они не зашли вообще, потому что очень тормозные. Парадокс, но то, что среди веб сервисов кажется одним из быстрых, в офлайне работает очень медленно. Думаю, связано с тем, что под капотом там JavaScript. Это будущее, которое ждет нас всех Пока еще на десктопе есть нативные приложения, работать в тормозном яваскрипте не хочется.

Так же onlyoffice предлагает воспользоваться своим облачным сервисом, где все тот же сервис для совместной работы. Можно зарегистрироваться и посмотреть на него, прежде чем устанавливать себе локально. Отличий от self-hosted версии почти нет. Я бы даже сказал, вообще нет. При этом self-hosted версия представлена в том числе в виде open source решения под названием CommunityServer. Именно его я и буду настраивать.

Есть и платная версия self-hosted сервера. Отличия в основном следующие:

Это из основного, что вспоминается. Раньше у них на сайте было все подробно расписано, в том числе и отличия платной и бесплатной версии. Но в какой-то момент они убрали всю информацию о CommunityServer с сайта и перенесли его на github. Теперь я нигде не могу найти подробный список отличий и ограничений бесплатной версии.

Onlyoffice на своих серверах я использую уже года 4, так что накопился приличный опыт. Установка возможна как из deb/rpm пакетов, так и в виде docker образов. Я пользовался и тем, и тем. В том числе делал миграции с различных версий. И там, и там есть свои плюсы и минусы. На текущий момент остановился на использовании образов docker, потому что фактически не осталось выбора.

В целом, мне больше нравится использовать пакеты. Связано это с тем, что onlyoffice многокомпонентный сервис. Вот основные службы, из которых он состоит:

Все это внутри связано и взаимодействует друг с другом. Когда все установлено из пакетов в рамках операционной системы, проще проводить дебаг, смотреть логи, перезапускать отдельные сервисы, да и в целом управлять. Ты можешь хоть немного разобраться, как тут все работает и что-то починить из компонентов. Если используются образы docker, то у тебя имеются черные ящики с каким-то внутренним устройством, в котором очень сложно разобраться. Что-то продебажить становится трудно.

А с пакетами другая проблема. Удобно эксплуатировать, но практически невозможно нормально обновиться. Из-за того, что система состоит из огромного числа компонентов, постоянно возникают проблемы с зависимостями. Нельзя просто взять и обновить систему. Обязательно что-то сломается. По факту, у меня никогда не получалось корректно и с первого раза обновить всю систему. Все время оказывалось проще установить новую версию с нуля и перенести данные. Это очень трудоемкий процесс.

Последний раз я опять установил систему с нуля через докер контейнеры и перенес все данные со старого сервера, развернутого из пакетов. Пожалуй, с пакетами придется попрощаться. Решать проблемы обновления стало невыносимо. У меня с нескольких попыток так и не получилось.

Еще важное замечание по onlyoffice. Так как система многокомпонентная и сложная внутри, бывают ошибки

В бесплатной версии у вас нет никакой поддержки. Форум полумертвый, документация не очень. Я ее уже вдоль и поперек изучил всю за 4 года. Она какая-то разрозненная, неполноценная. Разбираться в ней муторно. Я в том числе и поэтому решил написать статью, чтобы помочь всем тем, кто захочет разобраться и поработать с этой системой. Не рекомендую замыкать какие-то важные бизнес процессы на бесплатную версию. Можете погореть. Использую в основном для ведения совместной документации. Даже если начнутся какие-то проблемы и что-то будет падать или работать неправильно, ничего критичного не случится. Обычно reboot помогает. А если нет, то ставим новую версию и накатываем данные из бэкапа.

Подвожу итог. В целом, система сложная для эксплуатации, но очень функциональная. Установить просто, но если начнутся проблемы, решать тяжело. Пользоваться ей удобно. Бесплатных аналогов с таким же функционалом нет.

Дальше переходим к установке.

Заключение

На этом по Onlyoffice на сегодня все. Надеюсь, у вас появилось представление, как этот портал работает и с чем можно столкнуться во время эксплуатации. Как видите, надо немного разбираться во внутренностях этой штуки, чтобы успешно решать проблемы. Если у вас нет достаточного опыта, я бы аккуратно внедрял onlyoffice и старался перейти на платную подписку с тех поддержкой. Либо использовал его для вспомогательных вещей, которые терпят некоторого простоя, пока вы восстановитесь из резервной копии. Как я уже говорил, он отлично подходит для ведения большой и разноплановой документации. Удобно и не критично, если что-то где-то засбоит.

Другой вариант – использовать облако. Но лично мне он не очень нравится. Облачная версия работает заметно медленнее локальной, а это именно то, что лично мне не нравится, когда много работаешь с документами. Но с другой стороны, вам вообще не нужен специалист по поддержке портала. Так что нормальный компромисс.

Если у вас есть желание поднять у себя подобный портал, но некому это сделать, можете обращаться ко мне. Я рассчитаю примерную стоимость своей работы и всё вам настрою по вашему заданию (бэкапы, клонирование, мониторинг, интеграция с почтой и т.д.).

Онлайн курс по Linux

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом “Administrator Linux. Professional” в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.

Что даст вам этот курс:

  • Знание архитектуры Linux.
  • Освоение современных методов и инструментов анализа и обработки данных.
  • Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
  • Владение основными рабочими инструментами системного администратора.
  • Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
  • Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.

Проверьте себя на вступительном тесте и смотрите подробнее программу по .

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: