Skip to main content
Ada sedikit perbedaan antara lingkungan pengembangan dan produksi jika Anda ingin menyiapkan kompilasi sandbox untuk pengembangan. Ada 3 hal yang perlu Anda perhatikan:
  • Masalah izin file
  • Berbagi volume antara history-v1 dan filestore
  • Masalah subdirektori

Mengaktifkan Sandbox Compiles

Di sini, kita cukup mengaktifkan Sandbox Compiles seperti yang kita lakukan di Overleaf CE. Namun, kita perlu memperhatikan penggunanya. Di sini kita mengaturnya ke root. Di lingkungan produksi, kami menggunakan www-data sebagai pengguna bersama antara kontainer Overleaf dan kontainer kompilasi TeX. Namun, di lingkungan pengembangan, node adalah pengguna default di dalam kontainer, dan tidak ada pengguna www-data yang dapat digunakan. Jadi, kami menggunakan root sebagai solusi sementara.
Jangan gunakan image yang Anda bangun sendiri, karena Anda mungkin akan menemui serangkaian error.

Memperbaiki Izin File

LaTeX berjalan di kontainer saudara (sibling container) sebagai pengguna yang ditentukan dalam variabel lingkungan TEXLIVE_IMAGE_USER. Pada contoh di atas, nilainya diatur ke root, yang memiliki uid 0. Ini menimbulkan masalah dengan izin di atas, karena pengguna root tidak memiliki izin untuk menulis ke subfolder compiles. Perbaikan cepatnya adalah memberikan kepemilikan grup root serta izin baca-tulis pada compiles, dengan setgid diaktifkan agar subfolder baru juga mewarisi kepemilikan ini:
bash
Untuk dokumentasi lebih rinci, Anda dapat melihat services/clsi/README.md.

Berbagi Volume antara history-v1 dan filestore

Secara default, filestore berfungsi sebagai jembatan antara S3 dan layanan lain di Overleaf. Namun, di Overleaf CE atau Server Pro, semua file disimpan secara lokal secara default. Karena itu, Overleaf memperkenalkan metode yang cukup rumit.
server-ce/config/settings.js
Pada saat yang sama, data/history juga digunakan oleh layanan history. Dengan cara ini, keduanya dapat berbagi data yang sama di antara microservice yang berbeda. Anda perlu menambahkan volume history-v1-buckets ini ke layanan filestore di lingkungan pengembangan. Jika tidak, clsi tidak akan dapat mengambil file blob dari layanan filestore.
develop/docker-compose.yml
Anda juga perlu menambahkan nama BUCKET ke pengaturan dev.env:
develop/dev.env

Menggunakan Subdirektori

Filestore menggunakan useSubdirectories bernilai true secara default. Namun, di lingkungan pengembangan, history v1 akan meratakan (flatten) semua data. Hal ini menimbulkan konflik. Untuk memperbaikinya, Anda perlu menambahkan baris berikut:
develop/dev.env
Di history v1, semua file project_blobs awalnya disimpan seperti ini:
Anda perlu mengatur useSubdirectories ke true untuk mengubahnya ke mode subdirektori. Sekarang, karakter _ asli dalam blob akan diganti dengan / .
Terakhir diubah pada 5 Oktober 2026