> ## 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 사용자 도움말 추가

> Kubernetes 배포에서 MediaWiki 사이트의 LaTeX 도움말 페이지를 /learn 경로로 제공합니다.

`/learn` 페이지는 모든 Ayakaleaf Pro 파드의 **web** 서비스(`learn` 모듈)가 `WIKI_URL`에 설정된 위키의 캐시에서 제공합니다. 이 모듈의 동작과 사용할 수 있는 위키에 대해서는 [LaTeX 사용자 도움말 추가](https://ayakaleaf-pro.mintlify.site/ko/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 서비스는 요청을 받기 전에 위키 전체를 다운로드하며, 이 작업은 몇 분이 걸립니다. 그때까지 파드는 준비되지 않은(not ready) 상태로 남으므로, `rollout status --timeout`과 추가하는 startup 또는 liveness 프로브에 이 시간을 고려하세요. 이후 시작 시에는 데이터 볼륨의 캐시를 재사용합니다.

최초 시작 시 캐시가 아직 없을 때는 파드가 `WIKI_URL`에 접근할 수 있어야 합니다. 접근할 수 없으면 web 서비스가 시작 중에 실패하고 파드 내부에서 계속 재시작되어 파드가 준비 상태가 되지 않습니다. 모듈을 끄거나 파드가 위키로 나갈 수 있도록 허용하세요. 캐시가 생성된 후에는 위키에 접근할 수 없는 동안에도 파드가 시작되고 캐시된 페이지를 제공합니다.

### 여러 레플리카

각 레플리카는 자신이 실행되는 노드의 디스크에 자체 캐시를 유지하므로, 각 레플리카가 최초 시작 시 위키를 다운로드합니다. `podManagementPolicy: OrderedReady`를 사용하면 하나씩 차례로 다운로드합니다. 다른 레플리카에서 페이지가 갱신되기 전까지는 사용자가 약간 다른 버전의 페이지를 볼 수 있습니다.

### Kubernetes에서의 테스트

HAProxy 뒤에 세 개의 레플리카를 두고 각 레플리카가 최초 시작 시 `https://learnwiki.overleaf.com`을 자신의 노드 캐시로 다운로드하도록 한 Kubernetes 1.37 환경에서, `/learn`에 대한 엔드투엔드 테스트(12개 케이스)가 통과했습니다. 테스트 항목은 헤더의 Documentation 링크, 환영 메시지와 에디터의 Help 메뉴, 목차 사이드바, 위키 내부의 페이지·링크·리디렉션, 위키에서 불러온 이미지, 알 수 없는 페이지에 대한 404, 공개 접근이 없을 때의 로그인 요구, 그리고 `WIKI_URL`을 접근할 수 없는 주소로 변경한 후 캐시에서 제공되는 오래된 페이지입니다. 빈 캐시 상태에서 `WIKI_URL`이 연결을 거부하는 주소를 가리키도록 하고 시작했을 때, 파드는 재시작 없이 준비되지 않은 상태로 남았고, 그 안의 web 서비스는 3분 동안 77번 시작했다가 실패했습니다.


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