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

> Настройка развёртывания на Kubernetes — куда помещаются настройки, секреты и файлы, и по одной странице на каждую функцию.

Развёртывание на Kubernetes считывает те же переменные окружения, что и Toolkit. Там, где на странице Toolkit сказано «добавьте это в `config/variables.env`», поместите значение в ConfigMap `overleaf-env` или в Secret `overleaf-secrets`, если это пароль, ключ или токен. Затем выполните перезапуск:

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

Значения в `config/overleaf.rc` — это настройки Toolkit, а не переменные окружения; чем они заменяются, описано в разделе «Вопросы и ответы» в конце этой страницы.

### Функции

Для каждой функции из конфигурации Toolkit здесь есть страница с её сервисами, настройками, сетевыми путями, фоновыми заданиями, тем, что меняется при нескольких репликах, и описанием того, как она была протестирована:

| Функция | Сервисы в поде | Помимо ConfigMap и Secret |
| - | - | - |
| [Аутентификация](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/authentication): [OIDC](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/authentication/oidc-authentication.md), [SAML](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/authentication/saml-authentication.md), [LDAP](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/authentication/ldap-authentication.md), [Публичный доступ](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/authentication/public-access.md), [reCAPTCHA](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/authentication/recaptcha.md), [Ограничения паролей](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/authentication/password-restrictions.md) | web | секреты клиентов, сертификат IdP, CA для LDAP |
| [Изолированная компиляция](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/sandboxed-compiles.md) | clsi | Docker Engine и образы TeX Live на каждом узле |
| [Импорт и экспорт через Pandoc](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/pandoc-import-and-export.md) | clsi, web | образ Pandoc в Docker на каждом узле |
| [Интеграция с Git](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/integrations/git-integration.md) | git-bridge (собственный под), web, history-v1 | StatefulSet git-bridge и два Service |
| Синхронизация с [GitHub](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/integrations/github-synchronisation.md), [GitLab](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/integrations/gitlab-synchronisation.md), [Gitea](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/integrations/gitea-synchronisation.md) | web | интеграция с Git |
| [Синхронизация с Dropbox](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/integrations/dropbox-synchronisation.md) | web, third-party-datastore, document-updater | интеграция с Git, вебхук, доступный из интернета, индексы базы данных |
| Интеграция с [Zotero](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/integrations/zotero-integration.md), [Mendeley](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/integrations/mendeley-integration.md) | web | пароль шифрования в Secret |
| [MCP-сервер](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/integrations/mcp-server.md) | web | интеграция с Git |
| [Интеграция с ИИ](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/integrations/ai-integration.md) | web, linked-url-proxy | – |
| [Overleaf Import API](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/integrations/overleaf-import-api.md) | web, linked-url-proxy | – |
| [Шаблоны](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/templates.md) | web, filestore | S3 для нескольких реплик |
| [Внешний URL](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/external-url.md) | linked-url-proxy | публичные адреса узлов в `OVERLEAF_LINKED_URL_BLOCKED_NETWORKS` |
| [Логирование](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/logging.md) | все сервисы | том в `/var/log/overleaf` для хранения журналов |
| [TLS-прокси](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/tls-proxy.md) | ваш ingress или балансировщик нагрузки | TLS завершается перед подами |
| [Брендинг](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/branding.md) | web | – |
| [Локализация](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/localization.md) | web | одно имя хоста на каждый язык |
| [Доставка электронной почты](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/email-delivery.md) | web | – |
| [Redis](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/redis.md) | все сервисы с оперативным состоянием | – |
| [S3](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/s3.md) | history-v1, filestore | сервис S3, обязателен для нескольких реплик |
| [Добавление справки по LaTeX для пользователей](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/adding-latex-user-help.md) | web | поды должны иметь доступ к wiki |
| [Горизонтальное масштабирование](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/horizontal-scaling.md) | все | S3, балансировщик нагрузки с привязкой сессий (sticky sessions) |

### Сертификаты и другие файлы

Некоторые функции принимают путь к файлу вместо значения: сертификаты SAML (`OVERLEAF_SAML_IDP_CERT`, ...), CA для LDAP (`OVERLEAF_LDAP_TLS_OPTS_CA_PATH`) или частный CA для самостоятельно размещённого GitHub Enterprise, GitLab или Gitea (`NODE_EXTRA_CA_CERTS`). Поместите файлы в Secret и смонтируйте его туда, где их ожидают страницы Toolkit, — в `/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
```

Затем укажите пути к ним в ConfigMap, например `NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem`, и выполните перезапуск.

> [!WARNING]
>
> **Пароли шифрования.** Задайте в Secret все `*_CIPHER_PASSWORD` для используемых функций. В противном случае некоторые функции при первом использовании создают файл ключа на томе данных: с одной репликой это работает до потери тома, а при нескольких репликах каждая реплика шифровала бы данные своим ключом.

### Вопросы и ответы

> [accordion] Какие настройки Toolkit из `config/overleaf.rc` мне нужны?
>
> **Ответ:** Ayakaleaf Pro не считывает ни одну из них. Их аналоги в Kubernetes:
>
> | `config/overleaf.rc` | Kubernetes |
> | - | - |
> | `OVERLEAF_LISTEN_IP`, `OVERLEAF_PORT` | Service (NodePort) или ваш ingress |
> | `SIBLING_CONTAINERS_ENABLED` | `SANDBOXED_COMPILES*` в ConfigMap, сокет Docker в поде |
> | `GIT_BRIDGE_ENABLED` | [Интеграция с Git](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/integrations/git-integration.md) |
> | `MONGO_ENABLED`, `REDIS_ENABLED`, `MONGO_URL`, `REDIS_HOST` | StatefulSet-ы или ваши управляемые сервисы, `OVERLEAF_MONGO_URL` и `OVERLEAF_REDIS_HOST` |
> | `REDIS_AOF_PERSISTENCE` | `--appendonly yes` в `20-redis.yaml` |
> | `NGINX_ENABLED`, `TLS_*` | ваш ingress или балансировщик нагрузки |


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