Skip to main content
Integrasi Git menjalankan layanan git-bridge yang terpisah. Pengguna melakukan clone dan push melalui ${OVERLEAF_SITE_URL}/git/<project id>; pod Ayakaleaf Pro meneruskan permintaan tersebut ke git-bridge, dan git-bridge memanggil kembali pod untuk konten dan riwayat proyek. Mengaktifkannya juga mengaktifkan MCP server dan diperlukan oleh Sinkronisasi GitHub, GitLab, Gitea, dan Dropbox. Halaman ini memperluas instalasi satu replika dari Menggunakan Kubernetes. Untuk beberapa replika, lihat Penskalaan horizontal.
1

Deploy git-bridge

45-git-bridge.yaml
10.96.100.80 harus berupa alamat yang belum terpakai di dalam service CIDR kluster Anda (default kubeadm adalah 10.96.0.0/12).
2

Arahkan Ayakaleaf Pro ke git-bridge

Tambahkan ke 30-config.yaml:
30-config.yaml (additions)
3

Clone sebuah proyek

Buat token autentikasi Git di Account Settings, lalu:
Gunakan git sebagai nama pengguna dan token tersebut sebagai kata sandi.

Mengapa manifest terlihat seperti ini

  • ClusterIP tetap sebagai GIT_BRIDGE_HOST. nginx di dalam image Ayakaleaf Pro meneruskan /git/ dengan resolver yang diatur ke 127.0.0.11, DNS bawaan Docker. Kubernetes tidak memiliki server DNS di alamat tersebut, sehingga nama host seperti git-bridge gagal dengan 502 dan “git-bridge could not be resolved” di /var/log/nginx/error.log. Alamat IP tidak memerlukan lookup.
  • overleaf-internal. git-bridge memerlukan port 3000 (API web) dan 3100 (riwayat) dari pod Ayakaleaf Pro. Service ClusterIP terpisah menjaga port tersebut tetap di dalam kluster; menambahkannya ke Service NodePort akan memublikasikannya di setiap node.
  • enableServiceLinks: false. Service git-bridge akan membuat Kubernetes menambahkan GIT_BRIDGE_PORT=tcp://10.96.100.80:8000 ke pod; git-bridge membaca GIT_BRIDGE_PORT sebagai port listening-nya dan berhenti dengan MalformedJsonException ... path $.port.
  • Satu replika dengan volume sendiri. git-bridge menyimpan satu repositori git per proyek yang di-clone di disk dan tidak boleh berjalan dua kali. Cadangkan volumenya.

Diuji di Kubernetes

Di Kubernetes 1.37 dengan tiga replika di belakang HAProxy dan git-bridge sebagai sibling dari overleaf-0, pengujian end-to-end kami untuk Integrasi Git lulus (19 kasus), juga dengan git-bridge dipindahkan ke port 8001 sehingga nginx harus menggunakan GIT_BRIDGE_HOST dan GIT_BRIDGE_PORT: token Git di pengaturan akun, perintah clone di editor, clone, push dan pull, file biner dan folder, penggantian nama dan penghapusan, penolakan push yang sudah usang, akses berdasarkan peran (editor yang diundang dan editor melalui tautan boleh melakukan push, viewer dan reviewer hanya boleh melakukan clone, pengguna tanpa akses ditolak), penolakan token yang salah dan yang sudah dihapus, rute internal git-bridge yang tetap berada di balik nginx, dan akun yang ditangguhkan. Token autentikasi Git itu sendiri (pembuatan, daftar, batas per pengguna, penghapusan, kedaluwarsa, pemeriksaan yang diminta git-bridge ke web, serta token dari akun yang ditangguhkan dan dihapus) lulus pada satu replika (16 kasus).

Tanya Jawab

Jawaban: Periksa GIT_BRIDGE_HOST: nilainya harus berupa alamat IP dari Service git-bridge, bukan namanya, lihat di atas. kubectl -n overleaf exec deploy/overleaf -- tail /var/log/nginx/error.log menunjukkan penyebabnya.
Terakhir diubah pada 2 November 2026