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

# Template

> Jalankan galeri template pada deployment Kubernetes.

Galeri template berjalan di layanan **web** (modul `template-gallery`) pada setiap pod Ayakaleaf Pro; layanan **filestore** di pod yang sama menyimpan file template dan merender pratinjaunya. Kategori, izin, dan penerbitan dijelaskan di [Template](https://ayakaleaf-pro.mintlify.site/id/on-premises/configuration/overleaf-toolkit/templates.md).

| | |
| - | - |
| Layanan | web (modul `template-gallery`), filestore (file dan gambar pratinjau) |
| Data tersimpan | metadata template di MongoDB; ZIP, PDF, dan gambar pratinjau di penyimpanan template filestore: `/var/lib/overleaf/data/template_files` di volume data, atau bucket S3 `OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME` |
| Pod → luar | tidak ada (S3, jika digunakan) |
| Tugas berkala | tidak ada: pratinjau dirender saat pertama kali dilihat |

### Konfigurasi

**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. Pengguna template (opsional)**

Admin selalu dapat menerbitkan. Agar pengguna non-admin dapat mengelola galeri, buat pengguna tersebut, baca ID-nya dari MongoDB, dan masukkan ke ConfigMap:

```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. Terapkan dan mulai ulang**

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

### Beberapa replika

* File template harus berada di S3: jika file berada di disk masing-masing replika, setiap node akan menampilkan galeri yang berbeda. Penyiapan [Penskalaan horizontal](https://ayakaleaf-pro.mintlify.site/id/on-premises/configuration/kubernetes/horizontal-scaling.md) sudah menggunakan bucket `overleaf-template-files`.
* Penerbitan mengambil PDF dari kompilasi terakhir proyek, yang hanya ada di replika yang mengompilasinya. Cookie sticky load balancer mempertahankan pengguna di replika tersebut, jadi terbitkan dari sesi browser yang sama dengan yang melakukan kompilasi.

### Diuji di Kubernetes

Di Kubernetes 1.37 dengan tiga replika di belakang HAProxy dan file template di bucket S3 `overleaf-template-files` (Garage), pengujian end-to-end kami untuk galeri template lulus (41 kasus): menerbitkan proyek yang telah dikompilasi dari menu File serta PDF, gambar pratinjau, dan ZIP sumber yang disajikan dari bucket; membuat proyek dari template; kategori, pencarian, pengurutan, dan halaman galeri; mengedit, menimpa, dan menghapus template; izin admin, pengguna biasa, dan pengguna template dari `OVERLEAF_TEMPLATES_USER_ID` (ID-nya dibaca dari MongoDB seperti dijelaskan di atas); serta permintaan yang tidak valid.


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