> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/on-premises/ru/obsluzhivanie/docker-compose.yml-to-toolkit-migration.md).

# Миграция с docker-compose.yml на Toolkit

Если вы сейчас используете Docker Compose через `docker-compose.yml` файл, переход на Toolkit может упростить развертывание, обновление и сопровождение локальной версии Overleaf.

Чтобы выполнить миграцию, вам нужно преобразовать существующую настройку Docker Compose в формат, используемый Toolkit. Этот процесс включает копирование существующей конфигурации в Toolkit.

Это руководство проведёт вас через каждый этап этого процесса, обеспечивая плавную миграцию с Docker Compose на Toolkit.

{% hint style="info" %}
Эти инструкции предназначены для v4.x и более ранних версий. Поэтому все переменные используют `SHARELATEX_` префикс вместо `OVERLEAF_`.
{% endhint %}

{% stepper %}
{% step %}

### Клонируйте репозиторий Toolkit

Сначала клонируйте репозиторий Toolkit на хост-машину:

```bash
git clone https://github.com/overleaf/toolkit.git ./overleaf-toolkit
```

Затем выполните `bin/init` команду, чтобы инициализировать Toolkit с его конфигурацией по умолчанию.
{% endstep %}

{% step %}

### Настройка образа и версии

В типичном `docker-compose.yml` образ и версия определяются в описании компонента, например:

```yaml
version: '2.2'
services:
    sharelatex:
        restart: always
        # Для пользователей Server Pro:
        # image: quay.io/sharelatex/sharelatex-pro
        image: sharelatex/sharelatex:3.5.13
```

При использовании Toolkit имя образа определяется автоматически; единственное требование — установить `SERVER_PRO=true` в **config/overleaf.rc** чтобы выбрать образ Server Pro или `SERVER_PRO=false` чтобы использовать Community Edition.

Номер версии Server Pro/Community Edition, который вам нужен, задаётся в **config/version** файле. Toolkit требует конкретный номер версии, например `4.2.3`. Если вы используете `latest`, вы можете использовать `bin/images` чтобы найти идентификатор образа вашей локальной `latest` версии, затем используйте примечания к выпускам 2.x.x, 3.x.x, 4.x.x или 5.x.x, чтобы сопоставить идентификатор образа с версией.

Если вы берёте образ из собственного внутреннего реестра, вы можете переопределить образ, который использует Toolkit, установив `OVERLEAF_IMAGE_NAME`. Указывать тег не нужно, так как Toolkit автоматически добавит его на основе вашего **config/version** файл.
{% endstep %}

{% step %}

### Настройка внешнего доступа

По умолчанию Overleaf будет слушать на `127.0.0.1:80`, разрешая трафик только с хост-машины Docker.

Чтобы разрешить внешний доступ, задайте `OVERLEAF_LISTEN_IP` и `OVERLEAF_PORT` в [**config/overleaf.rc**](/on-premises/ru/konfiguraciya/overleaf-toolkit/environment-variables.md) файл.
{% endstep %}

{% step %}

### Миграция переменных окружения

Скорее всего, у вас есть набор переменных окружения, определённых в `sharelatex` сервисе в вашем `docker-compose.yml`, например:

```yaml
environment:
    OVERLEAF_APP_NAME: Overleaf Community Edition
    OVERLEAF_PROXY_LEARN: 'true'
    …
```

Скопируйте эти переменные в файл Toolkit, [**config/variables.env**](broken://pages/14e3a99831712fbed641777e9989c81f73f12a3c) убедившись в следующем формате (используйте `=` вместо `:`):

```env
OVERLEAF_APP_NAME=Overleaf Community Edition
OVERLEAF_PROXY_LEARN=true
```

Исключения / различия при использовании Toolkit:

* Переменные, начинающиеся с `SANDBOXED_COMPILES_` и `DOCKER_RUNNER` больше не нужны. Чтобы включить Sandboxed Compiles, установите `SIBLING_CONTAINERS_ENABLED=true` в вашем **config/overleaf.rc** файл.
* Переменные, начинающиеся с `OVERLEAF_MONGO_`, `OVERLEAF_REDIS_` и `REDIS_HOST` переменные больше не нужны. MongoDB и Redis теперь настраиваются в **config/overleaf.rc** файле с помощью `MONGO_URL`, `REDIS_HOST` и `REDIS_PORT`.

Дополнительные параметры конфигурации см. в [config/overleaf.rc](/on-premises/ru/konfiguraciya/overleaf-toolkit/environment-variables.md) документации.
{% endstep %}

{% step %}

### Прокси NGINX

Инструкции по миграции `nginx`, см. [документацию по TLS Proxy](/on-premises/ru/konfiguraciya/overleaf-toolkit/tls-proxy.md):
{% endstep %}

{% step %}

### Томы

Укажите расположения томов данных в **config/overleaf.rc**:

#### ShareLaTeX

Установите `OVERLEAF_DATA_PATH` в расположение тома данных, используемого `sharelatex` контейнера.

#### MongoDB

Установите `MONGO_DATA_PATH` в расположение тома данных, используемого `mongo` контейнера.

#### Redis

Установите `REDIS_DATA_PATH` в расположение тома данных, используемого `redis` контейнера.
{% endstep %}
{% endstepper %}

Для получения более подробной информации и дополнительных параметров конфигурации обратитесь к соответствующей документации по настройке Toolkit, ссылки на которую приведены выше.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/on-premises/ru/obsluzhivanie/docker-compose.yml-to-toolkit-migration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
