Prasyarat
Overleaf adalah proyek open source khas dengan arsitektur microservice, di mana semua layanan berjalan di Docker.- Kode sumber resmi Community Edition tersedia di GitHub Overleaf Official.
- Kode sumber Overleaf-CEP tersedia di GitHub Yu-i-i/Overleaf.
- Overleaf Pro Edition tersedia di GitHub Ayaka-notes/overleaf-pro.
Karena server dengan 8 core CPU atau lebih biasanya mahal, sangat disarankan untuk menggunakan komputer lokal Anda untuk pengembangan.
- Server/desktop yang bertenaga untuk pengembangan
- Ubuntu LTS yang terbaru dan stabil (misalnya Ubuntu 24.04)
- Lingkungan Docker dan Git
Tutorial Konfigurasi
Di sini, kami akan menggunakan overleaf-cep sebagai contoh untuk mendemonstrasikan cara mengonfigurasi lingkungan pengembangan Overleaf.1
Tarik Kode Sumber
Pertama-tama, mari kita clone repositorinya:
bash
2
Sinkronkan package-lock.json
Karena Overleaf dikembangkan di repositori internal, file Jika Anda belum menginstal nodejs, jangan khawatir, Anda dapat langsung menggunakan
package-lock.json sangat mungkin tidak sinkron akibat beberapa masalah pengembangan. Kita perlu menjalankan perintah berikut untuk menyinkronkannya. (jika Anda memiliki lingkungan nodejs lokal)bash
docker untuk menjalankan perintah yang sama. Jalankan dari root repositori Overleaf:bash
3
Build Image Pengembangan
Overleaf menyediakan direktori khusus
/develop untuk menyimpan skrip pengembangan. Cukup build layanannya:bash
Jika Docker kehabisan RAM saat mem-build layanan secara paralel, buat file
.env di direktori ini yang berisi COMPOSE_PARALLEL_LIMIT=1.4
Jalankan Semua Microservice
Kemudian jalankan layanannya:Setelah layanan berjalan, buka http://localhost/launchpad untuk membuat akun admin pertama.
bash
Anda harus menjalankan
bin/up sebelum menjalankan perintah bin/dev. Jika tidak, Anda mungkin akan mengalami serangkaian masalah izin.Secara default, hak akses admin tidak tersedia. Anda perlu menambahkan ini ke
develop/dev.env. Setelah itu, Anda dapat mengakses panel Admin.TeX Live
Mengompilasi PDF memerlukan build image TeX Live untuk menangani kompilasi di dalam Docker:.env di direktori ini, yang berisi DOCKER_SOCKET_PATH=/var/run/docker.sock.raw
Anda juga dipersilakan menggunakan ayaka-notes/texlive-full, tetapi Anda dapat menggunakan tag base, yang merupakan versi minimum dari texlive.
Pengembangan
Agar tidak perlu menjalankanbin/build && bin/up setiap kali kode berubah, Anda dapat menjalankan Overleaf Community Edition dalam mode pengembangan, di mana layanan akan diperbarui secara otomatis saat kode berubah.
Untuk melakukannya, gunakan skrip bin/dev yang disertakan:
node --watch, yang akan memantau kode secara otomatis dan memulai ulang layanan bila diperlukan.
Untuk meningkatkan performa, Anda dapat menjalankan hanya sebagian layanan dalam mode pengembangan dengan memberikan daftar yang dipisahkan spasi ke skrip bin/dev:
Menjalankan layanan
web dalam mode pengembangan hanya akan memperbarui layanan web saat kode backend berubah. Agar kode frontend juga diperbarui secara otomatis, pastikan untuk menjalankan layanan webpack dalam mode pengembangan juga.Debugging
Saat dijalankan dalam mode pengembangan, sebagian besar layanan mengekspos port debugging yang dapat Anda hubungkan dengan debugger seperti inspector di Chrome Dev Tools atau debugger yang terintegrasi di IDE. Tabel berikut menunjukkan port yang diekspos pada mesin host untuk setiap layanan:
Untuk terhubung ke layanan menggunakan remote debugging Chrome, buka chrome://inspect/ dan pastikan Discover network targets dicentang. Selanjutnya klik Configure… dan tambahkan entri
localhost:[service port] untuk setiap layanan yang ingin Anda hubungkan dengan debugger.
Setelah menambahkan entri, layanan akan muncul sebagai Remote Target yang dapat Anda inspeksi dan debug.
Logging
Di lingkungan pengembangan, Overleaf menyediakan skripbin/logs, namun Anda perlu menginstal beberapa dependensi:

