> ## 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.

# Aggiungere la guida LaTeX per gli utenti

> Servire le pagine di guida LaTeX da un sito MediaWiki sotto /learn in un deployment Kubernetes.

Le pagine `/learn` sono servite dal servizio **web** (il modulo `learn`) di ogni pod di Ayakaleaf Pro, a partire da una cache della wiki impostata in `WIKI_URL`. Cosa fa il modulo e quali wiki funzionano è descritto in [Aggiungere la guida LaTeX per gli utenti](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/overleaf-toolkit/adding-latex-user-help.md).

| | |
| - | - |
| Servizio | web (modulo `learn`), in ogni pod di Ayakaleaf Pro |
| Pod → esterno | `WIKI_URL` (predefinito `https://learnwiki.overleaf.com`): tutte le pagine al primo avvio, poi di nuovo una pagina quando un utente la apre dopo `WIKI_MAX_CACHE_AGE` |
| Browser → esterno | le immagini delle pagine, direttamente da `WIKI_URL` |
| Dati memorizzati | la cache delle pagine in `/var/lib/overleaf/data/learnPages` sul volume dei dati |
| Job periodici | nessuno: le pagine vengono aggiornate quando gli utenti le aprono |

### Configurazione

```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]
>
> Al primo avvio con il modulo attivo, il servizio web scarica l'intera wiki prima di accettare richieste, operazione che richiede diversi minuti. Fino ad allora il pod resta non pronto, quindi tienine conto in `rollout status --timeout` e in qualsiasi probe di startup o di liveness che aggiungi. Gli avvii successivi riutilizzano la cache sul volume dei dati.

Al primo avvio, prima che esista una cache, i pod devono raggiungere `WIKI_URL`: in caso contrario il servizio web fallisce durante l'avvio e viene riavviato all'interno del pod più e più volte, quindi il pod non diventa mai pronto. Disattiva il modulo oppure consenti ai pod di uscire verso la wiki. Una volta che la cache esiste, i pod si avviano e servono le pagine in cache anche quando la wiki non è raggiungibile.

### Più repliche

Ogni replica mantiene la propria cache sul disco del proprio nodo, quindi ciascuna scarica la wiki al primo avvio; con `podManagementPolicy: OrderedReady` lo fanno una dopo l'altra. Un utente può vedere una pagina in una versione leggermente diversa su un'altra replica finché non viene aggiornata anche lì.

### Testato su Kubernetes

Su Kubernetes 1.37 con tre repliche dietro HAProxy, ciascuna delle quali scarica `https://learnwiki.overleaf.com` nella cache del proprio nodo al primo avvio, i nostri test end-to-end per `/learn` vengono superati (12 casi): il link Documentation nell'intestazione, il messaggio di benvenuto e il menu Help dell'editor, la barra laterale dei contenuti, pagine, link e reindirizzamenti all'interno della wiki, immagini caricate dalla wiki, 404 per le pagine sconosciute, l'accesso richiesto senza accesso pubblico e una pagina non aggiornata servita dalla cache dopo che `WIKI_URL` è stato cambiato in un indirizzo non raggiungibile. Partendo da una cache vuota e con `WIKI_URL` che puntava a un indirizzo che rifiuta le connessioni, il pod è rimasto non pronto senza riavviarsi, mentre il servizio web al suo interno si è avviato ed è fallito 77 volte in tre minuti.


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