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

# Şablonlar

> Kubernetes dağıtımında şablon galerisini çalıştırın.

Şablon galerisi, her Ayakaleaf Pro pod'unun **web** hizmetinde (`template-gallery` modülü) çalışır; aynı pod'daki **filestore** hizmeti şablon dosyalarını depolar ve önizlemelerini oluşturur. Kategoriler, izinler ve yayımlama [Şablonlar](https://ayakaleaf-pro.mintlify.site/tr/on-premises/configuration/overleaf-toolkit/templates.md) sayfasında açıklanmıştır.

| | |
| - | - |
| Hizmetler | web (`template-gallery` modülü), filestore (dosyalar ve önizleme görüntüleri) |
| Depolanan veriler | MongoDB'de şablon meta verileri; filestore'un şablon deposunda ZIP, PDF ve önizleme görüntüleri: veri birimindeki `/var/lib/overleaf/data/template_files` veya `OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME` S3 bucket'ı |
| Pod → dışarısı | yok (kullanılıyorsa S3) |
| Periyodik işler | yok: önizlemeler ilk görüntülendiklerinde oluşturulur |

### Yapılandırma

**1. ConfigMap**

```yaml title="30-config.yaml (additions)" wrap theme={null}
  OVERLEAF_TEMPLATE_GALLERY: "true"
  ENABLE_CONVERSIONS: "true"
  OVERLEAF_TEMPLATE_CATEGORIES: academic-journal book presentation poster cv report thesis
  TEMPLATE_ACADEMIC_JOURNAL_NAME: Journal articles
  TEMPLATE_ACADEMIC_JOURNAL_DESCRIPTION: Templates for academic journal submissions.
  # ... one _NAME and _DESCRIPTION per category, see the Toolkit page
```

**2. Bir şablon kullanıcısı (isteğe bağlı)**

Yöneticiler her zaman yayımlayabilir. Yönetici olmayan bir kullanıcının galeriyi yönetmesine izin vermek için kullanıcıyı oluşturun, kimliğini MongoDB'den okuyun ve ConfigMap'e ekleyin:

```bash wrap theme={null}
kubectl -n overleaf exec mongo-0 -- mongosh --quiet \
  'mongodb://mongo-0.mongo:27017,mongo-1.mongo:27017,mongo-2.mongo:27017/sharelatex?replicaSet=overleaf' \
  --eval 'db.users.findOne({ email: "templates@example.com" })._id.toString()'
```

```yaml theme={null}
  OVERLEAF_TEMPLATES_USER_ID: "<the ID printed above>"
```

**3. Uygulayın ve yeniden başlatın**

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

### Birden fazla replika

* Şablon dosyaları S3'te olmalıdır: dosyalar her replikanın kendi diskinde olursa her düğüm farklı bir galeri gösterir. [Yatay ölçeklendirme](https://ayakaleaf-pro.mintlify.site/tr/on-premises/configuration/kubernetes/horizontal-scaling.md) kurulumu zaten `overleaf-template-files` bucket'ını kullanır.
* Yayımlama, projenin son derlemesinin PDF'ini alır; bu PDF yalnızca onu derleyen replikada bulunur. Yük dengeleyicinin yapışkan çerezi kullanıcıyı o replikada tutar; bu nedenle derlemeyi yaptığınız tarayıcı oturumundan yayımlayın.

### Kubernetes üzerinde test edildi

HAProxy arkasında üç replikalı ve şablon dosyaları `overleaf-template-files` S3 bucket'ında (Garage) bulunan Kubernetes 1.37 üzerinde, şablon galerisi için uçtan uca testlerimiz başarılı oldu (41 vaka): derlenmiş bir projeyi Dosya menüsünden yayımlama ve PDF'in, önizleme görüntülerinin ve kaynak ZIP'in bucket'tan sunulması; bir şablondan proje oluşturma; galerinin kategorileri, araması, sıralaması ve sayfaları; şablonları düzenleme, üzerine yazma ve silme; yöneticilerin, normal kullanıcıların ve `OVERLEAF_TEMPLATES_USER_ID` ile belirlenen şablon kullanıcısının (kimliği yukarıda açıklandığı gibi MongoDB'den okunan) izinleri; ve hatalı biçimlendirilmiş istekler.


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