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

# Mallar

> Kör mallgalleriet i en Kubernetes-driftsättning.

Mallgalleriet körs i tjänsten **web** (modulen `template-gallery`) i varje Ayakaleaf Pro-pod; tjänsten **filestore** i samma pod lagrar mallfilerna och renderar deras förhandsvisningar. Kategorier, behörigheter och publicering beskrivs i [Mallar](https://ayakaleaf-pro.mintlify.site/sv/on-premises/configuration/overleaf-toolkit/templates.md).

| | |
| - | - |
| Tjänster | web (modulen `template-gallery`), filestore (filer och förhandsvisningsbilder) |
| Lagrade data | mallmetadata i MongoDB; ZIP, PDF och förhandsvisningsbilder i filestores mallagring: `/var/lib/overleaf/data/template_files` på datavolymen, eller S3-bucketen `OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME` |
| Pod → utåt | ingen (S3, om det används) |
| Periodiska jobb | inga: förhandsvisningar renderas första gången de visas |

### Konfiguration

**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. En mallanvändare (valfritt)**

Administratörer kan alltid publicera. För att låta en användare som inte är administratör hantera galleriet skapar du användaren, läser dess ID från MongoDB och lägger in det i ConfigMap:en:

```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. Tillämpa och starta om**

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

### Flera repliker

* Mallfilerna måste ligga i S3: med filer på varje repliks egen disk skulle varje nod visa ett annat galleri. Konfigurationen för [Horisontell skalning](https://ayakaleaf-pro.mintlify.site/sv/on-premises/configuration/kubernetes/horizontal-scaling.md) använder redan bucketen `overleaf-template-files`.
* Publicering tar PDF:en från projektets senaste kompilering, som bara finns på repliken som kompilerade den. Lastbalanserarens sticky-cookie håller en användare kvar på den repliken, så publicera från samma webbläsarsession som kompilerade.

### Testat på Kubernetes

På Kubernetes 1.37 med tre repliker bakom HAProxy och mallfilerna i S3-bucketen `overleaf-template-files` (Garage) klarar våra end-to-end-tester för mallgalleriet sig (41 fall): publicering av ett kompilerat projekt från Fil-menyn och PDF:en, förhandsvisningsbilderna och käll-ZIP:en som serveras från bucketen; skapande av projekt från en mall; kategorier, sökning, sortering och sidor i galleriet; redigering, överskrivning och borttagning av mallar; behörigheter för administratörer, vanliga användare och mallanvändaren från `OVERLEAF_TEMPLATES_USER_ID` (dess ID läst från MongoDB enligt beskrivningen ovan); samt felaktigt utformade förfrågningar.


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