Skip to main content
Git-integrationen kör den separata tjänsten git-bridge. Användare klonar och pushar via ${OVERLEAF_SITE_URL}/git/<project id>; Ayakaleaf Pro-podden vidarebefordrar dessa förfrågningar till git-bridge, och git-bridge anropar podden för projektinnehåll och historik. Att aktivera den aktiverar även MCP-servern, och den krävs för GitHub-, GitLab-, Gitea- och Dropbox-synkronisering. Den här sidan bygger vidare på installationen med en replik från Använda Kubernetes. För flera repliker, se Horisontell skalning.
1

Driftsätt git-bridge

45-git-bridge.yaml
10.96.100.80 måste vara en ledig adress inom klustrets tjänste-CIDR (kubeadms standard är 10.96.0.0/12).
2

Peka Ayakaleaf Pro mot den

Lägg till i 30-config.yaml:
30-config.yaml (additions)
3

Klona ett projekt

Skapa en Git-autentiseringstoken under Account Settings och kör sedan:
Använd git som användarnamn och token som lösenord.

Varför manifestet ser ut så här

  • En fast ClusterIP som GIT_BRIDGE_HOST. nginx i Ayakaleaf Pro-avbildningen vidarebefordrar /git/ med en resolver inställd på 127.0.0.11, Dockers inbyggda DNS. Kubernetes har ingen DNS-server där, så ett värdnamn som git-bridge misslyckas med 502 och ”git-bridge could not be resolved” i /var/log/nginx/error.log. En IP-adress kräver ingen uppslagning.
  • overleaf-internal. git-bridge behöver portarna 3000 (web-API) och 3100 (historik) i Ayakaleaf Pro-podden. En separat ClusterIP-Service håller dem inom klustret; att lägga till dem i NodePort-Service skulle publicera dem på varje nod.
  • enableServiceLinks: false. Service git-bridge skulle få Kubernetes att lägga till GIT_BRIDGE_PORT=tcp://10.96.100.80:8000 i podden; git-bridge läser GIT_BRIDGE_PORT som sin lyssningsport och stoppar med MalformedJsonException ... path $.port.
  • En replik med egen volym. git-bridge sparar ett git-repositorium per klonat projekt på disk och får inte köras i två exemplar. Säkerhetskopiera dess volym.

Testat på Kubernetes

På Kubernetes 1.37 med tre repliker bakom HAProxy och git-bridge som syskon till overleaf-0 klarar våra end-to-end-tester för Git-integrationen sig (19 fall), även med git-bridge flyttad till port 8001 så att nginx måste använda GIT_BRIDGE_HOST och GIT_BRIDGE_PORT: Git-tokens i kontoinställningarna, klonkommandot i redigeraren, clone, push och pull, binära filer och mappar, namnbyten och borttagningar, inaktuella push som nekas, åtkomst efter roll (inbjudna redigerare och redigerare via länk får pusha, läsare och granskare får bara klona, användare utan åtkomst nekas), felaktiga och borttagna tokens som nekas, git-bridges interna rutter som hålls bakom nginx, samt avstängda konton. Själva Git-autentiseringstokens (generering, listning, gränsen per användare, borttagning, utgång, kontrollen som git-bridge ber web om, samt tokens för avstängda och raderade konton) klarar sig på en replik (16 fall).

Frågor och svar

Svar: Kontrollera GIT_BRIDGE_HOST: det måste vara IP-adressen till git-bridge-Service, inte dess namn, se ovan. kubectl -n overleaf exec deploy/overleaf -- tail /var/log/nginx/error.log visar orsaken.
Senast ändrad 2 november 2026