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

# Maler

> Kjør malgalleriet i en Kubernetes-distribusjon.

Malgalleriet kjører i **web**-tjenesten (modulen `template-gallery`) i hver Ayakaleaf Pro-pod; **filestore**-tjenesten i samme pod lagrer malfilene og gjengir forhåndsvisningene deres. Kategorier, tillatelser og publisering er beskrevet i [Maler](https://ayakaleaf-pro.mintlify.site/no/on-premises/configuration/overleaf-toolkit/templates.md).

| | |
| - | - |
| Tjenester | web (modulen `template-gallery`), filestore (filer og forhåndsvisningsbilder) |
| Lagrede data | malmetadata i MongoDB; ZIP, PDF og forhåndsvisningsbilder i filestores mallager: `/var/lib/overleaf/data/template_files` på datavolumet, eller S3-bøtten `OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME` |
| Pod → utsiden | ingen (S3, hvis det brukes) |
| Periodiske jobber | ingen: forhåndsvisninger gjengis første gang de vises |

### Konfigurasjon

**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 malbruker (valgfritt)**

Administratorer kan alltid publisere. For å la en bruker som ikke er administrator, administrere galleriet oppretter du brukeren, leser ID-en fra MongoDB og legger den inn 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. Bruk og start på nytt**

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

### Flere replikaer

* Malfilene må ligge i S3: med filer på hver replikas egen disk ville hver node vise et annet galleri. Oppsettet for [Horisontal skalering](https://ayakaleaf-pro.mintlify.site/no/on-premises/configuration/kubernetes/horizontal-scaling.md) bruker allerede bøtten `overleaf-template-files`.
* Publisering tar PDF-en fra prosjektets siste kompilering, som bare finnes på replikaen som kompilerte den. Lastbalansererens «sticky»-informasjonskapsel holder en bruker på den replikaen, så publiser fra den samme nettleserøkten som kompilerte.

### Testet på Kubernetes

På Kubernetes 1.37 med tre replikaer bak HAProxy og malfilene i S3-bøtten `overleaf-template-files` (Garage) består ende-til-ende-testene våre for malgalleriet (41 tilfeller): publisering av et kompilert prosjekt fra Fil-menyen og PDF-en, forhåndsvisningsbilder og kilde-ZIP levert fra bøtten; opprettelse av prosjekter fra en mal; kategorier, søk, sortering og sider i galleriet; redigering, overskriving og sletting av maler; tillatelser for administratorer, vanlige brukere og malbrukeren fra `OVERLEAF_TEMPLATES_USER_ID` (ID-en lest fra MongoDB som beskrevet ovenfor); og feilformede forespørsler.


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