Добавление шрифтов в ONLYOFFICE Document Server: Docker против Linux

Чтобы добавить пользовательские шрифты в ONLYOFFICE Document Server, поместите файлы лицензированных шрифтов в каталог, доступный серверу, и запустите команду /usr/bin/documentserver-generate-allfonts.sh. Для развертываний Docker обычно предпочтительнее использовать каталог шрифтов, смонтированный с помощью bind-mount, чем копировать файлы в работающий контейнер, поскольку он сохраняется при повторном создании контейнера.

Правильный способ установки зависит от того, где работает ONLYOFFICE Docs, как часто вы его переустанавливаете и готовы ли вы смириться с кратковременным перерывом в работе сервиса во время обновления каталога шрифтов.

Редактор документов ONLYOFFICE с выпадающим списком шрифтов, отображающим установленные шрифты, и образцом документа.
В выпадающем списке шрифтов редактора отображаются доступные семейства шрифтов; отсутствующие шрифты могут быть заменены альтернативными до обновления каталога шрифтов сервера.

Выберите способ установки шрифта

МетодНаилучший вариантКомпромисс
Docker bind mountУправление производственными контейнерами с помощью Docker Compose.Требуется редактирование конфигурации контейнера и, возможно, его повторное создание.
docker cpв рабочий контейнерЭкспресс-тест или временное дополнениеФайлы могут исчезнуть при замене этого контейнера.
Установите шрифты на хосте Linux, где запущен собственный пакет Document Server.Установка в стиле DEB/RPM без Docker.Требуется администрирование на уровне сервера, и система остается привязанной к данному хосту.

В официальных инструкциях Docker по работе со шрифтами описано копирование файлов и перестроение списка шрифтов. В справочнике Docker по привязке монтирования объясняется, почему монтирование выделенной папки на хосте делает файлы доступными при замене контейнеров. Это разные варианты развертывания, а не разные форматы шрифтов.

Подготовьте файлы шрифтов и подтвердите целевой сервер.

1. Определите активное развертывание ONLYOFFICE.

Запустите docker psредактор в контейнерах на хосте Docker. Найдите имя контейнера Document Server в столбце NAMES; в приведенных ниже примерах используется onlyoffice-documentserver. Замените это значение, если оно отличается. Интеграция с Nextcloud или ownCloud обычно не меняет того факта, что шрифты должны быть установлены на сервере ONLYOFFICE Docs, а не только на сервере хранения или компьютере, просматривающем документ.

docker ps
В терминале Ubuntu отображается команда `docker ps` и запущенный контейнер ONLYOFFICE Document Server.
Перед копированием шрифтов или перегенерацией каталога найдите контейнер Document Server в списке Docker-контейнеров.

2. Соберите файлы лицензионных шрифтов.

Выберите полные, правильно лицензированные семейства шрифтов, включая начертания и стили, которые фактически используются в ваших документах. ONLYOFFICE перечисляет форматы TrueType и OpenType, такие как .ttfи .otf, а также другие поддерживаемые расширения шрифтов, в своей документации по шрифтам для Linux . Для предсказуемого первого развертывания используйте обычные файлы TTF или OTF и проверьте разрешенное использование на сервере и клиенте в лицензии на шрифты.

В примере с Docker подготовьте файлы /srv/onlyoffice/custom-fontsна хосте Docker. Примеры имен файлов Inter-Regular.ttfявляются Inter-Bold.ttfиллюстративными; используйте файлы, на установку которых у вас есть права.

sudo mkdir -p /srv/onlyoffice/custom-fonts
sudo cp Inter-Regular.ttf Inter-Bold.ttf /srv/onlyoffice/custom-fonts/
sudo chmod 644 /srv/onlyoffice/custom-fonts/*.ttf

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

Файловый менеджер Linux отображает обычные, жирные и другие файлы шрифтов в каталоге пользовательских шрифтов.
Храните все варианты шрифтов вместе в отдельной директории, чтобы их можно было смонтировать в контейнер Document Server.

Рекомендуется для Docker: постоянно монтировать каталог шрифтов.

3. Добавьте привязку монтирования к существующей службе Compose.

В текущем файле Compose найдите службу, которая запускает образ ONLYOFFICE Document Server. Добавьте следующую запись в существующий volumesсписок; сохраните другие тома, порты, учетные данные и переменные среды, уже настроенные:

services:
  onlyoffice-documentserver:
    volumes:
      - /srv/onlyoffice/custom-fonts:/usr/share/fonts/truetype/custom:ro

Исходный путь находится на хосте Docker; целевой путь находится внутри контейнера. Суффикс :roограничивает запись в контейнер только каталогом шрифтов. Монтируйте выделенный customкаталог, а не заменяйте все /usr/share/fontsдерево, что может скрыть шрифты, предоставляемые образом. В официальном Dockerfile для ONLYOFFICE пользовательский каталог шрифтов TrueType объявлен как том на этапах создания образов Community и Enterprise.

Проверьте измененную конфигурацию Compose, затем примените ее docker compose up -dиз каталога проекта. Это может привести к повторному созданию службы: запланируйте изменение на то время, когда редакторы смогут безопасно закрывать документы. Если вы используете простое docker runразвертывание, добавьте эквивалентный --mount type=bind,src=/srv/onlyoffice/custom-fonts,dst=/usr/share/fonts/truetype/custom,readonlyаргумент только для чтения при повторном создании контейнера.

Редактор кода, демонстрирующий запись в Docker Compose для томов, сопоставляющую папку custom-fonts хоста с ONLYOFFICE.
Выделенная запись в томе только для чтения позволяет хранить файлы пользовательских шрифтов отдельно от образа контейнера.

4. Убедитесь, что контейнер видит файлы шрифтов.

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

docker exec onlyoffice-documentserver ls -l /usr/share/fonts/truetype/custom
docker exec onlyoffice-documentserver fc-list | grep -i 'Inter'

Для примеров шрифтов Inter вторая команда должна вывести список соответствующих семейств, если fontconfig их обнаружит. Если файлы существуют, но семейство не отображается, проверьте права доступа и запустите команду docker exec onlyoffice-documentserver fc-cache -f, затем проверьте fc-listеще раз. Само по себе обнаружение Fontconfig не заполняет меню редактора ONLYOFFICE.

В терминале отображается команда docker exec fc-list, выполняющая поиск шрифта Inter, установленного в каталоге пользовательских шрифтов.
Проверка файла fontconfig помогает отличить нечитаемый или отсутствующий файл шрифта от устаревшего каталога шрифтов ONLYOFFICE.

5. Перегенерировать каталог шрифтов ONLYOFFICE.

После того, как файлы окажутся внутри контейнера, запустите скрипт генерации шрифтов сервера документов:

docker exec onlyoffice-documentserver /usr/bin/documentserver-generate-allfonts.sh

ONLYOFFICE использует этот шаг для обновления данных и ресурсов выбора шрифтов. Это может повлиять на работу активных служб редактора, поэтому запускайте его во время подходящего периода технического обслуживания. Документированная переменная среды Docker GENERATE_FONTSтакже по умолчанию имеет значение true, что приводит к перегенерации данных шрифтов при запуске контейнера; это полезно после перезапуска, но не заменяет установку файлов в постоянное местоположение.

Не следует изменять GENERATE_FONTSили принудительно перезапускать систему исключительно для того, чтобы скрыть отсутствие тома. Сначала убедитесь, что ожидаемые файлы действительно смонтированы.

В терминале отображается команда documentserver-generate-allfonts.sh и сообщение о создании каталога шрифтов.
Запустите скрипт генерации шрифтов Document Server после того, как контейнер получит доступ к новым файлам шрифтов.

Альтернативы: временное копирование в Docker или использование нативной операционной системы Linux.

6. Для кратковременного тестирования используйте прямое копирование контейнера.

Если вы не можете немедленно изменить Compose, скопируйте файл в текущий контейнер и перестройте каталог. Это соответствует описанному в документации ONLYOFFICE подходу с использованием Docker и позволяет избежать перестройки контейнера для быстрого тестирования:

docker cp ./Inter-Regular.ttf onlyoffice-documentserver:/usr/share/fonts/truetype/custom/
docker exec onlyoffice-documentserver /usr/bin/documentserver-generate-allfonts.sh

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

7. Установка непосредственно на неконтейнеризированный Linux-сервер документов.

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

sudo install -d -m 755 /usr/share/fonts/truetype/custom
sudo install -m 644 Inter-Regular.ttf /usr/share/fonts/truetype/custom/
sudo /usr/bin/documentserver-generate-allfonts.sh

Этот подход оставляет файлы шрифтов в установке Linux, а не в томе Docker, но администраторам необходимо сохранять их в системе управления конфигурацией или резервных копиях при переустановке хоста. Обратитесь к официальной процедуре ONLYOFFICE для Linux для сервера, на который установлен пакет. Если ваши редакторы обслуживаются более чем одним узлом Document Server, настройте на каждом узле одно и то же семейство шрифтов и варианты.

В терминале Linux отображается скопированный в системный каталог шрифты шрифт Inter, после чего выполняется команда перегенерации шрифтов ONLYOFFICE.
На сервере документов Linux установите шрифт и перегенерируйте его каталог шрифтов без использования команд Docker.

8. Проверьте шрифт в реальном документе.

Откройте новый сеанс редактирования в приложении, подключенном к серверу документов. В тестовом файле DOCX выберите установленное семейство шрифтов из выпадающего списка, введите строку обычного текста, текста жирным шрифтом и репрезентативных символов, отличных от английских, если шрифт предназначен для многоязычного использования. Сохраните, закройте, откройте снова и экспортируйте в PDF. Сравните ширину текста, перенос строк, охват глифов и варианты жирного/курсивного шрифта с известным эталонным документом.

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

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

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

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

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

Диагностика сбоев входа в SLES PAM без блокировки доступа.

Диагностика сбоев входа в SLES PAM без блокировки доступа.

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

Безопасная пересылка Syslog-сообщений SLES с использованием rsyslog и взаимного TLS.

Безопасная пересылка Syslog-сообщений SLES с использованием rsyslog и взаимного TLS.

Отправляйте системные журналы SLES на удаленный сборщик rsyslog по аутентифицированному TLS, с проверкой сертификатов, буферизацией сбоев и тестированием доставки.

Автоматизируйте согласованное резервное копирование Nextcloud с помощью Restic и Cron.

Автоматизируйте согласованное резервное копирование Nextcloud с помощью Restic и Cron.

Создавайте резервные копии файлов Nextcloud и MariaDB одновременно, планируйте создание зашифрованных снимков Restic с помощью cron и проверяйте восстановление, не рискуя работающим сервером.

Создание резервной копии и восстановление почтового ящика Zimbra CE с помощью экспорта TGZ.

Создание резервной копии и восстановление почтового ящика Zimbra CE с помощью экспорта TGZ.

Экспортируйте отдельный почтовый ящик Zimbra Community Edition, проверьте его резервную копию TGZ и восстановите отсутствующие элементы без перезаписи существующих писем.

Разрешите авторизованным пользователям создавать комнаты Jitsi с помощью входа через Keycloak.

Разрешите авторизованным пользователям создавать комнаты Jitsi с помощью входа через Keycloak.

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

Добавление шрифтов в ONLYOFFICE Document Server: Docker против Linux

Добавление шрифтов в ONLYOFFICE Document Server: Docker против Linux

Установите пользовательские шрифты в ONLYOFFICE Document Server, сравните постоянные Docker-контейнеры с прямыми копиями, перестройте список шрифтов и проверьте результат.

Синхронизация пользователей Active Directory с ONLYOFFICE DocSpace через LDAP

Синхронизация пользователей Active Directory с ONLYOFFICE DocSpace через LDAP

Подключите ONLYOFFICE DocSpace к Active Directory или OpenLDAP, безопасно импортируйте пользователей и группы, сопоставляйте поля учетных записей и планируйте надежную синхронизацию.

Разместите документы ONLYOFFICE за HAProxy, не нарушая режим редактирования.

Разместите документы ONLYOFFICE за HAProxy, не нарушая режим редактирования.

Настройте HTTPS-протокол HAProxy, заголовки переадресации, тайм-ауты WebSocket и проверки работоспособности для документов ONLYOFFICE, а затем проверьте редактирование и сохранение.

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

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

Загрузите пользовательский модуль ядра SLES 15, не отключая Secure Boot. Сопоставьте его с работающим ядром, подпишите файл .ko, зарегистрируйте ключ MOK и проверьте загрузку.

Загрузка Ubuntu Server в аварийный режим: пошаговое руководство по восстановлению.

Загрузка Ubuntu Server в аварийный режим: пошаговое руководство по восстановлению.

Безопасная диагностика аварийного режима Ubuntu Server. Чтение журналов загрузки, проверка монтирования корневого каталога и файла fstab, восстановление неисправного модуля, обработка ошибок файловой системы и проверка чистой перезагрузки.