# Сервер A4 в сети организации: два редактора за одним обратным прокси.
#
# F1 — таблицы (.xlsx, .xlsm, .xlsb), A4 — документы (.docx). Каждый сам по себе:
# падение одного не мешает другому. Образы ставятся из архивов рядом с этим
# файлом (`docker load -i …`), интернет при установке не нужен.
#
# ВАЖНО ПРО ФОРМУ ФЛАГОВ. Значение отделяется ПРОБЕЛОМ — то есть две строки
# списка: `- --auth-url` и отдельной строкой сам адрес. Форма `--auth-url=…`
# одной строкой НЕ РАБОТАЕТ и, что хуже, молчит: сервер поднимется, отдаст
# «status: ok», но ваши адреса будут отброшены, подпуть не применится (ответ
# 403 на /f1/), а пределы останутся стандартными. Замер 01.10: с `=` предел
# кабинок остался 12 вместо заданных 4, а /f1/health отвечал 403.
#
# ВАЖНО ПРО platform: образы собраны ОДИНОЧНОЙ сборкой под linux/amd64, а не
# мультиархом. Строка `platform` ниже обязательна: без неё Docker на хосте arm64
# либо откажет, либо молча возьмёт не то. Пусть лучше откажет понятно.
name: a4-server

services:
  f1:
    image: f1-webhost:2026.3.0-gaa7d3405
    platform: linux/amd64
    restart: unless-stopped
    ports: ["127.0.0.1:8092:8092"]
    volumes: ["f1-cabins:/data/cabins"]
    command:
      - --base-path
      - /f1
      - --max-cabins
      - "12"
      - --idle-min
      - "20"
      # Адреса ВАШЕЙ системы: «кто это» и «файл по номеру».
      - --auth-url
      - https://ваша-система/v1/me
      - --attach-url
      - https://ваша-система/v1/attachments/{id}/content

  a4:
    image: a4-webhost:0310-dde282c51
    platform: linux/amd64
    restart: unless-stopped
    ports: ["127.0.0.1:8090:8090"]
    volumes: ["a4-cabins:/data/cabins"]
    command:
      - --base-path
      - /a4
      - --max-cabins
      - "12"
      - --idle-min
      - "20"
      - --auth-url
      - https://ваша-система/v1/me
      - --attach-url
      - https://ваша-система/v1/attachments/{id}/content

volumes:
  f1-cabins:
  a4-cabins:

# Проверка после запуска — на самой машине:
#
#   curl http://127.0.0.1:8092/f1/health
#   curl http://127.0.0.1:8090/a4/health
#
# В ответе должно быть "status": "ok", верное "product" (f1 или a4), пустой
# список "warnings" и "behind": null внутри "version" — последнее значит, что
# редактор и вычислительное ядро из одного выпуска (бедой расхождение считается
# от 6 часов; "skewMin" в минутах — справка). Если подпуть не применился, /f1/health
# ответит 403, а здоровье будет доступно в корне (/health) — это и есть признак
# флага, записанного через «=».
