> For the complete documentation index, see [llms.txt](https://ayakaleaf-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://ayakaleaf-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'
    …
```

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

```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://ayakaleaf-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.
