Skip to main content

Предварительные требования

Overleaf — типичный проект с открытым исходным кодом на микросервисной архитектуре, все сервисы которого работают в Docker. Для настройки среды разработки Overleaf вам понадобится мощный сервер; рекомендуется конфигурация не менее 8 ядер и 16 ГБ ОЗУ, так как одновременно потребуется запускать более 20 контейнеров.
Поскольку серверы с 8 и более ядрами CPU обычно стоят дорого, настоятельно рекомендуется вести разработку на локальном компьютере.
Кроме того, мы полагаем, что как разработчик вы уже знакомы с установкой Docker. Мы настоятельно рекомендуем использовать для разработки актуальную стабильную версию Ubuntu LTS (например, Ubuntu 24.04 в 2025–2026 годах) и последнюю версию Docker — это снижает вероятность неожиданных ошибок. Итак, вам понадобятся:
  • Мощный сервер или настольный компьютер для разработки
  • Актуальная стабильная версия Ubuntu LTS (например, Ubuntu 24.04)
  • Среда Docker и Git

Руководство по настройке

Здесь в качестве примера мы используем overleaf-cep, чтобы показать, как настроить среду разработки Overleaf.
1

Получите исходный код

Прежде всего клонируйте репозиторий:
bash
2

Синхронизируйте package-lock.json

Поскольку Overleaf разрабатывается во внутреннем репозитории, файл package-lock.json с большой вероятностью может оказаться рассинхронизированным из-за особенностей процесса разработки. Чтобы синхронизировать его, выполните следующую команду (если у вас есть локальная среда Node.js):
bash
Если Node.js не установлен, не беспокойтесь: ту же команду можно выполнить напрямую через docker. Запускайте её из корня репозитория Overleaf:
bash
3

Соберите образ для разработки

Overleaf предоставляет специальный каталог /develop для хранения скриптов разработки. Просто соберите сервисы:
bash
Если Docker не хватает оперативной памяти при параллельной сборке сервисов, создайте в этом каталоге файл .env, содержащий COMPOSE_PARALLEL_LIMIT=1.
4

Запустите все микросервисы

Затем запустите сервисы:
bash
После запуска сервисов откройте http://localhost/launchpad, чтобы создать первую учётную запись администратора.
Необходимо выполнить bin/up перед запуском команды bin/dev. В противном случае вы можете столкнуться с рядом проблем с правами доступа.
По умолчанию права администратора недоступны. Добавьте следующую строку в develop/dev.env, после чего вы получите доступ к панели администратора.

TeX Live

Для компиляции PDF необходимо собрать образ TeX Live, который будет выполнять компиляцию внутри Docker:
Для компиляции на хосте macOS может потребоваться переопределить путь к сокету Docker, создав в этом каталоге файл .env, содержащий DOCKER_SOCKET_PATH=/var/run/docker.sock.raw Также вы можете использовать ayaka-notes/texlive-full; можно взять тег base — это минимальная версия TeX Live.

Разработка

Чтобы не выполнять bin/build && bin/up после каждого изменения кода, можно запустить Overleaf Community Edition в режиме разработки, в котором сервисы автоматически обновляются при изменении кода. Для этого используйте прилагаемый скрипт bin/dev:
Он запустит все сервисы с помощью node --watch, который автоматически отслеживает код и при необходимости перезапускает сервисы. Для повышения производительности можно запустить в режиме разработки только часть сервисов, передав скрипту bin/dev их список через пробел:
Запуск сервиса web в режиме разработки обновляет сервис web только при изменении бэкенд-кода. Чтобы автоматически обновлялся и фронтенд-код, также запустите в режиме разработки сервис webpack.
Если сервисы не указаны, все сервисы будут запущены в режиме разработки.

Отладка

При запуске в режиме разработки большинство сервисов открывают отладочный порт, к которому можно подключить отладчик, например инспектор в Chrome Dev Tools или отладчик, встроенный в IDE. В следующей таблице показан порт, открытый на хост-машине для каждого сервиса: Чтобы подключиться к сервису с помощью удалённой отладки Chrome, перейдите на chrome://inspect/ и убедитесь, что флажок Discover network targets установлен. Затем нажмите Configure… и добавьте запись localhost:[service port] для каждого сервиса, к которому хотите подключить отладчик. После добавления записи сервис появится как Remote Target, который можно инспектировать и отлаживать.

Журналирование

В среде разработки Overleaf предоставляет скрипт bin/logs, однако для него нужно установить некоторые зависимости:
Или можно выполнить напрямую:

Другие инструменты

Завершив все шаги, вы можете обратиться к следующему разделу, чтобы добавить инструменты отладки в вашу среду разработки Overleaf.
Последнее изменение 5 октября 2026 г.