Skip to main content
Fitur ini dikembangkan oleh ayaka-notes/ayakaleaf-pro. Fitur ini diperkenalkan di v6.3.1 sebagai pratinjau awal dan akan dirilis secara resmi di v6.4.0, sehingga konfigurasi dan perilakunya masih dapat berubah. Kami membutuhkan masukan Anda jika Anda mengalami masalah.
Sinkronisasi Dropbox menjaga proyek-proyek milik pengguna tetap tersinkron dengan Dropbox mereka, seperti di Overleaf Cloud: setelah pengguna menautkan akun Dropbox mereka, setiap proyek mereka muncul sebagai folder di Apps/<your Dropbox app>/, perubahan di Overleaf dikirim ke Dropbox, dan perubahan yang dibuat di Dropbox kembali ke Overleaf.

Menyiapkan Sinkronisasi Dropbox

Anda perlu mengaktifkan git-bridge terlebih dahulu: tanpanya, pengaturan akun akan menyembunyikan bagian sinkronisasi proyek.
config/overleaf.rc
Buat aplikasi di Dropbox App Console, dengan masuk menggunakan akun Dropbox yang akan menjadi pemilik aplikasi:
  1. Klik Create app, lalu isi halaman tersebut:
    • 1. Choose an API: pilih Scoped access.
    • 2. Choose the type of access you need: pilih App folder, bukan Full Dropbox. Overleaf hanya melakukan sinkronisasi di dalam folder aplikasi.
    • 3. Name your app: masukkan nama, misalnya Overleaf. Nama ini harus unik di Dropbox. Proyek setiap pengguna muncul di Apps/<name of your app>/ di Dropbox mereka, dan nama ini adalah DROPBOX_APP_NAME di bawah.
    • Klik Create app. Aplikasi akan terbuka pada tab Settings.
  2. Pada tab Permissions, di bawah Files and folders, centang files.metadata.write, files.content.write, dan files.content.read. account_info.read dan files.metadata.read ikut tercentang bersamanya dan tidak dapat dihapus centangnya. Jangan centang izin lainnya.
  3. Klik Submit di bilah bagian bawah tab Permissions. Tanpa Submit, izin tidak akan tersimpan, dan Dropbox akan menolak menyinkronkan file bagi pengguna yang menautkan akun mereka.

Dropbox App Console: izin yang harus dicentang, disimpan dengan Submit

  1. Pada tab Settings, di bawah OAuth 2, masukkan ${OVERLEAF_SITE_URL}/user/dropbox/oauth/callback di Redirect URIs, lalu klik Add. Mengetik URI saja tidak cukup: URI baru tersimpan setelah muncul di daftar di atas kolom tersebut.

Dropbox App Console: masukkan redirect URI, lalu klik Add

  1. Pada tab Settings, di bawah Webhooks, masukkan ${OVERLEAF_SITE_URL}/dropbox/webhook di Webhook URIs, lalu klik Add juga. Dropbox langsung memanggilnya untuk memeriksa, sehingga Overleaf harus sudah berjalan dengan pengaturan di bawah dan dapat dijangkau dari internet (lihat Webhook). Statusnya akan menampilkan Enabled setelah pemeriksaan berhasil.
Salin App key dan App secret (klik Show) dari tab Settings, lalu tambahkan pengaturan berikut ke file variabel lingkungan Overleaf Anda. Anda dapat menambahkan webhook (langkah 5) setelah Overleaf berjalan dengan pengaturan tersebut.
config/variables.env
  • Sebelum mengonfigurasi redirect URI dan webhook, pastikan OVERLEAF_SITE_URL sudah diatur dengan benar.
  • Dropbox menetapkan izin sebuah token saat pengguna menautkan akunnya: mengirimkan izin tidak mengubah token yang sudah ada. Pengguna yang menautkan akun sebelum izin dikirimkan, atau sebelum Anda mengubahnya, harus memutuskan tautan lalu menautkan akun Dropbox mereka kembali.
  • Aplikasi baru berstatus Development. Jika Development users pada tab Settings menampilkan Only you, hanya akun Dropbox Anda yang dapat ditautkan: klik Enable additional users agar pengguna lain dapat menautkan akun mereka. Setelah itu, akan ditampilkan jumlah pengguna yang telah menautkan akun, misalnya 1 / 500: aplikasi Development menampung paling banyak 500 pengguna. Untuk lebih banyak pengguna, klik Apply for production, dan Dropbox akan meninjau aplikasi tersebut.
Jika Anda berada di wilayah dengan akses jaringan yang dibatasi, Anda mungkin perlu mengonfigurasi proxy untuk mengakses Dropbox. Atur variabel lingkungan berikut: DROPBOX_SYNC_PROXY_URL=http://10.0.0.1:10808. Proxy tersebut harus berupa forward proxy HTTP/HTTPS standar, dan tidak boleh menggunakan 127.0.0.1.

Create the database indexes

Jalankan ini sekali, sebelum pengguna menautkan akun Dropbox mereka. Indeks yang digunakan oleh sinkronisasi Dropbox tidak dibuat secara otomatis, sehingga tanpa indeks tersebut setiap pencarian sinkronisasi akan memindai seluruh koleksi. Pengguna Toolkit: jalankan bin/mongo. Pengguna Docker Compose: jalankan docker compose exec mongo mongosh sharelatex. Lalu tempelkan:
Menjalankannya lagi tidak berbahaya: MongoDB melewati indeks yang sudah ada.
Jangan menjalankan migrasi dropboxEntities dari tools/migrations sebagai gantinya: 20220825160708_recreate_dropboxEntities menghapus koleksi tersebut, yang akan menghapus status sinkronisasi setiap pengguna.

Webhook

Dropbox memberi tahu Overleaf tentang perubahan di Dropbox melalui webhook, sehingga perubahan tersebut muncul di Overleaf dalam hitungan detik. Webhook mengarah ke alamat situs Anda, ${OVERLEAF_SITE_URL}/dropbox/webhook, tanpa memerlukan port tambahan, tetapi Dropbox harus dapat menjangkaunya dari internet. Saat Anda menambahkannya di App Console, Dropbox langsung memeriksanya. Tanpa webhook, misalnya pada server yang tidak dapat dijangkau Dropbox, perubahan di Overleaf tetap dikirim ke Dropbox, tetapi perubahan di Dropbox hanya kembali saat pengguna mengklik sync this project now di dialog Dropbox pada editor.

Cara kerja sinkronisasi

  • Penautan: saat pengguna menautkan akun Dropbox mereka, proyek yang mereka miliki dikirim ke Dropbox. Proyek yang dibagikan kepada mereka muncul di Dropbox pada perubahan berikutnya.
  • Overleaf ke Dropbox: file baru, penggantian nama, pemindahan, penghapusan, dan penggantian nama proyek langsung dikirim. Suntingan di editor dikirim setelah Overleaf menyimpannya ke penyimpanannya, beberapa menit setelah semua orang meninggalkan proyek. Untuk mengirimnya lebih awal, klik sync this project now di dialog Dropbox pada editor (sekali per menit).
  • Dropbox ke Overleaf: file baru dan yang diubah, folder baru, serta penghapusan di dalam folder proyek diterapkan ke proyek. Folder baru di tingkat teratas folder aplikasi menjadi proyek baru. Menghapus folder proyek di Dropbox akan menandai proyek tersebut sebagai terhapus di Overleaf.
  • Konflik: jika sebuah file berubah di kedua tempat pada saat yang sama, perubahan terakhir yang berlaku. Dropbox mungkin menyimpan versi lainnya sebagai conflicted copy.
  • Kolaborator: kolaborator yang menautkan Dropbox mereka mendapatkan proyek yang dibagikan kepada mereka. Peninjau dan pengguna dengan akses hanya-lihat mendapatkan proyek tersebut, tetapi perubahan mereka di Dropbox tidak disinkronkan kembali ke Overleaf.
  • File yang diabaikan: file yang tidak disinkronkan Overleaf, seperti hasil build (.aux, .log, …), .DS_Store, atau virtual environment Python, hanya tetap berada di Dropbox.

Q&A

  • Folder Dropbox yang belum dikenal Overleaf dicocokkan dengan proyek berdasarkan namanya, sehingga pengguna yang proyek-proyeknya memiliki nama yang sama akan diminta untuk mengganti namanya terlebih dahulu. Nama dibandingkan tanpa memperhatikan huruf besar/kecil, dan proyek yang diarsipkan maupun yang ada di tempat sampah juga diperhitungkan.
  • Satu akun Dropbox hanya dapat ditautkan ke satu akun Overleaf.
Jawaban: Overleaf memutuskan tautan akun Dropbox ketika Dropbox menolak tokennya (misalnya setelah pengguna menghapus aplikasi di Dropbox), ketika Dropbox penuh, atau ketika Dropbox menangguhkan akun tersebut. Notifikasi di daftar proyek memberi tahu pengguna penyebab mana yang terjadi, hingga mereka menautkan akun tersebut kembali. Pengguna dapat menautkannya kembali setelah masalah teratasi.
Jawaban: Sebaiknya ganti nama proyek di Overleaf: foldernya di Dropbox juga akan ikut diganti namanya. Bagi Overleaf, mengganti nama folder di Dropbox berarti menghapus folder proyek dan membuat folder baru, sehingga proyek lama ditandai sebagai terhapus dan proyek baru dibuat dari file-file tersebut.
Jawaban: Setiap proyek memiliki foldernya sendiri, juga ketika dua proyek memiliki nama yang sama. Dropbox tidak dapat menyimpan dua folder dengan nama yang sama, sehingga Dropbox menambahkan nomor pada folder yang dibuat belakangan. Nomor tersebut bergantung pada nama mana yang masih tersedia di Dropbox saat itu, bukan pada proyek mana yang lebih lama. Overleaf mengetahui folder setiap proyek, sehingga perubahan tidak pernah dikirim ke folder proyek lain yang bernama sama.Proyek yang diunggah dengan nama yang sudah dipakai juga diberi nama dengan nomor di Overleaf, misalnya “Thesis (1)”.
  • Jika tidak ada proyek lain yang memiliki nama folder tersebut, proyek ditandai sebagai terhapus di Overleaf. File dan riwayatnya tetap disimpan.
  • Jika beberapa proyek memiliki nama tersebut, Overleaf tidak dapat mengetahui proyek mana pemilik folder itu. Overleaf memutuskan tautan akun Dropbox dan menampilkan notifikasi yang meminta Anda mengganti nama proyek-proyek tersebut. Berikan nama yang berbeda pada proyek sebelum menghapus foldernya di Dropbox.
  • Folder bernomor, seperti “Thesis (1)”, tidak cocok dengan nama proyek mana pun, sehingga menghapusnya tidak mengubah proyek di Overleaf. Klik sync this project now di dialog Dropbox pada editor untuk mengirim proyek ke Dropbox lagi.
Jawaban: Tidak ada, foldernya tetap berada di Dropbox. Hapus folder tersebut di Dropbox jika Anda tidak lagi membutuhkannya.
Jawaban: Perubahan tersebut tidak diterapkan ke proyek, dan memulihkan proyek juga tidak akan memasukkannya. Setelah pemulihan, Overleaf berhenti mengirim perubahannya untuk file-file yang sementara itu diubah di Dropbox, sehingga kedua sisi berbeda.Untuk menyinkronkan kembali file seperti itu, simpan sekali lagi di Dropbox. Overleaf kemudian mengambil versi Dropbox: perubahan yang dibuat pada file tersebut di Overleaf sejak pemulihan akan digantikan, dan tetap ada di riwayat proyek. Pulihkan proyek sebelum Anda mengubahnya di Dropbox.
Jawaban: Tautan tersebut mengarah ke Apps/<app folder>/<project> di dropbox.com, seperti di Overleaf Cloud. Ketika Dropbox menampilkan folder Apps dengan nama terjemahan, misalnya 应用 dalam bahasa Tionghoa, tautan tidak menemukan folder tersebut dan Dropbox membuka halaman berandanya sebagai gantinya. Buka folder proyek dari folder Apps yang telah diterjemahkan di Dropbox.
Jawaban: Perubahan yang dibuat saat layanan sinkronisasi tidak berjalan, misalnya saat layanan dimulai ulang, tidak dikirim ke Dropbox setelahnya. Klik sync this project now di dialog Dropbox pada editor: tindakan ini mengirim ulang seluruh proyek.
Terakhir diubah pada 2 November 2026