Повышенная безопасность
Изолированная компиляция (Sandboxed Compiles) — рекомендуемый подход для Ayakaleaf Pro, поскольку многие документы LaTeX требуют (или имеют возможность) выполнения произвольных команд оболочки в процессе компиляции PDF. При использовании изолированной компиляции каждая компиляция выполняется в отдельном Docker-контейнере с ограниченными возможностями, который не используется совместно с другими пользователями или проектами и не имеет доступа к внешним ресурсам, таким как сеть хоста.Упрощённое управление пакетами
Чтобы не устанавливать пакеты вручную, рекомендуем включить изолированную компиляцию. Это настраиваемый параметр Server Pro, который предоставит вашим пользователям доступ к той же среде TeX Live, что и на overleaf.com, но в рамках вашей собственной локальной установки. Образы TeX Live, используемые для изолированной компиляции, содержат самые популярные пакеты и шрифты, протестированные на шаблонах из нашей галереи, что обеспечивает максимальную совместимость локальных проектов. Включение изолированной компиляции позволяет настроить, из каких версий TeX Live пользователи смогут выбирать в своих проектах, а также задать версию образа TeX Live по умолчанию для новых проектов.Если вы попытаетесь запустить Ayakaleaf Pro без изолированной компиляции, ваш экземпляр по умолчанию будет использовать для компиляции версию TeX Live с базовой схемой (basic scheme). Эта базовая версия легковесна и содержит лишь очень ограниченный набор пакетов LaTeX, что, скорее всего, приведёт к ошибкам об отсутствующих пакетах у ваших пользователей, особенно при использовании готовых шаблонов.
Для изолированной компиляции контейнер
sharelatex должен иметь доступ к сокету Docker на хост-машине (через bind mount), чтобы управлять соседними контейнерами компиляции.Как это работает
Когда изолированная компиляция включена, сокет Docker монтируется с хост-машины в контейнерsharelatex, чтобы сервис компиляции в контейнере мог создавать новые Docker-контейнеры на хосте. Затем при каждом запуске компилятора в каждом проекте сервис компиляции LaTeX (CLSI) делает следующее:
- Записывает файлы проекта в каталог внутри
OVERLEAF_DATA_PATH. - С помощью смонтированного сокета Docker создаёт новый контейнер
texliveдля данного запуска компиляции. - Контейнер
texliveсчитывает данные проекта из каталога вOVERLEAF_DATA_PATH. - Компилирует проект внутри контейнера
texlive.
Включение изолированной компиляции
Для пользователей Toolkit
Чтобы включить изолированную компиляцию (также известную как Sibling containers), задайте следующие параметры конфигурации вoverleaf-toolkit/config/overleaf.rc:
config/overleaf.rc
Для пользователей Docker Compose
Начиная с Overleaf CE/Server Pro
5.0.3 переменные окружения были переименованы с SHARELATEX_* на OVERLEAF_*.4.x (или более раннюю), убедитесь, что у переменных правильный префикс (например, SHARELATEX_MONGO_URL вместо OVERLEAF_MONGO_URL).
Настройка образа TeX Live
Пользователи из материкового Китая могут заменить
ghcr.io на ghcr.nju.edu.cn, чтобы ускорить загрузку. Но НЕ указывайте ghcr.nju.edu.cn напрямую в настройках окружения Toolkit. Там следует использовать только ghcr.io.TEX_LIVE_DOCKER_IMAGE(обязательная) — образ TeX Live по умолчанию, используемый для компиляции новых проектов. Этот образ должен входить вALL_TEX_LIVE_DOCKER_IMAGES.ALL_TEX_LIVE_DOCKER_IMAGE_NAMES(обязательная) — список понятных названий образов через запятую, используемых в вариантах выбора в интерфейсе.ALL_TEX_LIVE_DOCKER_IMAGES(обязательная) — список используемых образов TeX Live через запятую. Если для развёртывания используется Overleaf Toolkit, эти образы будут скачаны или обновлены. Чтобы пропустить скачивание, задайтеSIBLING_CONTAINERS_PULL=falseвconfig/overleaf.rc.
bin/up Toolkit автоматически скачивает все образы, перечисленные в ALL_TEX_LIVE_DOCKER_IMAGES.
Ниже приведён пример, в котором для новых проектов по умолчанию используется TeX Live 2026, а для старых проектов сохраняется 2025.
- Минимальная установка
- Полная установка
Следующая конфигурация устанавливает полные Docker-образы TeX Live за 2025–2026 годы. Перед использованием этой конфигурации рекомендуем иметь не менее 64 ГБ свободного места.
config/variables.env
Настоятельно рекомендуется задать как минимум 2 образа texlive-full. Подробнее о причинах см. #known-issues
Доступные образы TeX Live
Ниже приведена серия образов TeX Live, специально оптимизированных для Overleaf; их также можно указывать вTEX_LIVE_DOCKER_IMAGE и ALL_TEX_LIVE_DOCKER_IMAGES:
ghcr.io/ayaka-notes/texlive-full:2026.1(также тегlatest)ghcr.io/ayaka-notes/texlive-full:2025.1ghcr.io/ayaka-notes/texlive-full:2024.1ghcr.io/ayaka-notes/texlive-full:2023.1ghcr.io/ayaka-notes/texlive-full:2022.1ghcr.io/ayaka-notes/texlive-full:2021.1ghcr.io/ayaka-notes/texlive-full:2020.1
Можно ли использовать другой реестр образов
Некоторые спрашивают: можно ли заменить ghcr.io другим зеркалом или переключить texlive на другой образ из Docker Hub?
Нет, мы не рекомендуем этого делать, поскольку настройка относительно сложна. Если вы скачиваете образы с зеркала, можно переименовать образ в ghcr.io/ayaka-notes/texlive-full.
Но если вы действительно хотите использовать собственный реестр образов, добавьте:
config/variables.env
your-repo, например:
hub.your.com/your-repo/texlive-full:2025.1hub.your.com/your-repo/texlive-full:2024.1
sandboxed-compiles/index.mjs
Автоматическая синхронизация образов TeX Live
Чтобы не обновлять экземпляр вручную с помощьюbin/up каждый раз, можно автоматизировать обновление образов TeX Live. См. updating-tex-live-full-images-automatically.md.
Известные проблемы
Вот реальный случай из сообщества Overleaf:ИспользуяИз-за некоторых технических ограничений, если вы настроили только один Docker-образ TeXLive, например6.0.1-ext-v3.3, я задал вvariables.envследующие настройки:Сtexlive/texlive:latest-fullвсё работает. Однако я скачал другой образ texlivedanteev/texlive:2025-10-15и изменил обе переменные на имя нового образа, но это не работает:В логах я вижу следующее:Похоже, что обновлённые настройки вvariables.envне применяются. Компиляция по-прежнему пытается запустить образtexlive/texlive:latest-full, а не новый образ. Я пробовал перезагрузку, удаление контейнеров и повторный запуск, но проблема остаётся. Есть ли решение?
texlive-fullA:latest
texlive-fullB:latest, то обнаружите, что ваши пользователи не могут скомпилировать ни один проект.

