F7_Office/browser/DEPLOY.md

210 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Развёртывание 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. Установка пакетов
```bash
# Репозиторий 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
```bash
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` при необходимости снова выполнить:
```bash
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:
```bash
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):** на новом сервере сначала пакеты, потом клон и скрипт:
```bash
# Один раз: репозиторий 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).