> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Добавление справки по LaTeX для пользователей

> Отдача страниц справки по LaTeX с сайта MediaWiki по пути /learn в развёртывании на Kubernetes.

Страницы `/learn` отдаёт сервис **web** (модуль `learn`) в каждом поде Ayakaleaf Pro из кэша wiki, заданной в `WIKI_URL`. Что делает модуль и какие wiki с ним работают, описано в разделе [Добавление справки по LaTeX для пользователей](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/overleaf-toolkit/adding-latex-user-help.md).

| | |
| - | - |
| Сервис | web (модуль `learn`) в каждом поде Ayakaleaf Pro |
| Под → внешняя сеть | `WIKI_URL` (по умолчанию `https://learnwiki.overleaf.com`): все страницы при первом запуске, затем отдельная страница повторно, когда пользователь открывает её по истечении `WIKI_MAX_CACHE_AGE` |
| Браузер → внешняя сеть | изображения на страницах, напрямую с `WIKI_URL` |
| Хранимые данные | кэш страниц в `/var/lib/overleaf/data/learnPages` на томе данных |
| Периодические задания | нет: страницы обновляются, когда пользователи их открывают |

### Настройка

```yaml title="30-config.yaml (additions)" theme={null}
  OVERLEAF_PROXY_LEARN: "true"
  # optional: your own MediaWiki
  # WIKI_URL: https://wiki.example.com
```

```bash theme={null}
kubectl apply -f 30-config.yaml
kubectl -n overleaf rollout restart deployment/overleaf     # or statefulset/overleaf
kubectl -n overleaf rollout status deployment/overleaf --timeout=30m
```

> [!WARNING]
>
> При первом запуске с включённым модулем сервис web загружает всю wiki, прежде чем начать принимать запросы, а это занимает несколько минут. До этого момента под остаётся неготовым, поэтому учтите это в `rollout status --timeout` и в любых добавляемых вами startup- или liveness-пробах. При последующих запусках используется кэш на томе данных.

При первом запуске, пока кэша ещё нет, поды должны иметь доступ к `WIKI_URL`: без него сервис web завершается с ошибкой при запуске и снова и снова перезапускается внутри пода, так что под никогда не становится готовым. Отключите модуль или разрешите подам выход к wiki. Когда кэш уже создан, поды запускаются и отдают страницы из кэша, даже если wiki недоступна.

### Несколько реплик

Каждая реплика хранит собственный кэш на диске своего узла, поэтому каждая загружает wiki при первом запуске; при `podManagementPolicy: OrderedReady` они делают это по очереди. Пользователь может увидеть страницу в немного другой версии на другой реплике, пока она не обновится там.

### Проверено на Kubernetes

На Kubernetes 1.37 с тремя репликами за HAProxy, каждая из которых при первом запуске загружала `https://learnwiki.overleaf.com` в кэш своего узла, наши сквозные тесты для `/learn` проходят (12 сценариев): ссылка Documentation в шапке, приветственное сообщение и меню Help в редакторе, боковая панель содержания, страницы, ссылки и перенаправления внутри wiki, изображения, загружаемые из wiki, ответ 404 для неизвестных страниц, обязательный вход без публичного доступа, а также устаревшая страница, отдаваемая из кэша после того, как `WIKI_URL` был изменён на недоступный адрес. При запуске с пустым кэшем и `WIKI_URL`, указывающим на адрес, отклоняющий соединения, под оставался неготовым без перезапусков, тогда как сервис web внутри него запускался и завершался с ошибкой 77 раз за три минуты.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.