> ## 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 設定中的每項功能在此都有一個對應頁面，說明其服務、設定、網路路徑、背景工作、多個副本時的變化，以及測試方式：

| 功能 | Pod 中的服務 | ConfigMap 與 Secret 以外的需求 |
| - | - | - |
| [身分驗證](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/authentication)：[OIDC](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/authentication/oidc-authentication.md)、[SAML](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/authentication/saml-authentication.md)、[LDAP](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/authentication/ldap-authentication.md)、[公開存取](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/authentication/public-access.md)、[reCAPTCHA](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/authentication/recaptcha.md)、[密碼限制](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/authentication/password-restrictions.md) | web | 用戶端密鑰、IdP 憑證、LDAP CA |
| [沙箱編譯（Sandboxed Compiles）](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/sandboxed-compiles.md) | clsi | 每個節點上的 Docker Engine 與 TeX Live 映像檔 |
| [Pandoc 匯入與匯出](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/pandoc-import-and-export.md) | clsi、web | 每個節點的 Docker 中的 Pandoc 映像檔 |
| [Git 整合](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/integrations/git-integration.md) | git-bridge（獨立 pod）、web、history-v1 | git-bridge StatefulSet 與兩個 Service |
| [GitHub](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/integrations/github-synchronisation.md)、[GitLab](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/integrations/gitlab-synchronisation.md)、[Gitea](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/integrations/gitea-synchronisation.md) 同步 | web | Git 整合 |
| [Dropbox 同步](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/integrations/dropbox-synchronisation.md) | web、third-party-datastore、document-updater | Git 整合、可從網際網路連線的 webhook、資料庫索引 |
| [Zotero](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/integrations/zotero-integration.md)、[Mendeley](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/integrations/mendeley-integration.md) 整合 | web | Secret 中的加密密碼 |
| [MCP Server](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/integrations/mcp-server.md) | web | Git 整合 |
| [AI 整合](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/integrations/ai-integration.md) | web、linked-url-proxy | – |
| [Overleaf 匯入 API](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/integrations/overleaf-import-api.md) | web、linked-url-proxy | – |
| [範本](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/templates.md) | web、filestore | 多個副本時需要 S3 |
| [外部 URL](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/external-url.md) | linked-url-proxy | `OVERLEAF_LINKED_URL_BLOCKED_NETWORKS` 中的公開節點位址 |
| [日誌](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/logging.md) | 每個服務 | 掛載於 `/var/log/overleaf` 的磁碟區，用於保存日誌 |
| [TLS 代理](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/tls-proxy.md) | 您的 ingress 或負載平衡器 | TLS 在 pod 前方終止 |
| [品牌自訂](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/branding.md) | web | – |
| [在地化](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/localization.md) | web | 每種語言一個主機名稱 |
| [電子郵件傳送](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/email-delivery.md) | web | – |
| [Redis](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/redis.md) | 每個具有即時狀態的服務 | – |
| [S3](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/s3.md) | history-v1、filestore | S3 服務，多個副本時為必要 |
| [新增 LaTeX 使用者說明](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/adding-latex-user-help.md) | web | pod 必須能連線至 wiki |
| [水平擴展](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/horizontal-scaling.md) | 全部 | S3、具備黏性工作階段的負載平衡器 |

### 憑證與其他檔案

部分功能接受檔案路徑而非值：SAML 憑證（`OVERLEAF_SAML_IDP_CERT`、...）、LDAP CA（`OVERLEAF_LDAP_TLS_OPTS_CA_PATH`），或自行託管之 GitHub Enterprise、GitLab 或 Gitea 的私有 CA（`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] 我需要 `config/overleaf.rc` 中的哪些 Toolkit 設定？
>
> \*\*回答：\*\*Ayakaleaf Pro 不會讀取其中任何一項。它們在 Kubernetes 中的對應方式如下：
>
> | `config/overleaf.rc` | Kubernetes |
> | - | - |
> | `OVERLEAF_LISTEN_IP`、`OVERLEAF_PORT` | Service（NodePort）或您的 ingress |
> | `SIBLING_CONTAINERS_ENABLED` | ConfigMap 中的 `SANDBOXED_COMPILES*`，以及 pod 中的 Docker socket |
> | `GIT_BRIDGE_ENABLED` | [Git 整合](https://ayakaleaf-pro.mintlify.site/zh-TW/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` | `20-redis.yaml` 中的 `--appendonly yes` |
> | `NGINX_ENABLED`、`TLS_*` | 您的 ingress 或負載平衡器 |


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