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

> Configurare un deployment Kubernetes - dove vanno impostazioni, segreti e file, con una pagina per ogni funzionalità.

Un deployment Kubernetes legge le stesse variabili d'ambiente del Toolkit. Quando una pagina del Toolkit dice "aggiungi questo a `config/variables.env`", inserisci il valore nella ConfigMap `overleaf-env`, oppure nel Secret `overleaf-secrets` se si tratta di una password, una chiave o un token. Quindi riavvia:

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

I valori in `config/overleaf.rc` sono impostazioni del Toolkit, non variabili d'ambiente; le domande e risposte alla fine di questa pagina indicano cosa li sostituisce.

### Funzionalità

Ogni funzionalità della configurazione del Toolkit ha qui una pagina con i relativi servizi, impostazioni, percorsi di rete, job in background, cosa cambia con più repliche e come è stata testata:

| Funzionalità | Servizi nel pod | Oltre alla ConfigMap e al Secret |
| - | - | - |
| [Autenticazione](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/authentication): [OIDC](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/authentication/oidc-authentication.md), [SAML](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/authentication/saml-authentication.md), [LDAP](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/authentication/ldap-authentication.md), [Accesso pubblico](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/authentication/public-access.md), [reCAPTCHA](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/authentication/recaptcha.md), [Restrizioni sulle password](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/authentication/password-restrictions.md) | web | client secret, il certificato dell'IdP, la CA LDAP |
| [Sandboxed Compiles](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/sandboxed-compiles.md) | clsi | Docker Engine e le immagini TeX Live su ogni nodo |
| [Importazione ed esportazione con Pandoc](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/pandoc-import-and-export.md) | clsi, web | l'immagine Pandoc in Docker su ogni nodo |
| [Integrazione Git](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/integrations/git-integration.md) | git-bridge (pod dedicato), web, history-v1 | lo StatefulSet di git-bridge e due Service |
| Sincronizzazione con [GitHub](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/integrations/github-synchronisation.md), [GitLab](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/integrations/gitlab-synchronisation.md), [Gitea](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/integrations/gitea-synchronisation.md) | web | Integrazione Git |
| [Sincronizzazione con Dropbox](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/integrations/dropbox-synchronisation.md) | web, third-party-datastore, document-updater | Integrazione Git, il webhook raggiungibile da Internet, indici del database |
| Integrazione con [Zotero](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/integrations/zotero-integration.md), [Mendeley](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/integrations/mendeley-integration.md) | web | la cipher password nel Secret |
| [Server MCP](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/integrations/mcp-server.md) | web | Integrazione Git |
| [Integrazione AI](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/integrations/ai-integration.md) | web, linked-url-proxy | – |
| [Overleaf Import API](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/integrations/overleaf-import-api.md) | web, linked-url-proxy | – |
| [Template](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/templates.md) | web, filestore | S3 per più repliche |
| [URL esterno](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/external-url.md) | linked-url-proxy | indirizzi pubblici dei nodi in `OVERLEAF_LINKED_URL_BLOCKED_NETWORKS` |
| [Log](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/logging.md) | tutti i servizi | un volume in `/var/log/overleaf` per conservare i log |
| [Proxy TLS](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/tls-proxy.md) | il tuo ingress o load balancer | TLS termina davanti ai pod |
| [Branding](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/branding.md) | web | – |
| [Localizzazione](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/localization.md) | web | un nome host per lingua |
| [Invio delle email](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/email-delivery.md) | web | – |
| [Redis](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/redis.md) | tutti i servizi con stato in tempo reale | – |
| [S3](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/s3.md) | history-v1, filestore | un servizio S3, necessario per più repliche |
| [Aggiungere la guida LaTeX per gli utenti](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/adding-latex-user-help.md) | web | i pod devono raggiungere la wiki |
| [Scalabilità orizzontale](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/horizontal-scaling.md) | tutti | S3, un load balancer con sessioni sticky |

### Certificati e altri file

Alcune funzionalità accettano un percorso di file anziché un valore: i certificati SAML (`OVERLEAF_SAML_IDP_CERT`, ...), la CA LDAP (`OVERLEAF_LDAP_TLS_OPTS_CA_PATH`) o una CA privata per un GitHub Enterprise, GitLab o Gitea self-hosted (`NODE_EXTRA_CA_CERTS`). Inserisci i file in un Secret e montalo dove le pagine del Toolkit li prevedono, `/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
```

Quindi fai riferimento a essi tramite il percorso nella ConfigMap, ad esempio `NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem`, e riavvia.

> [!WARNING]
>
> **Cipher password.** Imposta nel Secret ogni `*_CIPHER_PASSWORD` delle funzionalità che usi. Altrimenti alcune funzionalità generano un file di chiave nel volume dei dati al primo utilizzo: con una replica funziona finché il volume non va perso, con più repliche ogni replica cifrerebbe con una chiave diversa.

### Domande e risposte

> [accordion] Di quali impostazioni del Toolkit di `config/overleaf.rc` ho bisogno?
>
> **Risposta:** Nessuna di esse viene letta da Ayakaleaf Pro. I loro equivalenti in Kubernetes:
>
> | `config/overleaf.rc` | Kubernetes |
> | - | - |
> | `OVERLEAF_LISTEN_IP`, `OVERLEAF_PORT` | il Service (NodePort) o il tuo ingress |
> | `SIBLING_CONTAINERS_ENABLED` | `SANDBOXED_COMPILES*` nella ConfigMap, socket Docker nel pod |
> | `GIT_BRIDGE_ENABLED` | [Integrazione Git](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/integrations/git-integration.md) |
> | `MONGO_ENABLED`, `REDIS_ENABLED`, `MONGO_URL`, `REDIS_HOST` | gli StatefulSet o i tuoi servizi gestiti, `OVERLEAF_MONGO_URL` e `OVERLEAF_REDIS_HOST` |
> | `REDIS_AOF_PERSISTENCE` | `--appendonly yes` in `20-redis.yaml` |
> | `NGINX_ENABLED`, `TLS_*` | il tuo ingress o load balancer |


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