12 KiB
Развёртывание F7 Office (на базе Collabora Online / coolwsd)
Инструкция для переноса на Git и установки на новую машину через git clone.
1. Пути к файлам (из службы coolwsd и конфигов)
Служба coolwsd
- Конфиг:
/etc/coolwsd/coolwsd.xml - SSL (не класть в Git):
/etc/coolwsd/cert.pem,key.pem,ca-chain.cert.pem - Доп. конфиг:
/etc/coolwsd/coolkitconfig.xcu - Корень файлов (из coolwsd.xml):
file_server_root_path=browser/../→ каталог сbrowser=/usr/share/coolwsd - Клиент (статика):
/usr/share/coolwsd/browser/— отдаётся по URL/browser/
Apache (reverse proxy)
- VHost (SSL):
/etc/apache2/sites-available/collabora-le-ssl.conf - Общий фрагмент:
/etc/apache2/conf-available/coolwsd.conf - Nginx (если используется):
/etc/nginx/snippets/coolwsd.conf
APT (репозиторий Collabora)
- Файл репозитория:
/etc/apt/sources.list.d/— файл сcollaboraonline.com/CODE-ubuntu2204 - Хук после установки:
/etc/apt/apt.conf.d/25coolwsd
Изменённые файлы F7 Office (брендинг, текст, ссылки)
| Путь на сервере | Описание |
|---|---|
/usr/share/coolwsd/browser/dist/f7cloud/branding.js |
F7 Office, URL f7cloud.com |
/usr/share/coolwsd/browser/dist/f7cloud/branding.css |
FORBION, стили |
/usr/share/coolwsd/browser/dist/f7cloud/branding-desktop.css |
FORBION |
/usr/share/coolwsd/browser/dist/f7cloud/branding-mobile.css |
FORBION |
/usr/share/coolwsd/browser/dist/f7cloud/branding-tablet.css |
FORBION |
/usr/share/coolwsd/browser/dist/f7cloud/loading-preview.html |
Страница просмотра экрана загрузки |
/usr/share/coolwsd/browser/dist/branding.js |
FORBION, без ссылки col.la |
/usr/share/coolwsd/browser/dist/branding.css |
FORBION |
/usr/share/coolwsd/browser/dist/branding-mobile.css |
FORBION |
/usr/share/coolwsd/browser/dist/branding-tablet.css |
FORBION |
/usr/share/coolwsd/browser/dist/cool.html |
F7 Office в «О программе» |
/usr/share/coolwsd/browser/dist/welcome/welcome.html |
F7 Office, без ссылок Collabora |
/usr/share/coolwsd/browser/dist/wasm.html |
title F7 Office |
/usr/share/coolwsd/browser/dist/src/layer/tile/CanvasTileUtils.js |
FORBION |
/usr/share/coolwsd/browser/dist/src/layer/tile/TileWorker.js |
FORBION |
/etc/apache2/sites-available/collabora-le-ssl.conf |
Alias на dist/f7cloud |
/etc/coolwsd/coolwsd.xml |
WOPI host, SSL, общие настройки |
2. Структура репозитория для Git
Рекомендуемая структура в репозитории (чтобы после git clone можно было всё расставить скриптом):
f7office-deploy/
├── README.md
├── DEPLOY.md # эта инструкция
├── install.sh # копирование файлов на целевую машину
├── etc/
│ ├── coolwsd/
│ │ └── coolwsd.xml
│ └── apache2/
│ └── sites-available/
│ └── collabora-le-ssl.conf
└── usr/share/coolwsd/browser/dist/
├── branding.js
├── branding.css
├── branding-mobile.css
├── branding-tablet.css
├── cool.html
├── wasm.html
├── welcome/
│ └── welcome.html
├── src/layer/tile/
│ ├── CanvasTileUtils.js
│ └── TileWorker.js
└── f7cloud/
├── branding.js
├── branding.css
├── branding-desktop.css
├── branding-mobile.css
├── branding-tablet.css
└── loading-preview.html
В Git класть только эти изменённые файлы (и при необходимости f7cloud/images/ если меняли картинки). Остальное (bundle.js, l10n, admin и т.д.) ставится пакетами coolwsd и code-brand.
3. Установка на новую машину (после git clone)
3.1. Установка пакетов
# Репозиторий Collabora CODE (Ubuntu 22.04)
sudo apt-get install -y apt-transport-https ca-certificates
# Добавить репозиторий из https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu2204
sudo apt-get update
sudo apt-get install -y coolwsd code-brand
3.2. Клонирование и установка кастомизации F7 Office
git clone https://git.f7cloud.ru/.../f7office-deploy.git
cd f7office-deploy
sudo ./install.sh
3.3. Скрипт install.sh (пример)
Скрипт должен:
- Копировать
usr/share/coolwsd/browser/dist/*в/usr/share/coolwsd/browser/dist/ - Копировать
etc/coolwsd/coolwsd.xmlв/etc/coolwsd/(если нужна ваша конфигурация) - Копировать конфиг Apache в
/etc/apache2/sites-available/и включить сайт - Выставить владельца/права при необходимости (coolwsd обычно от пользователя
cool) - Перезапустить:
systemctl restart coolwsd,systemctl reload apache2
3.4. Тема брендинга: f7cloud
Используется только каталог f7cloud (dist/f7cloud/). WOPI-хост (F7 cloud и т.п.) должен передавать в запросе к coolwsd тему f7cloud, тогда coolwsd будет отдавать файлы из dist/f7cloud/.
Если какой-то хост по старинке запрашивает тему nextcloud, на сервере можно создать симлинк для совместимости:
ln -sf /usr/share/coolwsd/browser/dist/f7cloud /usr/share/coolwsd/browser/dist/nextcloud
4. После apt upgrade
Пакеты coolwsd и code-brand могут перезаписать файлы в /usr/share/coolwsd/browser/dist/. После apt upgrade при необходимости снова выполнить:
cd /path/to/f7office-deploy
sudo ./install.sh
Либо настроить dpkg-divert на нужные файлы, чтобы пакеты их не перезаписывали.
5. Итоговые пути для копирования в репозиторий
Все перечисленные в таблице выше файлы должны лежать в репозитории в структуре usr/share/... и etc/... как в разделе 2, чтобы install.sh мог разложить их в /usr/share/coolwsd/ и /etc/.
6. Установка кастомизированного офиса без оригинальной двухшаговой установки
Чтобы на новом сервере ставить уже кастомизированный офис одной операцией (без ручного «сначала пакеты — потом git clone и install.sh»), возможны такие варианты.
6.1. Один пакет f7office (.deb)
Собрать пакет f7office, который:
- в Depends указывает
coolwsdиcode-brand; - в состав пакета входят только файлы кастомизации (содержимое
usr/share/coolwsd/browser/dist/из репозитория и при необходимостиetc/).
На новом сервере:
- Один раз добавить репозиторий Collabora (CODE-ubuntu2204).
- Выполнить:
apt-get update && apt-get install -y f7office.
В результате одной командой установятся coolwsd, code-brand и поверх них — ваша кастомизация. Оригинальную двухшаговую установку делать не нужно.
6.2. Полный архив (tarball) вместо пакетов dist
На эталонном сервере, где уже установлены coolwsd, code-brand и разложена кастомизация F7 Office:
tar -C /usr/share -czvf coolwsd-browser-full.tar.gz coolwsd
На новом сервере:
- Установить только coolwsd (без code-brand): репозиторий Collabora, затем
apt-get install -y coolwsd. - Распаковать архив поверх установленного:
tar -C /usr/share -xzvf coolwsd-browser-full.tar.gz - При необходимости разложить конфиги из репозитория (
etc/coolwsd/, Apache), перезапустить coolwsd и веб-сервер.
Так вы не используете установку code-brand на целевом сервере — весь каталог browser/ (включая то, что обычно поставляет code-brand) уже в архиве.
6.3. Свой APT-репозиторий
Разместить у себя (внутренний репозиторий):
- пакеты coolwsd и code-brand (скачанные с Collabora или пересобранные, с учётом лицензий);
- пакет f7office (кастомизация), зависящий от coolwsd и code-brand.
На новом сервере не подключают репозиторий Collabora — только ваш. Установка:
apt-get update && apt-get install -y f7office
Оригинальная установка с сайта Collabora на целевом сервере не используется.
6.4. Docker-образ
Собрать образ, в котором уже установлены coolwsd и полное дерево browser/ с кастомизацией (например, на базе образа Collabora CODE или своего Dockerfile). На новом сервере развёртывание — только запуск контейнера, без установки пакетов на хост.
6.5. Установка с Git
Кастомизацию можно ставить прямо с репозитория — так проще обновлять и откатывать без пакетов и архивов.
Вариант A (как в разделе 3): на новом сервере сначала пакеты, потом клон и скрипт:
# Один раз: репозиторий Collabora, затем
sudo apt-get update && sudo apt-get install -y coolwsd code-brand
git clone https://git.f7cloud.ru/.../f7office-deploy.git
cd f7office-deploy
sudo ./install.sh
Вариант B (одна точка входа): при желании можно добавить в репозиторий скрипт, который на целевом сервере проверяет наличие coolwsd/code-brand, при необходимости ставит их и запускает install.sh. Тогда на новом сервере достаточно клонировать репозиторий и запустить этот скрипт (репозиторий Collabora должен быть уже добавлен).
Плюсы установки с Git: одна команда обновления (git pull && sudo ./install.sh), история изменений, откат через git checkout, не нужны .deb и свой репозиторий. Минусы: на сервере нужны git и доступ к вашему Git-серверу; пакеты coolwsd/code-brand по-прежнему ставятся из apt (если не используете tarball/Docker).