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

# Mallipohjat

> Aja mallipohjagalleriaa Kubernetes-käyttöönotossa.

Mallipohjagalleria toimii jokaisen Ayakaleaf Pro -podin **web**-palvelussa (`template-gallery`-moduuli); saman podin **filestore**-palvelu tallentaa mallipohjatiedostot ja renderöi niiden esikatselut. Kategoriat, käyttöoikeudet ja julkaiseminen on kuvattu sivulla [Mallipohjat](https://ayakaleaf-pro.mintlify.site/fi/on-premises/configuration/overleaf-toolkit/templates.md).

| | |
| - | - |
| Palvelut | web (`template-gallery`-moduuli), filestore (tiedostot ja esikatselukuvat) |
| Tallennetut tiedot | mallipohjien metatiedot MongoDB:ssä; ZIP, PDF ja esikatselukuvat filestoren mallipohjasäilössä: `/var/lib/overleaf/data/template_files` datataltiolla tai S3-bucket `OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME` |
| Pod → ulkopuoli | ei mitään (S3, jos käytössä) |
| Ajastetut tehtävät | ei mitään: esikatselut renderöidään, kun niitä katsotaan ensimmäisen kerran |

### Konfigurointi

**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. Mallipohjakäyttäjä (valinnainen)**

Ylläpitäjät voivat aina julkaista. Jos haluat antaa muun kuin ylläpitäjän hallita galleriaa, luo käyttäjä, lue sen tunnus MongoDB:stä ja lisää se ConfigMapiin:

```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. Ota käyttöön ja käynnistä uudelleen**

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

### Useita replikoita

* Mallipohjatiedostojen on oltava S3:ssa: jos tiedostot olisivat kunkin replikan omalla levyllä, jokainen solmu näyttäisi eri gallerian. [Horisontaalisen skaalauksen](https://ayakaleaf-pro.mintlify.site/fi/on-premises/configuration/kubernetes/horizontal-scaling.md) kokoonpano käyttää jo bucketia `overleaf-template-files`.
* Julkaiseminen käyttää projektin viimeisimmän käännöksen PDF:ää, joka on olemassa vain sen kääntäneellä replikalla. Kuormantasaajan pysyvyyseväste (sticky cookie) pitää käyttäjän kyseisellä replikalla, joten julkaise samasta selainistunnosta, jossa käänsit.

### Testattu Kubernetesissa

Kubernetes 1.37:ssä kolmella replikalla HAProxyn takana ja mallipohjatiedostot S3-bucketissa `overleaf-template-files` (Garage), mallipohjagallerian päästä päähän -testimme menevät läpi (41 tapausta): käännetyn projektin julkaiseminen File-valikosta sekä PDF:n, esikatselukuvien ja lähde-ZIP:n tarjoaminen bucketista; projektien luominen mallipohjasta; gallerian kategoriat, haku, lajittelu ja sivut; mallipohjien muokkaaminen, korvaaminen ja poistaminen; ylläpitäjien, tavallisten käyttäjien ja `OVERLEAF_TEMPLATES_USER_ID`-asetuksen mallipohjakäyttäjän (jonka tunnus luettiin MongoDB:stä yllä kuvatulla tavalla) käyttöoikeudet; sekä virheelliset pyynnöt.


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