# Развёртывание 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/`.
