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

# 從 docker-compose.yml 遷移至 Toolkit

> 將 Overleaf Docker Compose 部署遷移至 Toolkit。

如果您目前透過 `docker-compose.yml` 檔案使用 Docker Compose，遷移至 Toolkit 可以讓本機部署版本的 Overleaf 更容易部署、升級與維護。

若要遷移，您需要將現有的 Docker Compose 設定轉換為 Toolkit 使用的格式。此程序包括將現有設定複製到 Toolkit 中。

本指南將逐步引導您完成此程序的每個步驟，確保從 Docker Compose 順利遷移至 Toolkit。

<Info>
  這些說明適用於 v4.x 及更早版本。因此所有變數都使用 `SHARELATEX_` 前綴，而非 `OVERLEAF_`。
</Info>

<Steps>
  <Step title="複製 Toolkit 儲存庫">
    首先，將 Toolkit 儲存庫複製到主機：

    ```bash theme={null}
    git clone https://github.com/overleaf/toolkit.git ./overleaf-toolkit
    ```

    接著執行 `bin/init` 指令，以預設設定初始化 Toolkit。
  </Step>

  <Step title="設定映像檔與版本">
    在典型的 `docker-compose.yml` 中，映像檔與版本定義於元件描述中，例如：

    ```yaml theme={null}
    version: '2.2'
    services:
        sharelatex:
            restart: always
            # Server Pro users:
            # image: quay.io/sharelatex/sharelatex-pro
            image: sharelatex/sharelatex:3.5.13
    ```

    使用 Toolkit 時，映像檔名稱會自動解析；唯一的要求是在 **config/overleaf.rc** 中設定 `SERVER_PRO=true` 以選用 Server Pro 映像檔，或設定 `SERVER_PRO=false` 以使用 Community Edition。

    所需的 Server Pro／Community Edition 版本號碼設定於 **config/version** 檔案中。Toolkit 需要明確的版本號碼，例如 `4.2.3`。如果您使用的是 `latest`，可以使用 `bin/images` 找出本機 `latest` 版本的映像檔 ID，然後利用 2.x.x、3.x.x、4.x.x 或 5.x.x 的版本說明，將映像檔 ID 對應到版本。

    如果您從自己的內部登錄庫取得映像檔，可以透過設定 `OVERLEAF_IMAGE_NAME` 覆寫 Toolkit 使用的映像檔。您不需要指定標籤，因為 Toolkit 會根據您的 **config/version** 檔案自動加上。
  </Step>

  <Step title="設定外部存取">
    預設情況下，Overleaf 會監聽 `127.0.0.1:80`，只允許來自 Docker 主機的流量。

    若要允許外部存取，請在 [**config/overleaf.rc**](/zh-TW/on-premises/configuration/overleaf-toolkit/environment-variables) 檔案中設定 `OVERLEAF_LISTEN_IP` 與 `OVERLEAF_PORT`。
  </Step>

  <Step title="環境變數遷移">
    您的 `docker-compose.yml` 中的 `sharelatex` 服務可能已定義了一組環境變數，例如：

    ```yaml theme={null}
    environment:
        OVERLEAF_APP_NAME: Overleaf Community Edition
        OVERLEAF_PROXY_LEARN: 'true'
        …
    ```

    將這些變數複製到 Toolkit 的 [**config/variables.env**](/zh-TW/on-premises/configuration/overleaf-toolkit/environment-variables) 檔案中，並確保採用以下格式（使用 `=` 而非 `:`）：

    ```env theme={null}
    OVERLEAF_APP_NAME=Overleaf Community Edition
    OVERLEAF_PROXY_LEARN=true
    ```

    使用 Toolkit 時的例外／差異：

    * 不再需要以 `SANDBOXED_COMPILES_` 與 `DOCKER_RUNNER` 開頭的變數。若要啟用沙箱編譯，請在 **config/overleaf.rc** 檔案中設定 `SIBLING_CONTAINERS_ENABLED=true`。
    * 不再需要以 `OVERLEAF_MONGO_`、`OVERLEAF_REDIS_` 開頭的變數以及 `REDIS_HOST` 變數。MongoDB 與 Redis 現在於 **config/overleaf.rc** 檔案中使用 `MONGO_URL`、`REDIS_HOST` 與 `REDIS_PORT` 設定。

    關於進階設定選項，請參閱 [config/overleaf.rc](/zh-TW/on-premises/configuration/overleaf-toolkit/environment-variables) 文件。
  </Step>

  <Step title="NGINX 代理">
    關於如何遷移 `nginx` 的說明，請參閱 [TLS 代理文件](/zh-TW/on-premises/configuration/overleaf-toolkit/tls-proxy)：
  </Step>

  <Step title="磁碟區">
    在 **config/overleaf.rc** 中設定資料磁碟區的位置：

    #### ShareLaTeX

    將 `OVERLEAF_DATA_PATH` 設為 `sharelatex` 容器所使用資料磁碟區的位置。

    #### MongoDB

    將 `MONGO_DATA_PATH` 設為 `mongo` 容器所使用資料磁碟區的位置。

    #### Redis

    將 `REDIS_DATA_PATH` 設為 `redis` 容器所使用資料磁碟區的位置。
  </Step>
</Steps>

如需更多細節與進階設定，請參閱上方連結的相關 Toolkit 設定文件。


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