210 lines
12 KiB
Markdown
210 lines
12 KiB
Markdown
# Развёртывание 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).
|