F7_Office/f7cloud-office/browser/DEPLOY.md

12 KiB
Raw Blame History

Развёртывание 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 (пример)

Скрипт должен:

  1. Копировать usr/share/coolwsd/browser/dist/* в /usr/share/coolwsd/browser/dist/
  2. Копировать etc/coolwsd/coolwsd.xml в /etc/coolwsd/ (если нужна ваша конфигурация)
  3. Копировать конфиг Apache в /etc/apache2/sites-available/ и включить сайт
  4. Выставить владельца/права при необходимости (coolwsd обычно от пользователя cool)
  5. Перезапустить: 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/).

На новом сервере:

  1. Один раз добавить репозиторий Collabora (CODE-ubuntu2204).
  2. Выполнить: 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

На новом сервере:

  1. Установить только coolwsd (без code-brand): репозиторий Collabora, затем apt-get install -y coolwsd.
  2. Распаковать архив поверх установленного:
    tar -C /usr/share -xzvf coolwsd-browser-full.tar.gz
  3. При необходимости разложить конфиги из репозитория (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).