запуск ONLYOFFICE Docs через контейнер Docker

Thank you for reading this post, don't forget to subscribe! 
  1. уста­нов­ка docker
  2. уста­нов­ка onlyoffice

ONLYOFFICE Docs – это офис­ный пакет с откры­тым исход­ным кодом, кото­рый поз­во­ля­ет создать сре­ду для сов­мест­ной рабо­ты, предо­став­ляя воз­мож­но­сти редак­ти­ро­ва­ния доку­мен­тов широ­ко­му спек­тру реше­ний для сов­мест­но­го исполь­зо­ва­ния фай­лов и систем управ­ле­ния доку­мен­та­ми, вклю­чая Nextcloud, Alfresco, ownCloud, Confluence, Liferay, Nuxeo, ownCloud, SharePoint, ONLYOFFICE Workspace и др.

ONLYOFFICE Docs обладает следующими возможностями:

  • Сов­мест­ные редак­то­ры для тек­сто­вых доку­мен­тов, элек­трон­ных таб­лиц и пре­зен­та­ций любо­го типа.
  • Сов­мест­ное редак­ти­ро­ва­ние в реаль­ном вре­ме­ни (два режи­ма сов­мест­но­го редак­ти­ро­ва­ния, отсле­жи­ва­ние изме­не­ний, авто­со­хра­не­ние, исто­рия вер­сий, ком­мен­та­рии и упо­ми­на­ния поль­зо­ва­те­лей, обще­ние через встро­ен­ный чат).
  • Раз­лич­ные раз­ре­ше­ния досту­па (пол­ный доступ, рецен­зи­ро­ва­ние, запол­не­ние форм, ком­мен­ти­ро­ва­ние, просмотр).
  • Пол­ная сов­ме­сти­мость с фай­ла­ми Word, Excel и PowerPoint;
  • Под­держ­ка дру­гих попу­ляр­ных фор­ма­тов при помо­щи кон­вер­та­ции: DOC, TXT, ODT, RTF, ODP, EPUB, ODS, XLS, CSVHTML.
  • Пла­ги­ны сто­рон­них раз­ра­бот­чи­ков и мак­ро­сы JavaScript (видео YouTube, Google Translate, Zotero, Mendeley, Photo Editor, Telegram, счет­чик слов и т.д.).
  • Повы­шен­ная без­опас­ность (JSON Web Token, настра­и­ва­е­мое вре­мя жиз­ни кэша, HTTPS и т.д.).

Требования к аппаратному и программному обеспечению

Преж­де чем начать про­цесс уста­нов­ки, убе­ди­тесь, что ваше обо­ру­до­ва­ние соот­вет­ству­ет сле­ду­ю­щим требованиям:

  • Про­цес­сор: двухъ­ядер­ный с часто­той 2 ГГц или выше;
  • Опе­ра­тив­ная память: не менее 4 ГБ;
  • Место для под­кач­ки: не менее 2 ГБ;
  • HDD: не менее 2 ГБ сво­бод­но­го места;
  • Docker: v1.9.0 или новее.

Шаг 1 – Установите Docker

Для уста­нов­ки ONLYOFFICE Docs необ­хо­ди­мо, что­бы на вашей машине был уста­нов­лен Docker.

УСТАНОВКА DOCKER В CEONTOS 8

Что­бы полу­чить самую све­жую вер­сию про­грам­мы необ­хо­ди­мо сна­ча­ла доба­вить офи­ци­аль­ный репо­зи­то­рий Docker в систему:

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

Затем уста­нов­ка Docker CentOS 8 выпол­ня­ет­ся командой:

dnf install docker-ce

Дан­ные коман­ды будут акту­аль­ны как для Fedora и CentOS 7 толь­ко для послед­ней будет необ­хо­ди­мо поме­нять пакет­ный мене­джер на yum и репо­зи­то­рий будет добав­лять­ся по другому.

Далее запу­сти­те служ­бу Docker и добавь­те её в автозагрузку:

systemctl start docker
systemctl enable docker
systemctl status docker

Посколь­ку CentOS 8 пере­шла на новую под­си­сте­му бранд­мау­э­ра - nftables, а Docker под­дер­жи­ва­ет толь­ко iptables, то сеть внут­ри кон­тей­не­ров рабо­тать не будет. Что­бы это испра­вить надо вклю­чить тра­фик masquerade с помо­щью firewalld:

firewall-cmd --zone=public --add-masquerade --permanent

Затем пере­за­гру­зи­те фаер­вол, что­бы пра­ви­ла актив­ные обновились:

firewall-cmd --reload

УСТАНОВКА DOCKER COMPOSE

Docker обыч­но уста­нав­ли­ва­ет­ся вме­сте с инстру­мен­том авто­ма­ти­че­ско­го раз­вер­ты­ва­ния и кон­фи­гу­ри­ро­ва­ния кон­тей­не­ров docker-compose. Это как раз та ути­ли­та, кото­рая помо­жет под­нять ваш про­ект на дру­гой машине одной коман­дой. Для её уста­нов­ки выполните:

wget "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)"
mv ./docker-compose /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

Гото­во, уста­нов­ка docker compose CentOS 8 завер­ше­на и вы може­те начать рабо­тать с этой утилитой.

ПРОВЕРКА РАБОТЫ DOCKER

Что­бы убе­дить­ся что Docker уста­нов­лен и рабо­та­ет мож­но посмот­реть его версию:

docker --version

А так­же мож­но запу­стить Hello world контейнер:

docker run hello-world

Так­же можем посмот­реть вер­сию docker-compose:

docker-compose --version

УДАЛЕНИЕ DOCKER В CENTOS

Уда­лить Docker CentOS мож­но про­сто уда­лив пакет, кото­рый вы ранее уста­но­ви­ли, для это­го выполните:

dnf remove docker-ce

Что­бы уда­лить docker-compose доста­точ­но уда­лить файл /usr/local/bin/docker-compose, эта ути­ли­та нахо­дит­ся толь­ко там и её нет боль­ше ни где в системе.

Шаг 2 – Установка ONLYOFFICE Docs

Когда Docker будет успеш­но уста­нов­лен на вашей машине, запу­сти­те его и вве­ди­те эту коман­ду для уста­нов­ки ONLYOFFICE Docs:

sudo docker run -i -t -d -p 80:80 --restart=always onlyoffice/documentserver

Вот и все.

Обра­ти­те вни­ма­ние, что ONLYOFFICE Docs исполь­зу­ет 80 порт для вхо­дя­щих соединений.

Что­бы изме­нить порт по умол­ча­нию, выпол­ни­те сле­ду­ю­щую команду:

sudo docker run -i -t -d -p <PORT_NUMBER>:80 --restart=always onlyoffice/documentserver

В этой коман­де <PORT_NUMBER> – это номер пор­та, кото­рый вы хоти­те, что­бы ONLYOFFICE Docs исполь­зо­вал для вхо­дя­щих соединений.

Шаг 3 – Убедитесь, что ваши данные хранятся вне контейнера Docker

не реко­мен­дую про­пус­кать этот шаг, пото­му что хра­не­ние ваших дан­ных вне кон­тей­не­ра Docker на вашей машине поз­во­лит вам лег­ко обно­вить ONLYOFFICE Docs в буду­щем без поте­ри ваших данных.

Все ваши дан­ные (логи, сер­ти­фи­ка­ты, фай­ло­вый кэш и т.д.) хра­нят­ся в спе­ци­аль­ных ката­ло­гах, так­же извест­ных как data volumes, в сле­ду­ю­щих местах:

  • /var/log/onlyoffice – логи ONLYOFFICE;
  • /var/www/onlyoffice/Data – сертификаты;
  • /var/lib/onlyoffice – кэш файлов;
  • /var/lib/postgresql – ваша база данных.

Что­бы полу­чить доступ к дан­ным, хра­ня­щим­ся вне кон­тей­не­ра Docker, необ­хо­ди­мо смон­ти­ро­вать эти тома, доба­вив опцию -v в коман­ду docker run:

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

Вам при­дет­ся изме­нить пра­ва досту­па к ним вручную.

Шаг 4 – Запуск ONLYOFFICE Docs с HTTPS

Что­бы запу­стить ONLYOFFICE Docs через про­то­кол HTTPS, вве­ди­те следующее:

Если вы хоти­те предот­вра­тить несанк­ци­о­ни­ро­ван­ный доступ, вы так­же може­те исполь­зо­вать SSL-сертификат.

Для это­го вам пона­до­бят­ся две вещи:

  • Закры­тый ключ (.key)
  • SSL-сер­ти­фи­кат (.crt)

Это озна­ча­ет, что вам необ­хо­ди­мо создать и уста­но­вить сле­ду­ю­щие файлы:

  • /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
  • /app/onlyoffice/DocumentServer/data/certs/onlyoffice.crt

Если у вас есть сер­ти­фи­кат, выдан­ный УЦ (напри­мер, Let’s Encrypt), добавь­те эти файлы.

Если вы пред­по­чи­та­е­те само­под­пи­сан­ные сер­ти­фи­ка­ты, вам необ­хо­ди­мо сге­не­ри­ро­вать эти фай­лы самостоятельно.

Переключение ONLYOFFICE Docs на HTTPS с помощью certbot

Пред­по­чти­тель­ным спо­со­бом запус­ка ONLYOFFICE Docs по про­то­ко­лу HTTPS явля­ет­ся полу­че­ние SSL-сер­ти­фи­ка­та Let’s Encrypt с помо­щью certbot.

Запу­сти­те ONLYOFFICE Docs, ука­зав пор­ты 80 и 443 и вве­дя свои соб­ствен­ные зна­че­ния для пере­мен­ных ниже:

  • LETS_ENCRYPT_DOMAIN – домен­ное имя, исполь­зу­е­мое для ваше­го SSL-сертификата.
  • LETS_ENCRYPT_MAIL – адрес элек­трон­ной почты, кото­рый вы исполь­зо­ва­ли при регистрации.

Сер­ти­фи­кат Let’s Encrypt будет авто­ма­ти­че­ски сге­не­ри­ро­ван и уста­нов­лен на вашей машине.

Ваш экзем­пляр ONLYOFFICE Docs будет досту­пен по адре­су https://yourdomain.com.

Поздрав­ля­ем!

Вы успеш­но про­шли про­цесс настройки.

Теперь вы може­те запу­стить ONLYOFFICE Docs как кон­тей­нер Docker и редак­ти­ро­вать тек­сто­вые доку­мен­ты, элек­трон­ные таб­ли­цы и пре­зен­та­ции онлайн.

Шаг 5 – Тестирование ONLYOFFICE Docs

Кро­ме того, перед инте­гра­ци­ей ONLYOFFICE Docs со сто­рон­ним фай­ло­об­мен­ным реше­ни­ем вы може­те про­те­сти­ро­вать функ­ци­о­наль­ность редакторов.

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

По умол­ча­нию тесто­вый при­мер отклю­чен, но вы може­те уви­деть инструк­ции по его вклю­че­нию на стар­то­вом экране.

Про­сто перей­ди­те по адре­су https://yourdomain.com/welcome и сле­дуй­те инструкциям.

Тесто­вый при­мер ста­нет досту­пен по адре­су https://yourdomain.com/example.

Исполь­зуя тесто­вый при­мер, вы може­те про­ве­рить пра­виль­ность рабо­ты ONLYOFFICE Docs, загру­жая и редак­ти­руя локаль­ные фай­лы или созда­вая новые (DOCX, XLSX и PPTX).