Skip to main content
A integração com Git executa o serviço separado git-bridge. Os usuários clonam e fazem push por meio de ${OVERLEAF_SITE_URL}/git/<project id>; o pod do Ayakaleaf Pro encaminha essas requisições ao git-bridge, e o git-bridge chama de volta o pod para obter o conteúdo e o histórico do projeto. Ativá-la também habilita o servidor MCP e é um requisito das sincronizações com GitHub, GitLab, Gitea e Dropbox. Esta página estende a instalação com uma réplica de Usando o Kubernetes. Para várias réplicas, consulte Escalonamento horizontal.
1

Implante o git-bridge

45-git-bridge.yaml
10.96.100.80 deve ser um endereço livre dentro do CIDR de serviços do seu cluster (o padrão do kubeadm é 10.96.0.0/12).
2

Aponte o Ayakaleaf Pro para ele

Adicione a 30-config.yaml:
30-config.yaml (additions)
3

Clone um projeto

Crie um token de autenticação Git em Account Settings e, em seguida:
Use git como nome de usuário e o token como senha.

Por que o manifesto é assim

  • Um ClusterIP fixo como GIT_BRIDGE_HOST. O nginx dentro da imagem do Ayakaleaf Pro encaminha /git/ com um resolver definido como 127.0.0.11, o DNS embutido do Docker. O Kubernetes não tem um servidor DNS nesse endereço, então um nome de host como git-bridge falha com 502 e “git-bridge could not be resolved” em /var/log/nginx/error.log. Um endereço IP não precisa de resolução.
  • overleaf-internal. O git-bridge precisa das portas 3000 (API do web) e 3100 (histórico) do pod do Ayakaleaf Pro. Um Service ClusterIP separado as mantém dentro do cluster; adicioná-las ao Service NodePort as publicaria em todos os nós.
  • enableServiceLinks: false. O Service git-bridge faria o Kubernetes adicionar GIT_BRIDGE_PORT=tcp://10.96.100.80:8000 ao pod; o git-bridge lê GIT_BRIDGE_PORT como sua porta de escuta e para com MalformedJsonException ... path $.port.
  • Uma réplica com seu próprio volume. O git-bridge mantém em disco um repositório git por projeto clonado e não deve ser executado duas vezes. Faça backup do volume dele.

Testado no Kubernetes

No Kubernetes 1.37 com três réplicas atrás do HAProxy e o git-bridge ao lado de overleaf-0, nossos testes de ponta a ponta para a integração com Git passam (19 casos), também com o git-bridge movido para a porta 8001, de modo que o nginx precise usar GIT_BRIDGE_HOST e GIT_BRIDGE_PORT: tokens Git nas configurações da conta, o comando de clone no editor, clone, push e pull, arquivos binários e pastas, renomeações e exclusões, pushes desatualizados recusados, acesso por função (editores convidados e editores via link podem fazer push, leitores e revisores podem apenas clonar, usuários sem acesso são recusados), tokens incorretos e excluídos recusados, rotas internas do git-bridge mantidas atrás do nginx e contas suspensas. Os próprios tokens de autenticação Git (geração, listagem, limite por usuário, exclusão, expiração, a verificação que o git-bridge solicita ao web e tokens de contas suspensas e excluídas) passam em uma réplica (16 casos).

Q&A

Resposta: Verifique GIT_BRIDGE_HOST: ele deve ser o endereço IP do Service do git-bridge, não o nome dele; veja acima. kubectl -n overleaf exec deploy/overleaf -- tail /var/log/nginx/error.log mostra o motivo.
Última modificação em 2 de novembro de 2026