Skip to main content
Git entegrasyonu ayrı git-bridge hizmetini çalıştırır. Kullanıcılar ${OVERLEAF_SITE_URL}/git/<project id> üzerinden klonlama ve gönderme (push) yapar; Ayakaleaf Pro pod’u bu istekleri git-bridge’e iletir ve git-bridge proje içeriği ve geçmişi için pod’u geri çağırır. Bunu açmak MCP sunucusunu da etkinleştirir ve GitHub, GitLab, Gitea ve Dropbox Senkronizasyonu için gereklidir. Bu sayfa, Kubernetes’i Kullanma sayfasındaki tek replikalı kurulumu genişletir. Birden fazla replika için Yatay ölçeklendirme sayfasına bakın.
1

git-bridge'i dağıtın

45-git-bridge.yaml
10.96.100.80, kümenizin hizmet CIDR’ı içinde boş bir adres olmalıdır (kubeadm’in varsayılanı 10.96.0.0/12).
2

Ayakaleaf Pro'yu ona yönlendirin

30-config.yaml dosyasına ekleyin:
30-config.yaml (additions)
3

Bir projeyi klonlayın

Account Settings içinde bir Git kimlik doğrulama token’ı oluşturun, ardından:
Kullanıcı adı olarak git, parola olarak token’ı kullanın.

Manifest neden böyle görünüyor

  • GIT_BRIDGE_HOST olarak sabit bir ClusterIP. Ayakaleaf Pro imajındaki nginx, /git/ isteklerini Docker’ın yerleşik DNS’i olan 127.0.0.11 olarak ayarlanmış bir çözümleyiciyle iletir. Kubernetes’te orada bir DNS sunucusu yoktur; bu nedenle git-bridge gibi bir ana bilgisayar adı 502 ile başarısız olur ve /var/log/nginx/error.log içinde “git-bridge could not be resolved” görünür. Bir IP adresi için arama gerekmez.
  • overleaf-internal. git-bridge, Ayakaleaf Pro pod’unun 3000 (web API’si) ve 3100 (geçmiş) portlarına ihtiyaç duyar. Ayrı bir ClusterIP Service’i bunları küme içinde tutar; bunları NodePort Service’ine eklemek onları her düğümde yayımlar.
  • enableServiceLinks: false. git-bridge Service’i, Kubernetes’in pod’a GIT_BRIDGE_PORT=tcp://10.96.100.80:8000 eklemesine neden olur; git-bridge GIT_BRIDGE_PORT değerini dinleme portu olarak okur ve MalformedJsonException ... path $.port hatasıyla durur.
  • Kendi birimi olan tek bir replika. git-bridge, klonlanan her proje için diskte bir git deposu tutar ve iki kez çalışmamalıdır. Biriminin yedeğini alın.

Kubernetes üzerinde test edildi

HAProxy arkasında üç replikalı ve git-bridge’in overleaf-0’ın kardeşi olduğu Kubernetes 1.37 üzerinde, Git entegrasyonu için uçtan uca testlerimiz başarılı oldu (19 vaka); git-bridge, nginx’in GIT_BRIDGE_HOST ve GIT_BRIDGE_PORT değerlerini kullanmak zorunda kalması için 8001 portuna taşındığında da: hesap ayarlarındaki Git token’ları, düzenleyicideki klonlama komutu, klonlama, gönderme ve çekme, ikili dosyalar ve klasörler, yeniden adlandırmalar ve silmeler, güncel olmayan gönderimlerin reddedilmesi, role göre erişim (davet edilen düzenleyiciler ve bağlantı üzerinden düzenleyiciler gönderebilir, görüntüleyiciler ve gözden geçirenler yalnızca klonlayabilir, erişimi olmayan kullanıcılar reddedilir), yanlış ve silinmiş token’ların reddedilmesi, git-bridge’in dahili yollarının nginx arkasında tutulması ve askıya alınmış hesaplar. Git kimlik doğrulama token’larının kendileri (oluşturma, listeleme, kullanıcı başına sınır, silme, süre dolumu, git-bridge’in web’den istediği denetim ve askıya alınmış ve silinmiş hesapların token’ları) tek replikada başarılı oldu (16 vaka).

Soru&Cevap

Cevap: GIT_BRIDGE_HOST değerini kontrol edin: adı değil, git-bridge Service’inin IP adresi olmalıdır; yukarıya bakın. kubectl -n overleaf exec deploy/overleaf -- tail /var/log/nginx/error.log nedeni gösterir.
Son değiştirilme tarihi 2 Kasım 2026