Skip to main content
Git-integrasjon kjører den separate git-bridge-tjenesten. Brukere kloner og pusher via ${OVERLEAF_SITE_URL}/git/<project id>; Ayakaleaf Pro-poden videresender disse forespørslene til git-bridge, og git-bridge kaller tilbake til poden for prosjektinnhold og historikk. Når den slås på, aktiveres også MCP-serveren, og den kreves av GitHub-, GitLab-, Gitea- og Dropbox-synkronisering. Denne siden utvider installasjonen med én replika fra Bruke Kubernetes. For flere replikaer, se Horisontal skalering.
1

Distribuer git-bridge

45-git-bridge.yaml
10.96.100.80 må være en ledig adresse innenfor klyngens tjeneste-CIDR (standard for kubeadm er 10.96.0.0/12).
2

Pek Ayakaleaf Pro mot den

Legg til i 30-config.yaml:
30-config.yaml (additions)
3

Klon et prosjekt

Opprett et Git-autentiseringstoken i Account Settings, og deretter:
Bruk git som brukernavn og tokenet som passord.

Hvorfor manifestet ser slik ut

  • En fast ClusterIP som GIT_BRIDGE_HOST. nginx i Ayakaleaf Pro-imaget videresender /git/ med en resolver satt til 127.0.0.11, Dockers innebygde DNS. Kubernetes har ingen DNS-server der, så et vertsnavn som git-bridge feiler med 502 og «git-bridge could not be resolved» i /var/log/nginx/error.log. En IP-adresse krever ikke noe oppslag.
  • overleaf-internal. git-bridge trenger portene 3000 (web-API) og 3100 (historikk) i Ayakaleaf Pro-poden. En egen ClusterIP-Service holder dem inne i klyngen; å legge dem til i NodePort-Service-en ville publisere dem på hver node.
  • enableServiceLinks: false. Service-en git-bridge ville få Kubernetes til å legge GIT_BRIDGE_PORT=tcp://10.96.100.80:8000 til poden; git-bridge leser GIT_BRIDGE_PORT som lytteporten sin og stopper med MalformedJsonException ... path $.port.
  • Én replika med eget volum. git-bridge holder et git-repositorium per klonet prosjekt på disk og må ikke kjøre to ganger. Ta sikkerhetskopi av volumet.

Testet på Kubernetes

På Kubernetes 1.37 med tre replikaer bak HAProxy og git-bridge ved siden av overleaf-0, består ende-til-ende-testene våre for Git-integrasjonen (19 tilfeller), også med git-bridge flyttet til port 8001 slik at nginx må bruke GIT_BRIDGE_HOST og GIT_BRIDGE_PORT: Git-tokener i kontoinnstillingene, klonekommandoen i editoren, kloning, push og pull, binærfiler og mapper, omdøpinger og slettinger, utdaterte push-forsøk avvist, tilgang etter rolle (inviterte redaktører og redaktører via lenken kan pushe, lesere og kontrollører kan bare klone, brukere uten tilgang avvises), feil og slettede tokener avvist, git-bridges interne ruter holdt bak nginx, og suspenderte kontoer. Selve Git-autentiseringstokenene (generering, listing, grensen per bruker, sletting, utløp, kontrollen git-bridge ber web om, og tokener for suspenderte og slettede kontoer) består på én replika (16 tilfeller).

Q&A

Svar: Sjekk GIT_BRIDGE_HOST: den må være IP-adressen til git-bridge-Service-en, ikke navnet, se ovenfor. kubectl -n overleaf exec deploy/overleaf -- tail /var/log/nginx/error.log viser årsaken.
Sist endret 2. november 2026