# Сервер A4 в сети организации — редакторы A4, F1 и P2

Комплект 2026-10-17 от 17.10.2026: A4 2026.4.0.38487392181, F1 2026.4.0.20261017, P2 2026.4.0.29.

Что изменилось с комплекта 2026-10-14:
- **обновлён F1 (было 2026.4.0.38487395824) — исправление безопасности, обновиться всем.** В веб-режиме
  страница редактора могла попросить сервер прочитать любой файл на его диске (например, `/etc/passwd`)
  и рабочие копии соседних кабинок — через пункты «Получить данные» (текст/CSV, книга Excel, HTML),
  Power Query (`File.Contents`, `Folder.Files`) и подключения к базам данных. Теперь странице доступны
  только каналы из белого списка, пути файлов из запроса страницы не принимаются, а пути сервера
  вычищаются из ответов. Файлы редактор по-прежнему получает только от вашей системы (WOPI или «файл по номеру»);
- A4 и P2 — те же, что в 2026-10-14; `docker-compose.yml` и `docker-compose-wopi.yml` отличаются только меткой образа F1.

Три редактора, которые работают внутри вашей сети: **F1** — таблицы (`.xlsx`,
`.xlsm`, `.xlsb`), **A4** — документы (`.docx`), **P2** — презентации (`.pptx`). Файлы и учётные записи остаются
у вас: сервер спрашивает их у вашей системы и ничего не хранит.

Интернет при установке не нужен — образы лежат архивами рядом с этим файлом.

## Что в комплекте

| файл | что это |
|---|---|
| `F1-2026.4.0.20261017-webhost-docker.tar.gz` | образ F1 (таблицы) |
| `A4-2026.4.0.38487392181-webhost-docker.tar.gz` | образ A4 (документы) |
| `P2-2026.4.0.29-server-docker.tar.gz` | образ P2 (презентации) |
| `SHA256SUMS` | контрольные суммы всех файлов комплекта |
| `docker-compose.yml` | запуск трёх редакторов сразу (адреса «кто это» и «файл по номеру» вашей системы) |
| `docker-compose-wopi.yml` | запуск трёх редакторов в режиме WOPI (Битрикс24, Nextcloud) |
| `discovery-merge.mjs` | общий адрес discovery таблиц и документов для режима WOPI |
| `nginx-wopi.conf` | обратный прокси для режима WOPI |
| `BITRIX24.md` | пошаговая установка для коробочного Битрикс24 |
| `nginx-primer.conf` | обратный прокси на оба редактора за одним именем |
| `OTKAT.md` | откат на прежнюю версию и что делать с рабочими копиями |
| `F1-2026.4.0.20261017-webhost-INSTALL.md` | подробная установка и настройка F1 |
| `A4-2026.4.0.38487392181-webhost-INSTALL.md` | то же для A4 |
| `P2-2026.4.0.29-server-INSTALL.md` | то же для P2 |

## Что нужно

- Linux **x86-64** и Docker (проверено на 28.x).
- 2 ГБ памяти на сервер плюс примерно 250 МБ на каждую открытую книгу или документ.
- Обратный прокси с поддержкой WebSocket, если сервер смотрит в интернет.

Образы собраны **одиночной сборкой под `linux/amd64`**, это не мультиарх. На
хосте arm64 они не пойдут, и в `docker-compose.yml` поэтому стоит строка
`platform: linux/amd64` — чтобы Docker отказал понятно, а не взял молча не то.

## Установка

```sh
# 1. сверить, что архивы скачались целиком
sha256sum -c SHA256SUMS            # на маке: shasum -a 256 -c SHA256SUMS

# 2. загрузить образы (интернет не нужен)
docker load -i F1-2026.4.0.20261017-webhost-docker.tar.gz
docker load -i A4-2026.4.0.38487392181-webhost-docker.tar.gz
docker load -i P2-2026.4.0.29-server-docker.tar.gz

# 3. поправить в docker-compose.yml адреса вашей системы (у каждого редактора) и поднять
docker compose up -d
```

### Форма флагов: значение через ПРОБЕЛ

Это главная ловушка при настройке, поэтому вынесено наверх. Значение флага
отделяется **пробелом**:

```yaml
command:
  - --auth-url
  - https://ваша-система/v1/me
```

Форма `--auth-url=https://…` одной строкой **не работает и молчит**: сервер
поднимется и ответит «status: ok», но ваши адреса будут отброшены, подпуть не
применится, а пределы останутся стандартными. Замер 01.10 на этом образе: с `=`
предел кабинок остался 12 вместо заданных 4, а `/f1/health` отвечал 403 вместо
200. Та же форма — в `docker run`: `--base-path /f1`, а не `--base-path=/f1`.

## Проверка после запуска

```sh
curl http://127.0.0.1:8092/f1/health     # таблицы
curl http://127.0.0.1:8090/a4/health     # документы
curl http://127.0.0.1:8093/p2/health     # презентации
```

В ответе должно быть:

- `"status": "ok"`;
- верное `"product"` — `f1` или `a4`;
- пустой список `"warnings"` и `"behind": null` внутри `"version"` — редактор и
  вычислительное ядро из одного выпуска. Если `behind` называет половину
  (`"ядро"` или `"оболочка"`), они разошлись больше чем на 6 часов, и такой образ
  ставить не нужно. Соседнее поле `"skewMin"` — справка: на сколько минут
  расходится время сборки половин; у годного образа это минуты, ровно ноль там
  ждать не нужно (образы этого комплекта проверены подъёмом перед выдачей).

Если `/f1/health` отвечает **403**, а `/health` в корне — 200, значит подпуть не
применился: смотрите форму флагов выше.

## Что нужно от вашей системы

Сервер не хранит ни пользователей, ни файлы. Ему нужны два адреса:

- **кто это** — `--auth-url`, по нему сервер узнаёт пользователя;
- **файл по номеру** — `--attach-url`, по нему забирает и отдаёт содержимое.

Третий адрес нужен, только если разрешаете сохранять. Подробности, включая
работу за обратным прокси и совместную правку, — в файлах `*-INSTALL.md`.

Сторонним системам, которые открывают файлы по WOPI, нужен адрес discovery; он
складывается из подпути редактора:

```
https://ваш-сервер/f1/hosting/discovery    — таблицы
https://ваш-сервер/a4/hosting/discovery    — документы
```

## Если у вас 1С или Битрикс24 — возможно, нужен другой комплект

- **«A4 для 1С»** (версия 0.5.0 от 01.10.2026) — отдельный комплект со своим
  сервером: образ `a4-server`, собранный поверх образа F1, плюс расширение
  `A4-1C-0.5.0.1.cfe` для самой 1С. Версии двух комплектов идут независимо, и
  образ F1 внутри него — не обязательно тот, что лежит здесь; какой именно,
  сказано в паспорте того выпуска. Если задача — открывать файлы из 1С, берите
  тот комплект: сервер в нём уже есть, и ставить этот не нужно.

- **«A4 для Битрикс24»** — решение «A4: документы, таблицы и презентации в Диске»
  (модуль `a4office.wopi`) ставится в коробочный Битрикс24 из Маркетплейса 1С-Битрикс. Сервера
  в нём нет — ему нужен этот комплект в режиме WOPI: запуск `docker-compose-wopi.yml`, адреса для
  настроек модуля — `https://ваш-сервер/hosting/discovery` (таблицы и документы) и
  `https://ваш-сервер/p2/hosting/discovery` (презентации). Пошагово — в `BITRIX24.md`.

## Поддержка и обновления

Свежие сборки и документация: **https://tech.plantype.ru/**
