И так продолжим боль Docker, предыдущая статья тут
Все вроде круто, работает, открывает файлы для редактирования, обозначу какие у меня настройки:
Версия Nextcloud Hub 9 (30.0.4)
Collabora Online - Collabora Online Development Edition 24.04.13.1
Для чего стоит галка? А все просто, если ее не ставить - то будет не понятный "Новый документ.odt" и "Новая таблица.ods" - кому понятно, а понимают те кто работал на freeOS системах libra, only и т.д. а привыкшим за столько лет сотрудникам работать в MS Office приятны глазу и не вызывают негативного удивления "Новый документ.docx" и "Новая таблица.xlsx" - да и включили.
Далее добавил шрифты, так как меня попросили и их не хватало для работы с тем же *.docx - Microsoft документом из word...
Ну окей добавил, но почему-то не оборажаются в документе или вообще документ пустой...
Пример к сожалению сейчас не могу показать, ибо люди работают с документами, но поверьте мы разворачивали как из предыдущей статьи и я проводил эксперимерт для этого в код я добавил шрифты которые нужны от MS Office для теста установил их на сам сервер Ubuntu 24:
Для этого выполним sudo apt-get install ttf-mscorefonts-installer -y потом выдаст соглашение, соглашаемся, установились. Ага, Круто будет достаточно добавить в мой файл Docker пару строк:
volumes:
- /usr/share/fonts/truetype/:/usr/share/fonts/truetype/
Что это означает, что мы монтируем все шрифты из Ubuntu в наш Docker! Вот тут и начинается что все файлы где есть известные шрифты кроме тех что поддерживает Linux исчезли....
Такой вариант не подходит, долгими путями, вычислениями, было понятно одно, шрифты добавляются но Collabora их не воспринимает, хотя в списке они отображаются.
Что делать? Так работать не возможно!
А есть решение, долгими изучениями мануалов, поискаму на забугорских сайтах, нет информации, есть способы просброса костылем, но это не решение, а если будет дизайнерский шрифт, который мне нужно поместить в Nextcloud - это ж будет целая проблема, нужно решение где мы добавляем в Nextcloud любой шрифт, а Collabora это принимает и работает.
Святой BSD нужно затестить а что если и тут я приведу конфиг полностью, из моей другой статьи и его будет несколько раз:
version: '3.3'
services:
collabora:
image: collabora/code
container_name: collabora
ports:
- 9980:9980
environment:
- aliasgroup1=https://cloud.example.com:443
- username= admin
- password= passadmin
- extra_params=--o:ssl.enable=true
volumes:
- /etc/letsencrypt/live/collabora.example.com/fullchain.pem:/etc/loolwsd/ca-chain.cert.pem
- /etc/letsencrypt/live/collabora.example.com/privkey.pem:/etc/loolwsd/key.pem
- /etc/letsencrypt/live/collabora.example.com/fullchain.pem:/etc/loolwsd/cert.pem
- /usr/share/fonts/truetype/:/usr/share/fonts/truetype/ - так не работает
cap_add:
- MKNOD
tty: true
restart: always
Так почему не работает - я так и не выяснил пока, но проведу лабораторку, по логике должно работать.
А сейчас так попробуем, где я натыкался мне же нужно что бы он с удаленного сервака просто принимал эти шрифты... Пробуем.
version: '3.3'
services:
collabora:
image: collabora/code
container_name: collabora
ports:
- 9980:9980
environment:
- aliasgroup1=https://cloud.example.com:443
- username= admin
- password= passadmin
- extra_params=--o:ssl.enable=true --o:remote_font_config.url=https://cloud.zion-rus.ru/apps/richdocuments/settings/fonts.json - работает
volumes:
- /etc/letsencrypt/live/collabora.example.com/fullchain.pem:/etc/loolwsd/ca-chain.cert.pem
- /etc/letsencrypt/live/collabora.example.com/privkey.pem:/etc/loolwsd/key.pem
- /etc/letsencrypt/live/collabora.example.com/fullchain.pem:/etc/loolwsd/cert.pem
cap_add:
- MKNOD
tty: true
restart: always
Откуда это? --o:remote_font_config.url=https://cloud.zion-rus.ru/apps/richdocuments/settings/fonts.json
Да все просто оказалось, многие знают и помнят про это:
Make sure to set this URL: https://cloud.example.com/apps/richdocuments/settings/fonts.json in the coolwsd.xml file of your Collabora Online server to ensure the added fonts get loaded automatically. Please note that http:// will only work for debug builds of Collabora Online. In production you must use https:// for remote font config.
<remote_font_config>
<url>https://cloud.example.com/apps/richdocuments/settings/fonts.json</url>
</remote_font_config>
For ideal document compatibility we recommend you to install commonly used fonts. If your users are working with Microsoft Office, installing their proprietary fonts can be done following the documentation. Custom fonts documentation
Нужно только правильно было подцепить в моем контейнере и все заработало как часы, а вот подцепить как это нужно было понять, ведь описания нет, от слова совсем!
Путем нативного тыкания, как я это называю, я пришел к тому, что добавив: --o:remote_font_config.url=https://cloud.zion-rus.ru/apps/richdocuments/settings/fonts.json, работает, а что это дает:
Когда мы добавляем параметр --o:remote_font_config.url=https://cloud.zion-rus.ru/apps/richdocuments/settings/fonts.json
"--o:"- префикс, который указывает, что за ним следует параметр конфигурации, относящийся к настройкам сервера в конфигурацию Collabora Online.
Так мы указываем серверу Collabora, где искать конфигурацию шрифтов. Этот параметр позволяет Collabora загружать информацию о шрифтах из указанного URL, то есть через этот jons, он обрабатывает дополнительно шрифты, которые есть в Nextcloud, помимо своих встроенных это полезно для динамического управления шрифтами, которые используются в документах - проблема решена.