> ## 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`) في كل Pod من Pods ‏Ayakaleaf Pro، انطلاقًا من ذاكرة تخزين مؤقت لموقع Wiki المحدد في `WIKI_URL`. يُشرح ما تفعله الوحدة وأنواع مواقع Wiki التي تعمل معها في [إضافة مساعدة LaTeX للمستخدمين](https://ayakaleaf-pro.mintlify.site/ar/on-premises/configuration/overleaf-toolkit/adding-latex-user-help.md).

| | |
| - | - |
| الخدمة | web (وحدة `learn`)، في كل Pod من Pods ‏Ayakaleaf Pro |
| Pod → الخارج | `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 بالكامل قبل أن تقبل الطلبات، وهو ما يستغرق عدة دقائق. ويظل الـ Pod غير جاهز حتى ذلك الحين، لذا خذ ذلك في الحسبان في `rollout status --timeout` وفي أي فحص بدء تشغيل (startup probe) أو فحص حيوية (liveness probe) تضيفه. تعيد مرات التشغيل اللاحقة استخدام ذاكرة التخزين المؤقت على وحدة تخزين البيانات.

عند التشغيل الأول، وقبل وجود ذاكرة تخزين مؤقت، يجب أن تتمكن الـ Pods من الوصول إلى `WIKI_URL`: فبدون ذلك تفشل خدمة web أثناء بدء التشغيل وتُعاد تشغيلها داخل الـ Pod مرارًا وتكرارًا، فلا يصبح الـ Pod جاهزًا أبدًا. عطّل الوحدة، أو اسمح للـ Pods بالخروج إلى موقع Wiki. بمجرد وجود ذاكرة التخزين المؤقت، تبدأ الـ Pods وتقدّم الصفحات المخزنة مؤقتًا حتى عندما يتعذّر الوصول إلى موقع Wiki.

### عدة نسخ متماثلة

تحتفظ كل نسخة متماثلة (replica) بذاكرة التخزين المؤقت الخاصة بها على قرص العقدة (node) التي تعمل عليها، لذا تنزّل كل واحدة منها موقع Wiki عند تشغيلها الأول؛ ومع `podManagementPolicy: OrderedReady` تفعل ذلك واحدة تلو الأخرى. قد يرى المستخدم صفحة بنسخة مختلفة قليلًا على نسخة متماثلة أخرى إلى أن تُحدَّث هناك.

### الاختبار على Kubernetes

على Kubernetes 1.37 مع ثلاث نسخ متماثلة خلف HAProxy، تنزّل كل منها `https://learnwiki.overleaf.com` إلى ذاكرة التخزين المؤقت لعقدتها عند تشغيلها الأول، نجحت اختباراتنا الشاملة (end-to-end) لـ `/learn` ‏(12 حالة): رابط Documentation في الترويسة، ورسالة الترحيب وقائمة Help في المحرر، والشريط الجانبي للمحتويات، والصفحات والروابط وعمليات إعادة التوجيه داخل موقع Wiki، والصور المحمّلة من موقع Wiki، والخطأ 404 للصفحات غير المعروفة، وطلب تسجيل الدخول عند عدم تفعيل الوصول العام، وتقديم صفحة قديمة من ذاكرة التخزين المؤقت بعد تغيير `WIKI_URL` إلى عنوان لا يمكن الوصول إليه. وعند البدء بذاكرة تخزين مؤقت فارغة مع توجيه `WIKI_URL` إلى عنوان يرفض الاتصالات، ظل الـ Pod غير جاهز دون إعادة تشغيل، بينما بدأت خدمة web داخله وفشلت 77 مرة خلال ثلاث دقائق.


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