Skip to main content
Integrace s Gitem spouští samostatnou službu git-bridge. Uživatelé klonují a pushují přes ${OVERLEAF_SITE_URL}/git/<project id>; pod Ayakaleaf Pro tyto požadavky předává službě git-bridge a git-bridge se zpět do podu obrací pro obsah a historii projektu. Její zapnutí zároveň povoluje MCP server a vyžaduje ji synchronizace s GitHubem, GitLabem, Gitea a Dropboxem. Tato stránka rozšiřuje instalaci s jednou replikou ze stránky Použití Kubernetes. Pro více replik viz Horizontální škálování.
1

Nasaďte git-bridge

45-git-bridge.yaml
10.96.100.80 musí být volná adresa v rámci service CIDR vašeho clusteru (výchozí hodnota u kubeadm je 10.96.0.0/12).
2

Nasměrujte na něj Ayakaleaf Pro

Přidejte do 30-config.yaml:
30-config.yaml (additions)
3

Naklonujte projekt

Vytvořte ověřovací token Gitu v Account Settings a poté:
Jako uživatelské jméno použijte git a jako heslo token.

Proč manifest vypadá takto

  • Pevná ClusterIP jako GIT_BRIDGE_HOST. Nginx uvnitř image Ayakaleaf Pro předává /git/ s resolverem nastaveným na 127.0.0.11, vestavěné DNS Dockeru. Kubernetes tam žádný DNS server nemá, takže název hostitele jako git-bridge selže s 502 a hláškou „git-bridge could not be resolved“ v /var/log/nginx/error.log. IP adresa žádné vyhledávání nepotřebuje.
  • overleaf-internal. git-bridge potřebuje porty 3000 (API služby web) a 3100 (historie) podu Ayakaleaf Pro. Samostatná Service typu ClusterIP je drží uvnitř clusteru; jejich přidání do Service typu NodePort by je zveřejnilo na každém uzlu.
  • enableServiceLinks: false. Kvůli Service git-bridge by Kubernetes přidal do podu GIT_BRIDGE_PORT=tcp://10.96.100.80:8000; git-bridge čte GIT_BRIDGE_PORT jako port, na kterém naslouchá, a skončí s MalformedJsonException ... path $.port.
  • Jedna replika s vlastním svazkem. git-bridge uchovává na disku jeden repozitář git pro každý klonovaný projekt a nesmí běžet dvakrát. Zálohujte jeho svazek.

Otestováno na Kubernetes

Na Kubernetes 1.37 se třemi replikami za HAProxy a git-bridge jako sourozencem overleaf-0 procházejí naše end-to-end testy pro integraci s Gitem (19 případů), a to i s git-bridge přesunutým na port 8001, aby nginx musel použít GIT_BRIDGE_HOST a GIT_BRIDGE_PORT: tokeny Gitu v nastavení účtu, příkaz pro klonování v editoru, clone, push a pull, binární soubory a složky, přejmenování a mazání, odmítnutí zastaralých pushů, přístup podle role (pozvaní editoři a editoři přes odkaz smějí pushovat, čtenáři a recenzenti smějí pouze klonovat, uživatelé bez přístupu jsou odmítnuti), odmítnutí špatných a smazaných tokenů, interní cesty git-bridge skryté za nginx a pozastavené účty. Samotné ověřovací tokeny Gitu (generování, výpis, limit na uživatele, mazání, vypršení platnosti, kontrola, o kterou git-bridge žádá službu web, a tokeny pozastavených a smazaných účtů) procházejí na jedné replice (16 případů).

Otázky a odpovědi

Odpověď: Zkontrolujte GIT_BRIDGE_HOST: musí to být IP adresa Service git-bridge, nikoli její název, viz výše. Příčinu ukáže kubectl -n overleaf exec deploy/overleaf -- tail /var/log/nginx/error.log.
Naposledy změněno 2. listopadu 2026