Skip to main content
По мере развития Overleaf иногда требуется изменять схему данных в базе данных; для автоматизации этого процесса используются скрипты миграции. Сначала они выполняются на overleaf.com — крупнейшем экземпляре Overleaf в мире, — поэтому большинство возможных ситуаций уже встречалось, однако мы не даём никаких гарантий относительно ваших данных. Обязательно создайте согласованную резервную копию данных перед обновлением экземпляра.
При переходе на новый Docker-образ все миграции, которые ещё не были выполнены, запускаются автоматически. Это может занять некоторое время в зависимости от объёма ваших данных; следить за ходом выполнения можно по журналам. Подробнее см. в документации Logging.

Хранение данных

Overleaf Community Edition и Server Pro хранят свои данные в трёх разных местах:
  • База данных MongoDB: здесь хранятся данные пользователей и проектов.
  • Redis: служит высокопроизводительным кешем для оперативных данных и в основном хранит информацию, связанную с редактированием проектов и совместной работой.
  • Файловая система Overleaf: хранит нередактируемые файлы проектов (включая изображения), а также служит временным дисковым кешем при компиляции проектов.
Это может быть ~/sharelatex_data или ~/overleaf_data — в зависимости от того, когда был настроен ваш экземпляр.
Для файлов проектов и данных полной истории проектов мы также поддерживаем S3-совместимые хранилища.
Подробнее о структуре каталогов на диске см. в разделе «Подробно о каталогах».

Создание согласованной резервной копии

При создании согласованной резервной копии необходимо включить три хранилища:
  • MongoDB
  • Redis
  • Данные файловой системы Overleaf
Чтобы получить согласованную резервную копию, обязательно нужно запретить пользователям создавать новые данные во время резервного копирования. Поэтому рекомендуем запланировать окно обслуживания, в течение которого пользователи не смогут получить доступ к экземпляру или редактировать свои проекты. Перед началом резервного копирования необходимо перевести экземпляр в автономный режим. Начиная с Server Pro 3.5.0 процесс остановки автоматически закрывает сайт и отключает пользователей. Чтобы остановить экземпляр, выполните bin/docker-compose stop sharelatex, если вы используете развертывание через Toolkit, или docker compose stop sharelatex, если используете Docker Compose. После остановки контейнера sharelatex можно начинать резервное копирование. После успешного завершения резервного копирования необходимо запустить контейнер sharelatex. Для этого выполните bin/docker-compose start sharelatex, если вы используете развертывание через Toolkit, или docker compose start sharelatex, если используете Docker Compose.
  • Резервные копии следует хранить на сервере, отличном от того, на котором работает ваш экземпляр Overleaf, а в идеале — вообще в другом месте.
  • Репликация баз данных на несколько экземпляров MongoDB может обеспечить некоторую избыточность, но не защищает от повреждения данных.
  • Тестирование резервных копий — лучший способ убедиться, что они полны и работоспособны.

MongoDB

В комплекте с MongoDB поставляется инструмент командной строки mongodump, с помощью которого можно создать резервную копию данных пользователей и проектов, хранящихся в базе данных.

Данные файловой системы Overleaf

Для развертываний через Toolkit путь, по которому хранятся нередактируемые файлы, задаётся в config/overleaf.rc переменной окружения OVERLEAF_DATA_PATH, однако в зависимости от того, когда был создан ваш экземпляр, это может быть data/sharelatex. Для создания полной резервной копии необходимо рекурсивно скопировать этот каталог с помощью такого инструмента, как rsync.

Redis

Redis хранит пользовательские сеансы и ожидающие обновления документов до их сброса в MongoDB. Рекомендуемая конфигурация сохранения данных Redis — режим Append Only File (AOF). У пользователей Toolkit режим AOF включён по умолчанию для новых установок; существующие пользователи могут найти дополнительную информацию о включении AOF здесь. Если вы решите продолжать использовать снимки RDB вместе с AOF, можно скопировать файл RDB в безопасное место в качестве резервной копии.

Перенос данных между серверами

В идеале в новом экземпляре ещё не должно быть ценных данных. У нас нет процедуры слияния данных разных экземпляров. Если в новом экземпляре ещё нет данных, можно выполнить следующие шаги. В общих чертах мы создаём tar-архив томов mongo, redis и overleaf, копируем его на новый сервер и распаковываем там.

Toolkit

Docker Compose

В зависимости от вашего файла docker-compose.yml может потребоваться скорректировать пути томов mongo, redis и overleaf.
При запуске от имени пользователя root (или через sudo) tar сохраняет владельца/группу файлов и права доступа, что критически важно при восстановлении из резервной копии.

Подробно о каталогах

У следующих каталогов есть дополнительные пометки:
  • (b) включать в резервные копии, лучше всего при остановленном экземпляре для обеспечения согласованности
  • (d) можно удалить
  • (e) временные файлы, можно удалить при остановленном экземпляре
  1. ~/mongo_data (b)
    • каталог данных mongodb
  2. ~/redis_data (b)
    • каталог данных базы redis
  3. ~/overleaf_data
    1. bin
      1. synctex (d)
        • не используется в последнем выпуске; ранее использовался собственный бинарный файл synctex (synctex применяется для сопоставления исходного кода между файлами .tex и pdf)
    2. data
      1. cache (e)
        • кеш бинарных файлов для компиляции
      2. compiles (e)
        • здесь выполняется компиляция latex
      3. db.sqlite (d)
        • не используется в последнем выпуске; ранее хранил сведения о кеше clsi (теперь они перенесены в простые структуры в памяти либо определяются сканированием диска)
      4. db.sqlite-wal (d)
        • не используется в последнем выпуске, см. db.sqlite
      5. output (e)
        • хранилище результатов компиляции latex для отдачи клиенту
      6. template_files (b)
        • изображения предпросмотра системы шаблонов (только Server Pro)
      7. user_files (b)
        • бинарные файлы проектов
      8. history (b)
        • файлы полной истории проектов
    3. tmp
      1. dumpFolder (e)
        • временные файлы, возникающие при обработке zip-файлов
      2. uploads (e)
        • буферизация загружаемых файлов (загрузка бинарных файлов / создание нового проекта из zip)
      3. projectHistories (e)
        • временные файлы для миграций полной истории проектов
Последнее изменение 5 октября 2026 г.