Skip to main content
Die Git-Integration betreibt den separaten git-bridge-Dienst. Benutzer klonen und pushen über ${OVERLEAF_SITE_URL}/git/<project id>; der Ayakaleaf-Pro-Pod leitet diese Anfragen an git-bridge weiter, und git-bridge ruft für Projektinhalte und Verlauf den Pod zurück. Das Aktivieren schaltet außerdem den MCP-Server frei und ist für die GitHub-, GitLab-, Gitea- und Dropbox-Synchronisierung erforderlich. Diese Seite erweitert die Installation mit einem Replikat aus Kubernetes verwenden. Für mehrere Replikate siehe Horizontale Skalierung.
1

git-bridge bereitstellen

45-git-bridge.yaml
10.96.100.80 muss eine freie Adresse innerhalb des Service-CIDR Ihres Clusters sein (der Standard von kubeadm ist 10.96.0.0/12).
2

Ayakaleaf Pro darauf verweisen

Fügen Sie Folgendes zu 30-config.yaml hinzu:
30-config.yaml (additions)
3

Ein Projekt klonen

Erstellen Sie in den Account Settings ein Git-Authentifizierungstoken und führen Sie dann Folgendes aus:
Verwenden Sie git als Benutzernamen und das Token als Passwort.

Warum das Manifest so aussieht

  • Eine feste ClusterIP als GIT_BRIDGE_HOST. Der nginx im Ayakaleaf-Pro-Image leitet /git/ mit einem auf 127.0.0.11 gesetzten Resolver weiter, dem integrierten DNS von Docker. Kubernetes hat dort keinen DNS-Server, daher schlägt ein Hostname wie git-bridge mit 502 und “git-bridge could not be resolved” in /var/log/nginx/error.log fehl. Eine IP-Adresse erfordert keine Namensauflösung.
  • overleaf-internal. git-bridge benötigt die Ports 3000 (web-API) und 3100 (Verlauf) des Ayakaleaf-Pro-Pods. Ein separater ClusterIP-Service hält sie innerhalb des Clusters; würden sie zum NodePort-Service hinzugefügt, wären sie auf jedem Knoten veröffentlicht.
  • enableServiceLinks: false. Der Service git-bridge würde Kubernetes veranlassen, GIT_BRIDGE_PORT=tcp://10.96.100.80:8000 zum Pod hinzuzufügen; git-bridge liest GIT_BRIDGE_PORT als seinen Listening-Port und bricht mit MalformedJsonException ... path $.port ab.
  • Ein Replikat mit eigenem Volume. git-bridge speichert ein Git-Repository pro geklontem Projekt auf der Festplatte und darf nicht doppelt laufen. Sichern Sie sein Volume.

Getestet auf Kubernetes

Auf Kubernetes 1.37 mit drei Replikaten hinter HAProxy und git-bridge als Sibling von overleaf-0 bestehen unsere End-to-End-Tests für die Git-Integration (19 Fälle), auch wenn git-bridge auf Port 8001 verlegt ist, sodass nginx GIT_BRIDGE_HOST und GIT_BRIDGE_PORT verwenden muss: Git-Tokens in den Kontoeinstellungen, der Klon-Befehl im Editor, Clone, Push und Pull, Binärdateien und Ordner, Umbenennungen und Löschungen, abgelehnte veraltete Pushes, Zugriff nach Rolle (eingeladene Bearbeiter und Bearbeiter über den Link dürfen pushen, Betrachter und Reviewer dürfen nur klonen, Benutzer ohne Zugriff werden abgelehnt), abgelehnte falsche und gelöschte Tokens, hinter nginx gehaltene interne Routen von git-bridge sowie gesperrte Konten. Die Git-Authentifizierungstokens selbst (Erzeugen, Auflisten, das Limit pro Benutzer, Löschen, Ablauf, die Prüfung, die git-bridge bei web anfragt, sowie Tokens gesperrter und gelöschter Konten) bestehen auf einem Replikat (16 Fälle).

Q&A

Antwort: Prüfen Sie GIT_BRIDGE_HOST: Es muss die IP-Adresse des git-bridge-Service sein, nicht sein Name, siehe oben. kubectl -n overleaf exec deploy/overleaf -- tail /var/log/nginx/error.log zeigt den Grund an.
Zuletzt geändert am 2. November 2026