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

# Plantillas

> Ejecuta la galería de plantillas en un despliegue de Kubernetes.

La galería de plantillas se ejecuta en el servicio **web** (el módulo `template-gallery`) de cada pod de Ayakaleaf Pro; el servicio **filestore** del mismo pod almacena los archivos de las plantillas y genera sus vistas previas. Las categorías, los permisos y la publicación se describen en [Plantillas](https://ayakaleaf-pro.mintlify.site/es/on-premises/configuration/overleaf-toolkit/templates.md).

| | |
| - | - |
| Servicios | web (módulo `template-gallery`), filestore (archivos e imágenes de vista previa) |
| Datos almacenados | los metadatos de las plantillas en MongoDB; el ZIP, el PDF y las imágenes de vista previa en el almacén de plantillas de filestore: `/var/lib/overleaf/data/template_files` en el volumen de datos, o el bucket de S3 `OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME` |
| Pod → exterior | ninguno (S3, si se usa) |
| Tareas periódicas | ninguna: las vistas previas se generan la primera vez que se visualizan |

### Configuración

**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. Un usuario de plantillas (opcional)**

Los administradores siempre pueden publicar. Para permitir que un usuario que no es administrador gestione la galería, crea el usuario, lee su ID en MongoDB y ponlo en el 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. Aplicar y reiniciar**

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

### Varias réplicas

* Los archivos de las plantillas deben estar en S3: con los archivos en el disco propio de cada réplica, cada nodo mostraría una galería distinta. La configuración de [Escalado horizontal](https://ayakaleaf-pro.mintlify.site/es/on-premises/configuration/kubernetes/horizontal-scaling.md) ya usa el bucket `overleaf-template-files`.
* La publicación toma el PDF de la última compilación del proyecto, que solo existe en la réplica que lo compiló. La cookie de afinidad del balanceador de carga mantiene a un usuario en esa réplica, así que publica desde la misma sesión del navegador en la que compilaste.

### Probado en Kubernetes

En Kubernetes 1.37 con tres réplicas detrás de HAProxy y los archivos de las plantillas en el bucket de S3 `overleaf-template-files` (Garage), nuestras pruebas de extremo a extremo de la galería de plantillas se superan (41 casos): publicar un proyecto compilado desde el menú Archivo y servir el PDF, las imágenes de vista previa y el ZIP del código fuente desde el bucket; crear proyectos a partir de una plantilla; categorías, búsqueda, ordenación y páginas de la galería; editar, sobrescribir y eliminar plantillas; permisos de administradores, usuarios normales y el usuario de plantillas de `OVERLEAF_TEMPLATES_USER_ID` (con su ID leído en MongoDB como se describe arriba); y peticiones mal formadas.


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