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

# Kubernetes

> Configurer un déploiement Kubernetes - où placer les paramètres, les secrets et les fichiers, et une page par fonctionnalité.

Un déploiement Kubernetes lit les mêmes variables d'environnement que le Toolkit. Lorsqu'une page du Toolkit indique « ajoutez ceci à `config/variables.env` », placez la valeur dans la ConfigMap `overleaf-env`, ou dans le Secret `overleaf-secrets` s'il s'agit d'un mot de passe, d'une clé ou d'un jeton. Redémarrez ensuite :

```bash theme={null}
kubectl -n overleaf apply -f 30-config.yaml        # after editing the ConfigMap
kubectl -n overleaf patch secret overleaf-secrets --type merge \
  -p '{"stringData":{"GITHUB_TOKEN_CIPHER_PASSWORD":"'"$(openssl rand -hex 32)"'"}}'
kubectl -n overleaf rollout restart deployment/overleaf
```

Les valeurs de `config/overleaf.rc` sont des paramètres du Toolkit, et non des variables d'environnement ; les questions-réponses à la fin de cette page indiquent ce qui les remplace.

### Fonctionnalités

Chaque fonctionnalité de la configuration du Toolkit dispose ici d'une page présentant ses services, ses paramètres, ses chemins réseau, ses tâches d'arrière-plan, ce qui change avec plusieurs réplicas, et la manière dont elle a été testée :

| Fonctionnalité | Services dans le pod | Au-delà de la ConfigMap et du Secret |
| - | - | - |
| [Authentification](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/authentication) : [OIDC](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/authentication/oidc-authentication.md), [SAML](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/authentication/saml-authentication.md), [LDAP](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/authentication/ldap-authentication.md), [Accès public](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/authentication/public-access.md), [reCAPTCHA](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/authentication/recaptcha.md), [Restrictions sur les mots de passe](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/authentication/password-restrictions.md) | web | les secrets clients, le certificat de l'IdP, la CA LDAP |
| [Compilations isolées (Sandboxed Compiles)](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/sandboxed-compiles.md) | clsi | Docker Engine et les images TeX Live sur chaque nœud |
| [Import et export Pandoc](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/pandoc-import-and-export.md) | clsi, web | l'image Pandoc dans Docker sur chaque nœud |
| [Intégration Git](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/integrations/git-integration.md) | git-bridge (pod dédié), web, history-v1 | le StatefulSet git-bridge et deux Services |
| Synchronisation [GitHub](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/integrations/github-synchronisation.md), [GitLab](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/integrations/gitlab-synchronisation.md), [Gitea](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/integrations/gitea-synchronisation.md) | web | l'intégration Git |
| [Synchronisation Dropbox](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/integrations/dropbox-synchronisation.md) | web, third-party-datastore, document-updater | l'intégration Git, le webhook joignable depuis Internet, des index de base de données |
| Intégration [Zotero](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/integrations/zotero-integration.md), [Mendeley](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/integrations/mendeley-integration.md) | web | le mot de passe de chiffrement dans le Secret |
| [Serveur MCP](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/integrations/mcp-server.md) | web | l'intégration Git |
| [Intégration de l'IA](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/integrations/ai-integration.md) | web, linked-url-proxy | – |
| [API d'import Overleaf](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/integrations/overleaf-import-api.md) | web, linked-url-proxy | – |
| [Modèles](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/templates.md) | web, filestore | S3 pour plusieurs réplicas |
| [URL externe](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/external-url.md) | linked-url-proxy | les adresses publiques des nœuds dans `OVERLEAF_LINKED_URL_BLOCKED_NETWORKS` |
| [Journalisation](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/logging.md) | tous les services | un volume sur `/var/log/overleaf` pour conserver les journaux |
| [Proxy TLS](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/tls-proxy.md) | votre ingress ou répartiteur de charge | TLS se termine devant les pods |
| [Personnalisation de la marque](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/branding.md) | web | – |
| [Localisation](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/localization.md) | web | un nom d'hôte par langue |
| [Envoi des e-mails](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/email-delivery.md) | web | – |
| [Redis](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/redis.md) | tous les services ayant un état en direct | – |
| [S3](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/s3.md) | history-v1, filestore | un service S3, requis pour plusieurs réplicas |
| [Ajouter l'aide LaTeX pour les utilisateurs](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/adding-latex-user-help.md) | web | les pods doivent atteindre le wiki |
| [Mise à l'échelle horizontale](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/horizontal-scaling.md) | tous | S3, un répartiteur de charge avec sessions persistantes |

### Certificats et autres fichiers

Certaines fonctionnalités attendent un chemin de fichier au lieu d'une valeur : les certificats SAML (`OVERLEAF_SAML_IDP_CERT`, ...), la CA LDAP (`OVERLEAF_LDAP_TLS_OPTS_CA_PATH`), ou une CA privée pour un GitHub Enterprise, GitLab ou Gitea auto-hébergé (`NODE_EXTRA_CA_CERTS`). Placez les fichiers dans un Secret et montez-le à l'endroit où les pages du Toolkit les attendent, `/var/lib/overleaf/certs` :

```bash theme={null}
kubectl -n overleaf create secret generic overleaf-certs --from-file=idp_cert.pem --from-file=ca.pem
```

```yaml title="40-overleaf.yaml (additions)" theme={null}
          volumeMounts:
            # ...
            - name: certs
              mountPath: /var/lib/overleaf/certs
              readOnly: true
      volumes:
        # ...
        - name: certs
          secret:
            secretName: overleaf-certs
```

Référencez-les ensuite par leur chemin dans la ConfigMap, par exemple `NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem`, puis redémarrez.

> [!WARNING]
>
> **Mots de passe de chiffrement.** Définissez dans le Secret chaque `*_CIPHER_PASSWORD` des fonctionnalités que vous utilisez. Sinon, certaines fonctionnalités génèrent un fichier de clé dans le volume de données lors de leur première utilisation : avec un seul réplica, cela fonctionne jusqu'à la perte du volume ; avec plusieurs réplicas, chaque réplica chiffrerait avec une clé différente.

### Questions-réponses

> [accordion] De quels paramètres du Toolkit issus de `config/overleaf.rc` ai-je besoin ?
>
> **Réponse :** Aucun d'entre eux n'est lu par Ayakaleaf Pro. Leurs équivalents Kubernetes :
>
> | `config/overleaf.rc` | Kubernetes |
> | - | - |
> | `OVERLEAF_LISTEN_IP`, `OVERLEAF_PORT` | le Service (NodePort) ou votre ingress |
> | `SIBLING_CONTAINERS_ENABLED` | `SANDBOXED_COMPILES*` dans la ConfigMap, socket Docker dans le pod |
> | `GIT_BRIDGE_ENABLED` | [Intégration Git](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/integrations/git-integration.md) |
> | `MONGO_ENABLED`, `REDIS_ENABLED`, `MONGO_URL`, `REDIS_HOST` | les StatefulSets ou vos services managés, `OVERLEAF_MONGO_URL` et `OVERLEAF_REDIS_HOST` |
> | `REDIS_AOF_PERSISTENCE` | `--appendonly yes` dans `20-redis.yaml` |
> | `NGINX_ENABLED`, `TLS_*` | votre ingress ou répartiteur de charge |


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