Перейти к основному содержимому

Установка ONLYOFFICE Docs для Docker на ARM64

Введение​

Начиная с версии 7.1, ONLYOFFICE Docs можно установить с помощью Docker для 64-битной архитектуры ARM.

Developer Edition позволяет установить ONLYOFFICE Docs на локальном сервере и интегрировать онлайн-редакторы с вашим веб-приложением.

ONLYOFFICE Docs — это офисный пакет для работы онлайн, который включает в себя просмотрщики и редакторы текстовых документов, электронных таблиц и презентаций, полностью совместимые с форматами Office Open XML: .docx, .xlsx, .pptx и позволяющие совместно редактировать документы в режиме реального времени.

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

  • Редактор документов
  • Редактор таблиц
  • Редактор презентаций
  • Мобильные веб-просмотрщики
  • Мобильные веб-редакторы
  • Совместное редактирование
  • Поддержка иероглифов
  • Поддержка всех популярных форматов: DOC, DOCX, TXT, ODT, RTF, ODP, EPUB, ODS, XLS, XLSX, CSV, PPTX, HTML

Смотрите подробный список возможностей, доступных для ONLYOFFICE Docs Developer Edition.

В данной инструкции объясняется, как установить на компьютере версию ONLYOFFICE Docs Developer Edition для Docker 7.2 и выше на 64-битной архитектуре ARM.

Системные требования​

  • Процессор: 64-битный процессор ARM
  • Оперативная память: не менее 4 ГБ
  • Жесткий диск: не менее 40 ГБ свободного места
  • SWAP: не менее 4 ГБ, но это зависит от ОС хоста. Чем больше, тем лучше
  • ОС: дистрибутив Linux для arm64
  • Дополнительные требования
    • Docker: любая версия, поддерживаемая командой Docker

Установка ONLYOFFICE Docs​

примечание

У вас должна быть установлена последняя версия Docker. В противном случае обратитесь к разделу Installation на сайте Docker за инструкциями по установке.

примечание

В Docker по умолчанию указаны DNS-серверы Google. Если ваш ONLYOFFICE Docs не будет иметь доступа в Интернет, рекомендуется изменить заданный в Docker по умолчанию адрес DNS-сервера на адрес вашего локального DNS-сервера. Для этого откройте файл /etc/default/docker и замените IP-адрес в следующей строке на IP-адрес DNS-сервера в вашей локальной сети:

docker_OPTS="--dns 8.8.8.8"

Для операционных систем на основе RPM, например, CentOS:

  1. Создайте файл конфигурации /etc/docker/daemon.json со следующим содержанием:

    { "dns" : [ "8.8.8.8" ] }
  2. Перезапустите сервис Docker:

    sudo systemctl restart docker.service

После того, как Docker будет установлен, запустите его и выполните следующую команду:

sudo docker run -i -t -d -p 80:80 --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de:latest
Важно

Начиная с версии 7.2, добавлена генерация случайного секретного ключа JWT. Если секретный ключ JWT не указан с помощью переменной окружения, это ведет к его повторной генерации при каждой перезагрузке виртуальных машин или физического сервера, поэтому могут возникать проблемы в интеграциях. Чтобы этого избежать, задайте собственное значение в -e JWT_SECRET=my_jwt_secret.

Если вы не хотите использовать JWT в инсталляции, используйте -e JWT_ENABLED=false.

примечание

По умолчанию ONLYOFFICE Docs слушает входящие соединения на порту 80. Начиная с версии 4.3 вы можете сменить порт для ONLYOFFICE Docs в случае, если вы планируете использовать его вместо того, который идет по умолчанию. Это можно легко сделать, сменив порт во время установки:

sudo docker run -i -t -d -p <PORT_NUMBER>:80 --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de:latest

Где <PORT_NUMBER> — это номер порта, который вы хотите использовать для ONLYOFFICE Docs.

В результате будет установлена версия ONLYOFFICE Docs со всеми необходимыми зависимостями (список команд, которые выполняет скрипт, можно найти здесь).

Сохранение данных вне контейнеров​

Все данные хранятся в специально отведенных для этого каталогах, томах данных, которые находятся по следующему адресу:

  • /var/log/onlyoffice для лог-файлов ONLYOFFICE Docs
  • /var/www/onlyoffice/Data для сертификатов
  • /var/lib/onlyoffice для кэша файлов
  • /var/lib/postgresql для базы данных
Рекомендация

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

Для получения доступа к данным извне контейнера надо монтировать тома. Это можно сделать, указав параметр -v в команде docker run.

sudo docker run -i -t -d -p 80:80 --restart=always \
-v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
-v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \
-v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de:latest
примечание

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

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

  • для обеспечения быстрого доступа к данным контейнера, таким как лог-файлы;
  • для снятия ограничений по объему данных внутри контейнера;
  • при использовании сервисов, запускаемых извне контейнера, таких как PostgreSQL, Redis, RabbitMQ.

Запуск ONLYOFFICE Docs с использованием HTTPS​

sudo docker run -i -t -d -p 443:443 --restart=always \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de:latest

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

Для обеспечения безопасного доступа к приложению с помощью 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.

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

sudo docker run -i -t -d -p 80:80 -p 443:443 --restart=always \
-e LETS_ENCRYPT_DOMAIN=yourdomain.com -e LETS_ENCRYPT_MAIL=email@example.com -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de:latest

Где:

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

Сертификат, подписанный центром сертификации letsencrypt.org, будет автоматически сгенерирован и установлен на ваш сервер. Теперь ваш ONLYOFFICE Docs должен быть доступен по адресу https://yourdomain.com.

Генерация самоподписанных сертификатов​

Генерация самоподписанных SSL-сертификатов включает в себя три простых шага:

ШАГ 1: Создайте закрытый ключ сервера

openssl genrsa -out onlyoffice.key 2048

ШАГ 2: Создайте запрос подписи сертификата (CSR)

openssl req -new -key onlyoffice.key -out onlyoffice.csr

ШАГ 3: Подпишите сертификат с помощью закрытого ключа и CSR

openssl x509 -req -days 365 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt

Вы только что сгенерировали SSL-сертификат со сроком действия 365 дней.

Усиление безопасности сервера​

В этом разделе приводятся инструкции по усилению безопасности вашего сервера.

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

openssl dhparam -out dhparam.pem 2048

Установка SSL-сертификатов​

Из четырех ранее сгенерированных файлов на сервер onlyoffice необходимо установить файлы onlyoffice.key, onlyoffice.crt и dhparam.pem. Файл CSR не требуется, но убедитесь, что вы создали его резервную копию (на случай, если он вам снова понадобится).

По умолчанию приложение onlyoffice настроено для поиска SSL-сертификатов в каталоге /var/www/onlyoffice/Data/certs. Этот путь можно изменить, используя параметры настройки SSL_KEY_PATH, SSL_CERTIFICATE_PATH и SSL_DHPARAM_PATH.

Путь /var/www/onlyoffice/Data/ — это путь к хранилищу данных. Вам надо создать папку с именем certs в каталоге /app/onlyoffice/DocumentServer/data/ и скопировать файлы в нее, а также в качестве меры безопасности необходимо изменить права доступа к файлу onlyoffice.key, чтобы он был доступен на чтение только владельцу.

mkdir -p /app/onlyoffice/DocumentServer/data/certs
cp onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/
cp onlyoffice.crt /app/onlyoffice/DocumentServer/data/certs/
cp dhparam.pem /app/onlyoffice/DocumentServer/data/certs/
chmod 400 /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key

И перезапустите Docker-контейнер:

sudo docker restart {{DOCUMENT_SERVER_ID}}

Остался всего один шаг, чтобы обеспечить безопасный доступ к приложению.

Доступные параметры настройки​

примечание

Флаг --env-file в параметрах команды docker run позволяет задать все необходимые переменные среды в одном файле. Так можно избежать написания потенциально длинной команды docker run.

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

  • ONLYOFFICE_HTTPS_HSTS_ENABLED: Дополнительный параметр настройки для отключения HSTS. Применяется только в тех случаях, когда используется SSL. По умолчанию задано значение true.
  • ONLYOFFICE_HTTPS_HSTS_MAXAGE: Дополнительный параметр настройки для задания параметра max-age HSTS в конфигурации виртуального хоста NGINX для onlyoffice. Применяется только в тех случаях, когда используется SSL. По умолчанию задано значение 31536000.
  • SSL_CERTIFICATE_PATH: Путь к используемому SSL-сертификату. По умолчанию задано значение /var/www/onlyoffice/Data/certs/tls.crt.
  • SSL_KEY_PATH: Путь к закрытому ключу SSL-сертификата. По умолчанию задано значение /var/www/onlyoffice/Data/certs/tls.key.
  • SSL_DHPARAM_PATH: Путь к параметру Диффи-Хеллмана. По умолчанию задано значение /var/www/onlyoffice/Data/certs/dhparam.pem.
  • SSL_VERIFY_CLIENT: Включение проверки сертификатов клиента с помощью файла CA_CERTIFICATES_PATH file. По умолчанию задано значение false.
  • DB_TYPE: Тип базы данных. Поддерживаются значения postgres, mariadb или mysql. По умолчанию задано значение postgres.
  • DB_HOST: IP-адрес или имя хоста, на котором запущен сервер базы данных.
  • DB_PORT: Номер порта сервера базы данных.
  • DB_NAME: Имя базы данных, которая должна создаваться при запуске образа.
  • DB_USER: Имя нового пользователя с правами суперпользователя для учетной записи базы данных.
  • DB_PWD: Пароль, заданный для учетной записи базы данных.
  • AMQP_URI: AMQP URI для подключения к серверу менеджера сообщений.
  • AMQP_TYPE: Тип менеджера сообщений. Поддерживаются значения rabbitmq или activemq. По умолчанию задано значение rabbitmq.
  • REDIS_SERVER_HOST: IP-адрес или имя хоста, на котором запущен сервер Redis.
  • REDIS_SERVER_PORT: Номер порта сервера Redis.
  • REDIS_SERVER_PASS: Пароль сервера Redis. По умолчанию пароль не задан.
  • NGINX_WORKER_PROCESSES: Определяет число рабочих процессов NGINX.
  • NGINX_WORKER_CONNECTIONS: Задает максимальное число соединений, которые одновременно может открыть рабочий процесс NGINX.
  • SECURE_LINK_SECRET: Определяет секрет для директивы secure_link_md5 конфигурации nginx. По умолчанию задано значение random string.
  • JWT_ENABLED: Управляет включением валидации посредством JSON веб-токена ONLYOFFICE Docs. По умолчанию задано значение true.
  • JWT_SECRET: Определяет секретный ключ для валидации JSON веб-токена при запросе к ONLYOFFICE Docs. По умолчанию задано случайное значение.
  • JWT_HEADER: Определяет HTTP-заголовок, который будет использоваться для отправки JSON веб-токена. По умолчанию задано значение Authorization.
  • JWT_IN_BODY: Управляет включением валидации посредством токена в теле запроса к ONLYOFFICE Docs. По умолчанию задано значение false.
  • ALLOW_META_IP_ADDRESS: Определяет, разрешено ли подключать мета IP-адрес. По умолчанию задано значение false.
  • ALLOW_PRIVATE_IP_ADDRESS: Определяет, разрешено ли подключать частный IP-адрес. По умолчанию задано значение false.
  • WOPI_ENABLED: Управляет включением обработчиков wopi. По умолчанию задано значение false.
  • USE_UNAUTHORIZED_STORAGE: Задайте значение true при использовании самоподписанных сертификатов для вашего сервера хранилища, например, Nextcloud. По умолчанию задано значение false.
  • GENERATE_FONTS: Когда задано значение true, заново генерирует список шрифтов, эскизы шрифтов и т.д. при каждом запуске. По умолчанию задано значение true.
  • METRICS_ENABLED: Управляет включением StatsD для ONLYOFFICE Docs. По умолчанию задано значение false.
  • METRICS_HOST: Определяет хост StatsD. По умолчанию задано значение localhost.
  • METRICS_PORT: Определяет порт StatsD. По умолчанию задано значение 8125.
  • METRICS_PREFIX: Определяет префикс метрик StatsD для серверных служб. По умолчанию задано значение ds..
  • LETS_ENCRYPT_DOMAIN: Определяет домен для сертификата Let's Encrypt.
  • LETS_ENCRYPT_MAIL: Определяет почтовый адрес администратора домена для сертификата Let's Encrypt.

Регистрация вашей версии Developer Edition​

Если вы купили Developer Edition и получили файл license.lic, вы можете поместить его в инсталляцию для получения полной версии программы.

Если вы используете контейнер docker, файл license.lic можно поместить в любую папку (например, /app/onlyoffice/DocumentServer/data/license.lic), но эту папку необходимо монтировать при запуске контейнера:

sudo docker run -i -t -d -p 80:80 --restart=always \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
-e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de:latest

После этого ваша версия Developer Edition станет зарегистрированной и полнофункциональной.