Skip to main content
Интеграция с Git запускает отдельный сервис git-bridge. Пользователи клонируют и отправляют изменения через ${OVERLEAF_SITE_URL}/git/<project id>; под Ayakaleaf Pro перенаправляет эти запросы в git-bridge, а git-bridge обращается обратно к поду за содержимым и историей проекта. Её включение также активирует MCP-сервер и необходимо для синхронизации с GitHub, GitLab, Gitea и Dropbox. Эта страница дополняет установку с одной репликой из раздела Использование Kubernetes. О нескольких репликах см. Горизонтальное масштабирование.
1

Разверните git-bridge

45-git-bridge.yaml
10.96.100.80 должен быть свободным адресом в CIDR сервисов вашего кластера (по умолчанию в kubeadm — 10.96.0.0/12).
2

Укажите его в Ayakaleaf Pro

Добавьте в 30-config.yaml:
30-config.yaml (additions)
3

Клонируйте проект

Создайте токен аутентификации Git в Account Settings, затем выполните:
Используйте git в качестве имени пользователя и токен в качестве пароля.

Почему манифест выглядит именно так

  • Фиксированный ClusterIP в качестве GIT_BRIDGE_HOST. nginx внутри образа Ayakaleaf Pro перенаправляет /git/ с резолвером, указывающим на 127.0.0.11 — встроенный DNS Docker. В Kubernetes по этому адресу нет DNS-сервера, поэтому имя хоста вроде git-bridge приводит к ошибке 502 и сообщению «git-bridge could not be resolved» в /var/log/nginx/error.log. IP-адресу разрешение имён не требуется.
  • overleaf-internal. git-bridge нужны порты 3000 (API web) и 3100 (история) пода Ayakaleaf Pro. Отдельный Service типа ClusterIP оставляет их внутри кластера; добавление их в Service типа NodePort опубликовало бы их на каждом узле.
  • enableServiceLinks: false. Из-за Service git-bridge Kubernetes добавил бы в под GIT_BRIDGE_PORT=tcp://10.96.100.80:8000; git-bridge считывает GIT_BRIDGE_PORT как порт для прослушивания и останавливается с MalformedJsonException ... path $.port.
  • Одна реплика с собственным томом. git-bridge хранит на диске git-репозиторий для каждого клонированного проекта и не должен запускаться дважды. Делайте резервные копии его тома.

Проверено на Kubernetes

На Kubernetes 1.37 с тремя репликами за HAProxy и git-bridge в паре с overleaf-0 наши сквозные тесты интеграции с Git проходят (19 сценариев), в том числе с git-bridge, перенесённым на порт 8001, чтобы nginx был вынужден использовать GIT_BRIDGE_HOST и GIT_BRIDGE_PORT: токены Git в настройках учётной записи, команда клонирования в редакторе, clone, push и pull, бинарные файлы и папки, переименования и удаления, отклонение push с устаревшими данными, доступ по ролям (приглашённые редакторы и редакторы по ссылке могут выполнять push, читатели и рецензенты могут только клонировать, пользователи без доступа отклоняются), отклонение неверных и удалённых токенов, внутренние маршруты git-bridge, скрытые за nginx, и заблокированные учётные записи. Сами токены аутентификации Git (создание, вывод списка, ограничение на пользователя, удаление, истечение срока действия, проверка, которую git-bridge запрашивает у web, а также токены заблокированных и удалённых учётных записей) проходят тесты на одной реплике (16 сценариев).

Вопросы и ответы

Ответ: Проверьте GIT_BRIDGE_HOST: это должен быть IP-адрес Service git-bridge, а не его имя, см. выше. Причину показывает kubectl -n overleaf exec deploy/overleaf -- tail /var/log/nginx/error.log.
Последнее изменение 2 ноября 2026 г.