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/ з resolver, налаштованим на 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 р.