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

> Configure uma implantação Kubernetes - onde ficam as configurações, os segredos e os arquivos, e uma página por recurso.

Uma implantação Kubernetes lê as mesmas variáveis de ambiente que o Toolkit. Onde uma página do Toolkit diz "adicione isto a `config/variables.env`", coloque o valor no ConfigMap `overleaf-env`, ou no Secret `overleaf-secrets` quando for uma senha, chave ou token. Depois, reinicie:

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

Os valores em `config/overleaf.rc` são configurações do Toolkit, não variáveis de ambiente; o Q\&A no final desta página indica o que os substitui.

### Recursos

Cada recurso da configuração do Toolkit tem aqui uma página com seus serviços, configurações, caminhos de rede, tarefas em segundo plano, o que muda com várias réplicas e como foi testado:

| Recurso | Serviços no pod | Além do ConfigMap e do Secret |
| - | - | - |
| [Autenticação](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/authentication): [OIDC](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/authentication/oidc-authentication.md), [SAML](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/authentication/saml-authentication.md), [LDAP](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/authentication/ldap-authentication.md), [Acesso público](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/authentication/public-access.md), [reCAPTCHA](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/authentication/recaptcha.md), [Restrições de senha](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/authentication/password-restrictions.md) | web | client secrets, o certificado do IdP, a CA do LDAP |
| [Sandboxed Compiles](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/sandboxed-compiles.md) | clsi | Docker Engine e as imagens do TeX Live em cada nó |
| [Importação e exportação com Pandoc](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/pandoc-import-and-export.md) | clsi, web | a imagem do Pandoc no Docker em cada nó |
| [Integração com Git](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/integrations/git-integration.md) | git-bridge (pod próprio), web, history-v1 | o StatefulSet do git-bridge e dois Services |
| Sincronização com [GitHub](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/integrations/github-synchronisation.md), [GitLab](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/integrations/gitlab-synchronisation.md), [Gitea](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/integrations/gitea-synchronisation.md) | web | Integração com Git |
| [Sincronização com Dropbox](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/integrations/dropbox-synchronisation.md) | web, third-party-datastore, document-updater | Integração com Git, o webhook acessível pela internet, índices do banco de dados |
| Integração com [Zotero](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/integrations/zotero-integration.md), [Mendeley](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/integrations/mendeley-integration.md) | web | a senha de criptografia no Secret |
| [Servidor MCP](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/integrations/mcp-server.md) | web | Integração com Git |
| [Integração com IA](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/integrations/ai-integration.md) | web, linked-url-proxy | – |
| [API de importação do Overleaf](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/integrations/overleaf-import-api.md) | web, linked-url-proxy | – |
| [Templates](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/templates.md) | web, filestore | S3 para várias réplicas |
| [URL externa](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/external-url.md) | linked-url-proxy | endereços públicos dos nós em `OVERLEAF_LINKED_URL_BLOCKED_NETWORKS` |
| [Logs](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/logging.md) | todos os serviços | um volume em `/var/log/overleaf` para manter os logs |
| [Proxy TLS](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/tls-proxy.md) | seu ingress ou balanceador de carga | o TLS termina na frente dos pods |
| [Identidade visual](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/branding.md) | web | – |
| [Localização](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/localization.md) | web | um nome de host por idioma |
| [Envio de e-mails](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/email-delivery.md) | web | – |
| [Redis](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/redis.md) | todos os serviços com estado em tempo real | – |
| [S3](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/s3.md) | history-v1, filestore | um serviço S3, obrigatório para várias réplicas |
| [Adicionar ajuda de LaTeX para usuários](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/adding-latex-user-help.md) | web | os pods precisam alcançar a wiki |
| [Escalonamento horizontal](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/horizontal-scaling.md) | todos | S3, um balanceador de carga com sessões persistentes (sticky sessions) |

### Certificados e outros arquivos

Alguns recursos recebem um caminho de arquivo em vez de um valor: os certificados SAML (`OVERLEAF_SAML_IDP_CERT`, ...), a CA do LDAP (`OVERLEAF_LDAP_TLS_OPTS_CA_PATH`) ou uma CA privada para um GitHub Enterprise, GitLab ou Gitea auto-hospedado (`NODE_EXTRA_CA_CERTS`). Coloque os arquivos em um Secret e monte-o onde as páginas do Toolkit os esperam, `/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
```

Em seguida, refira-se a eles pelo caminho no ConfigMap, por exemplo `NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem`, e reinicie.

> [!WARNING]
>
> **Senhas de criptografia.** Defina no Secret todas as `*_CIPHER_PASSWORD` dos recursos que você usa. Caso contrário, alguns recursos geram um arquivo de chave no volume de dados no primeiro uso: com uma réplica, isso funciona até o volume ser perdido; com várias réplicas, cada réplica criptografaria com uma chave diferente.

### Q\&A

> [accordion] De quais configurações do Toolkit em `config/overleaf.rc` eu preciso?
>
> **Resposta:** Nenhuma delas é lida pelo Ayakaleaf Pro. Seus equivalentes no Kubernetes:
>
> | `config/overleaf.rc` | Kubernetes |
> | - | - |
> | `OVERLEAF_LISTEN_IP`, `OVERLEAF_PORT` | o Service (NodePort) ou seu ingress |
> | `SIBLING_CONTAINERS_ENABLED` | `SANDBOXED_COMPILES*` no ConfigMap, socket do Docker no pod |
> | `GIT_BRIDGE_ENABLED` | [Integração com Git](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/integrations/git-integration.md) |
> | `MONGO_ENABLED`, `REDIS_ENABLED`, `MONGO_URL`, `REDIS_HOST` | os StatefulSets ou seus serviços gerenciados, `OVERLEAF_MONGO_URL` e `OVERLEAF_REDIS_HOST` |
> | `REDIS_AOF_PERSISTENCE` | `--appendonly yes` em `20-redis.yaml` |
> | `NGINX_ENABLED`, `TLS_*` | seu ingress ou balanceador de carga |


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