> ## 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 部署。

訪客存取共用專案、公開頁面以及自行註冊，皆透過 **web** 服務讀取的環境變數來開啟；接著 real-time 服務會透過訪客的工作階段為其提供服務。各開關開放的內容請參閱[公開存取](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/overleaf-toolkit/authentication/public-access.md)。

| | |
| - | - |
| 服務 | web（以及編輯器中供訪客使用的 real-time），位於每個 Ayakaleaf Pro pod 中；於 web 啟動時讀取 |
| Pod → 外部 | SMTP 伺服器，當註冊需要寄送啟用電子郵件時 |
| 狀態 | 工作階段中的訪客存取權杖、Redis 中的註冊速率限制 |
| 定期工作 | 無 |

### 設定

將您需要的開關加入 ConfigMap `overleaf-env`：

```yaml title="30-config.yaml (additions)" theme={null}
  # Guests open link-shared projects without an account
  OVERLEAF_ALLOW_ANONYMOUS_READ_AND_WRITE_SHARING: "true"
  # Signed-out visitors may open /learn, /templates, /devs and view links
  OVERLEAF_ALLOW_PUBLIC_ACCESS: "true"
  # Self-registration: "true", or only some domains
  OVERLEAF_ALLOW_PUBLIC_REGISTRATION: "@example.com, @*.uni.example"
```

```bash theme={null}
kubectl apply -f 30-config.yaml
kubectl -n overleaf rollout restart deployment/overleaf     # or statefulset/overleaf
```

請為每個值加上引號。以 `@` 開頭的值在 YAML 中必須加上引號，否則 `kubectl apply` 會拒絕該檔案。

限定網域的註冊會寄送啟用電子郵件，因此 pod 必須能正常進行[電子郵件寄送](https://ayakaleaf-pro.mintlify.site/zh-TW/on-premises/configuration/kubernetes/email-delivery.md)：請將 SMTP 主機放入 ConfigMap，並將 `OVERLEAF_EMAIL_SMTP_PASS` 放入 Secret。

### 多個副本

不需要額外處理。訪客對專案的存取權保存在 Redis 的工作階段中，因此無論負載平衡器選擇哪個副本，編輯器都能正常運作。

### 在 Kubernetes 上的測試

在 Kubernetes 1.37 上，我們針對公開存取的端對端測試全數通過：在一個副本上，將 `OVERLEAF_ALLOW_PUBLIC_REGISTRATION` 設為 `true`、單一網域、含子網域萬用字元的多個網域以及 `@*` 時的自行註冊，並在網域模式下寄送啟用電子郵件（43 個案例）；在 `OVERLEAF_ALLOW_PUBLIC_ACCESS` 下，未登入的訪問者瀏覽 `/devs`，以及貼上的程式碼片段在登入後仍保留（2 個案例）；同時開啟兩個開關時，未登入的訪客進入透過連結共用的專案（3 個案例）；以及在 HAProxy 後方的三個副本上，OIDC 搭配公開存取（1 個案例）。


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