Skip to main content
La integración con Git ejecuta el servicio independiente git-bridge. Los usuarios clonan y hacen push a través de ${OVERLEAF_SITE_URL}/git/<project id>; el pod de Ayakaleaf Pro reenvía esas peticiones a git-bridge, y git-bridge vuelve a llamar al pod para obtener el contenido y el historial del proyecto. Al activarla también se habilita el servidor MCP, y es necesaria para la sincronización con GitHub, GitLab, Gitea y Dropbox. Esta página amplía la instalación con una sola réplica de Usar Kubernetes. Para varias réplicas, consulta Escalado horizontal.
1

Despliega git-bridge

45-git-bridge.yaml
10.96.100.80 debe ser una dirección libre dentro del CIDR de servicios de tu clúster (el valor por defecto de kubeadm es 10.96.0.0/12).
2

Haz que Ayakaleaf Pro apunte a él

Añade a 30-config.yaml:
30-config.yaml (additions)
3

Clona un proyecto

Crea un token de autenticación de Git en Account Settings y, después:
Usa git como nombre de usuario y el token como contraseña.

Por qué el manifiesto es así

  • Una ClusterIP fija como GIT_BRIDGE_HOST. El nginx de la imagen de Ayakaleaf Pro reenvía /git/ con un resolver configurado en 127.0.0.11, el DNS integrado de Docker. Kubernetes no tiene ningún servidor DNS ahí, así que un nombre de host como git-bridge falla con 502 y “git-bridge could not be resolved” en /var/log/nginx/error.log. Una dirección IP no necesita resolución.
  • overleaf-internal. git-bridge necesita los puertos 3000 (API de web) y 3100 (historial) del pod de Ayakaleaf Pro. Un Service ClusterIP independiente los mantiene dentro del clúster; añadirlos al Service NodePort los publicaría en todos los nodos.
  • enableServiceLinks: false. El Service git-bridge haría que Kubernetes añadiera GIT_BRIDGE_PORT=tcp://10.96.100.80:8000 al pod; git-bridge lee GIT_BRIDGE_PORT como su puerto de escucha y se detiene con MalformedJsonException ... path $.port.
  • Una réplica con su propio volumen. git-bridge guarda en disco un repositorio git por cada proyecto clonado y no debe ejecutarse dos veces. Haz copias de seguridad de su volumen.

Probado en Kubernetes

En Kubernetes 1.37 con tres réplicas detrás de HAProxy y git-bridge como contenedor hermano de overleaf-0, nuestras pruebas de extremo a extremo para la integración con Git se superan (19 casos), también con git-bridge movido al puerto 8001 para que nginx tenga que usar GIT_BRIDGE_HOST y GIT_BRIDGE_PORT: los tokens de Git en la configuración de la cuenta, el comando de clonación en el editor, clone, push y pull, archivos binarios y carpetas, cambios de nombre y eliminaciones, el rechazo de pushes desactualizados, el acceso por rol (los editores invitados y los editores mediante enlace pueden hacer push, los lectores y revisores solo pueden clonar, los usuarios sin acceso son rechazados), el rechazo de tokens incorrectos y eliminados, las rutas internas de git-bridge protegidas detrás de nginx, y las cuentas suspendidas. Los propios tokens de autenticación de Git (generación, listado, el límite por usuario, eliminación, caducidad, la comprobación que git-bridge solicita a web, y los tokens de cuentas suspendidas y eliminadas) se superan en una réplica (16 casos).

Preguntas y respuestas

Respuesta: Comprueba GIT_BRIDGE_HOST: debe ser la dirección IP del Service de git-bridge, no su nombre; consulta más arriba. kubectl -n overleaf exec deploy/overleaf -- tail /var/log/nginx/error.log muestra el motivo.
Última modificación el 2 de noviembre de 2026