Skip to main content

Prasyarat

Overleaf adalah proyek open source khas dengan arsitektur microservice, di mana semua layanan berjalan di Docker. Untuk menyiapkan lingkungan pengembangan Overleaf, Anda memerlukan server yang bertenaga; konfigurasi minimal 8 core dan RAM 16GB disarankan, karena Anda perlu menjalankan lebih dari 20 kontainer secara bersamaan.
Karena server dengan 8 core CPU atau lebih biasanya mahal, sangat disarankan untuk menggunakan komputer lokal Anda untuk pengembangan.
Selain itu, sebagai pengembang, kami yakin Anda sudah familier dengan instalasi Docker. Kami sangat menyarankan penggunaan Ubuntu LTS yang terbaru dan stabil (misalnya Ubuntu 24.04 pada 2025–2026) serta Docker versi terbaru untuk pengembangan, karena hal ini mengurangi kemungkinan menemui error yang tidak terduga. Singkatnya, Anda akan membutuhkan:
  • 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 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
Jika Anda belum menginstal nodejs, jangan khawatir, Anda dapat langsung menggunakan 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:
bash
Setelah layanan berjalan, buka http://localhost/launchpad untuk membuat akun admin pertama.
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:
Untuk mengompilasi di host macOS, Anda mungkin perlu menimpa path ke socket Docker dengan membuat file .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 menjalankan bin/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:
Ini akan menjalankan semua layanan menggunakan 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.
Jika tidak ada layanan yang disebutkan, semua layanan akan berjalan dalam mode pengembangan.

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 skrip bin/logs, namun Anda perlu menginstal beberapa dependensi:
Atau, Anda dapat langsung menjalankan:

Alat Lainnya

Setelah semuanya selesai, Anda dapat merujuk ke bagian berikutnya untuk menambahkan beberapa alat debug ke pengembangan Overleaf Anda.
Terakhir diubah pada 5 Oktober 2026