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

> Ein Kubernetes-Deployment konfigurieren - wohin Einstellungen, Secrets und Dateien gehören, und eine Seite pro Funktion.

Ein Kubernetes-Deployment liest dieselben Umgebungsvariablen wie das Toolkit. Wenn eine Toolkit-Seite sagt "fügen Sie dies zu `config/variables.env` hinzu", tragen Sie den Wert in die ConfigMap `overleaf-env` ein, oder in das Secret `overleaf-secrets`, wenn es sich um ein Passwort, einen Schlüssel oder ein Token handelt. Starten Sie dann neu:

```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
```

Werte in `config/overleaf.rc` sind Toolkit-Einstellungen, keine Umgebungsvariablen; das Q\&A am Ende dieser Seite erklärt, was sie ersetzt.

### Funktionen

Jede Funktion der Toolkit-Konfiguration hat hier eine eigene Seite mit ihren Diensten, Einstellungen, Netzwerkpfaden, Hintergrundjobs, den Änderungen bei mehreren Replikaten und der Art, wie sie getestet wurde:

| Funktion | Dienste im Pod | Über die ConfigMap und das Secret hinaus |
| - | - | - |
| [Authentifizierung](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/authentication): [OIDC](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/authentication/oidc-authentication.md), [SAML](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/authentication/saml-authentication.md), [LDAP](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/authentication/ldap-authentication.md), [Öffentlicher Zugriff](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/authentication/public-access.md), [reCAPTCHA](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/authentication/recaptcha.md), [Passwortbeschränkungen](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/authentication/password-restrictions.md) | web | Client Secrets, das IdP-Zertifikat, die LDAP-CA |
| [Sandboxed Compiles](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/sandboxed-compiles.md) | clsi | Docker Engine und die TeX-Live-Images auf jedem Knoten |
| [Pandoc-Import und -Export](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/pandoc-import-and-export.md) | clsi, web | das Pandoc-Image in Docker auf jedem Knoten |
| [Git-Integration](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/integrations/git-integration.md) | git-bridge (eigener Pod), web, history-v1 | das git-bridge-StatefulSet und zwei Services |
| [GitHub](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/integrations/github-synchronisation.md)-, [GitLab](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/integrations/gitlab-synchronisation.md)-, [Gitea](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/integrations/gitea-synchronisation.md)-Synchronisierung | web | Git-Integration |
| [Dropbox-Synchronisierung](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/integrations/dropbox-synchronisation.md) | web, third-party-datastore, document-updater | Git-Integration, der aus dem Internet erreichbare Webhook, Datenbankindizes |
| [Zotero](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/integrations/zotero-integration.md)-, [Mendeley](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/integrations/mendeley-integration.md)-Integration | web | das Cipher-Passwort im Secret |
| [MCP-Server](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/integrations/mcp-server.md) | web | Git-Integration |
| [KI-Integration](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/integrations/ai-integration.md) | web, linked-url-proxy | – |
| [Overleaf Import API](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/integrations/overleaf-import-api.md) | web, linked-url-proxy | – |
| [Vorlagen](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/templates.md) | web, filestore | S3 für mehrere Replikate |
| [Externe URL](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/external-url.md) | linked-url-proxy | öffentliche Knotenadressen in `OVERLEAF_LINKED_URL_BLOCKED_NETWORKS` |
| [Logging](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/logging.md) | jeder Dienst | ein Volume unter `/var/log/overleaf`, um Logs aufzubewahren |
| [TLS-Proxy](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/tls-proxy.md) | Ihr Ingress oder Load Balancer | TLS endet vor den Pods |
| [Branding](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/branding.md) | web | – |
| [Lokalisierung](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/localization.md) | web | ein Hostname pro Sprache |
| [E-Mail-Zustellung](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/email-delivery.md) | web | – |
| [Redis](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/redis.md) | jeder Dienst mit Live-Zustand | – |
| [S3](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/s3.md) | history-v1, filestore | ein S3-Dienst, erforderlich für mehrere Replikate |
| [LaTeX-Benutzerhilfe hinzufügen](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/adding-latex-user-help.md) | web | die Pods müssen das Wiki erreichen |
| [Horizontale Skalierung](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/horizontal-scaling.md) | alle | S3, ein Load Balancer mit Sticky Sessions |

### Zertifikate und andere Dateien

Einige Funktionen erwarten einen Dateipfad statt eines Werts: die SAML-Zertifikate (`OVERLEAF_SAML_IDP_CERT`, ...), die LDAP-CA (`OVERLEAF_LDAP_TLS_OPTS_CA_PATH`) oder eine private CA für ein selbst gehostetes GitHub Enterprise, GitLab oder Gitea (`NODE_EXTRA_CA_CERTS`). Legen Sie die Dateien in ein Secret und hängen Sie es dort ein, wo die Toolkit-Seiten sie erwarten, unter `/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
```

Verweisen Sie dann in der ConfigMap per Pfad darauf, zum Beispiel `NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem`, und starten Sie neu.

> [!WARNING]
>
> **Cipher-Passwörter.** Setzen Sie jedes `*_CIPHER_PASSWORD` der von Ihnen genutzten Funktionen im Secret. Andernfalls erzeugen einige Funktionen bei der ersten Verwendung eine Schlüsseldatei im Daten-Volume: Mit einem Replikat funktioniert das, bis das Volume verloren geht; mit mehreren Replikaten würde jedes Replikat mit einem anderen Schlüssel verschlüsseln.

### Q\&A

> [accordion] Welche Toolkit-Einstellungen aus `config/overleaf.rc` benötige ich?
>
> **Antwort:** Keine davon wird von Ayakaleaf Pro gelesen. Ihre Kubernetes-Entsprechungen:
>
> | `config/overleaf.rc` | Kubernetes |
> | - | - |
> | `OVERLEAF_LISTEN_IP`, `OVERLEAF_PORT` | der Service (NodePort) oder Ihr Ingress |
> | `SIBLING_CONTAINERS_ENABLED` | `SANDBOXED_COMPILES*` in der ConfigMap, Docker-Socket im Pod |
> | `GIT_BRIDGE_ENABLED` | [Git-Integration](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/integrations/git-integration.md) |
> | `MONGO_ENABLED`, `REDIS_ENABLED`, `MONGO_URL`, `REDIS_HOST` | die StatefulSets oder Ihre verwalteten Dienste, `OVERLEAF_MONGO_URL` und `OVERLEAF_REDIS_HOST` |
> | `REDIS_AOF_PERSISTENCE` | `--appendonly yes` in `20-redis.yaml` |
> | `NGINX_ENABLED`, `TLS_*` | Ihr Ingress oder Load Balancer |


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