Keamanan yang lebih baik
Sandboxed Compiles adalah pendekatan yang direkomendasikan untuk Ayakaleaf Pro karena banyak dokumen LaTeX memerlukan/memiliki kemampuan untuk mengeksekusi perintah shell arbitrer sebagai bagian dari proses kompilasi PDF. Jika Anda menggunakan Sandboxed Compiles, setiap kompilasi berjalan di kontainer Docker terpisah dengan kemampuan terbatas yang tidak dibagikan dengan pengguna atau proyek lain dan tidak memiliki akses ke sumber daya luar seperti jaringan host.Manajemen paket yang lebih mudah
Untuk menghindari instalasi paket secara manual, kami menyarankan untuk mengaktifkan Sandboxed Compiles. Ini adalah pengaturan yang dapat dikonfigurasi di Server Pro yang akan memberikan pengguna Anda akses ke lingkungan TeX Live yang sama seperti di overleaf.com, tetapi di dalam instalasi on-premise Anda sendiri. Image TeX Live yang digunakan oleh Sandboxed Compiles berisi paket dan font paling populer yang telah diuji terhadap template galeri kami, sehingga memastikan kompatibilitas maksimum dengan proyek on-premise. Mengaktifkan Sandboxed Compiles memungkinkan Anda mengonfigurasi versi TeX Live mana yang dapat dipilih pengguna dalam proyek mereka, serta menetapkan versi image TeX Live default untuk proyek baru.Jika Anda mencoba menjalankan Ayakaleaf Pro tanpa Sandboxed Compiles, instance Anda akan secara default menggunakan versi skema dasar TeX Live untuk kompilasi. Versi dasar ini ringan dan hanya berisi subset paket LaTeX yang sangat terbatas, yang kemungkinan besar akan menyebabkan error paket hilang bagi pengguna Anda, terutama jika mereka mencoba menggunakan template yang sudah jadi.
Sandboxed Compiles mengharuskan kontainer
sharelatex memiliki akses ke socket Docker pada mesin host (melalui bind mount) agar dapat mengelola kontainer kompilasi saudara (sibling) ini.Cara kerjanya
Ketika Sandboxed Compiles diaktifkan, socket Docker akan di-mount dari mesin host ke dalam kontainersharelatex, sehingga layanan compiler di dalam kontainer dapat membuat kontainer Docker baru di host. Kemudian, untuk setiap kali compiler dijalankan di setiap proyek, layanan compiler LaTeX (CLSI) akan melakukan hal berikut:
- Menulis file proyek ke suatu lokasi di dalam
OVERLEAF_DATA_PATH. - Menggunakan socket Docker yang di-mount untuk membuat kontainer
texlivebaru untuk proses kompilasi tersebut. - Membuat kontainer
texlivemembaca data proyek dari lokasi di bawahOVERLEAF_DATA_PATH. - Mengompilasi proyek di dalam kontainer
texlive.
Mengaktifkan Sandboxed Compiles
Untuk Pengguna Toolkit
Untuk mengaktifkan sandboxed compiles (juga dikenal sebagai Sibling containers), atur opsi konfigurasi berikut dioverleaf-toolkit/config/overleaf.rc:
config/overleaf.rc
Untuk Pengguna Docker Compose
Mulai dari Overleaf CE/Server Pro
5.0.3, nama variabel lingkungan telah diubah dari SHARELATEX_* menjadi OVERLEAF_*.4.x (atau lebih lama), pastikan variabel diberi prefiks yang sesuai (misalnya SHARELATEX_MONGO_URL alih-alih OVERLEAF_MONGO_URL).
Menyiapkan Image TexLive
Untuk pengguna di Tiongkok daratan, Anda dapat mengganti
ghcr.io dengan ghcr.nju.edu.cn untuk mempercepat unduhan. Tetapi JANGAN menggunakan ghcr.nju.edu.cn secara langsung di pengaturan env toolkit Anda. Anda harus tetap menggunakan ghcr.io sebagai satu-satunya pilihan.TEX_LIVE_DOCKER_IMAGE(wajib), Image TeX Live default yang digunakan untuk mengompilasi proyek baru. Image ini harus disertakan dalamALL_TEX_LIVE_DOCKER_IMAGES.ALL_TEX_LIVE_DOCKER_IMAGE_NAMES(wajib), Daftar nama ramah untuk image yang dipisahkan koma, digunakan untuk opsi di frontend.ALL_TEX_LIVE_DOCKER_IMAGES(wajib), Daftar image TeX Live yang akan digunakan, dipisahkan koma. Jika Overleaf Toolkit digunakan untuk deployment, image-image ini akan diunduh atau diperbarui. Untuk melewati pengunduhan, aturSIBLING_CONTAINERS_PULL=falsediconfig/overleaf.rc.
bin/up, Toolkit akan secara otomatis menarik semua image yang tercantum di ALL_TEX_LIVE_DOCKER_IMAGES.
Berikut contoh di mana kami menggunakan TeX Live 2026 sebagai default untuk proyek baru, dan tetap menggunakan 2025 untuk proyek lama.
- Instalasi minimum
- Instalasi lengkap
Konfigurasi berikut menginstal semua image Docker TeX Live lengkap dari 2025 hingga 2026. Kami menyarankan agar Anda memiliki setidaknya 64 GB ruang penyimpanan yang tersedia sebelum menggunakan konfigurasi ini.
config/variables.env
Sangat disarankan untuk mengatur setidaknya 2 image texlive-full. Untuk alasan selengkapnya, lihat #known-issues
Image TeX Live yang tersedia
Berikut adalah serangkaian image TeX Live yang dioptimalkan khusus untuk Overleaf, dan juga dapat ditambahkan keTEX_LIVE_DOCKER_IMAGE dan ALL_TEX_LIVE_DOCKER_IMAGES:
ghcr.io/ayaka-notes/texlive-full:2026.1(juga taglatest)ghcr.io/ayaka-notes/texlive-full:2025.1ghcr.io/ayaka-notes/texlive-full:2024.1ghcr.io/ayaka-notes/texlive-full:2023.1ghcr.io/ayaka-notes/texlive-full:2022.1ghcr.io/ayaka-notes/texlive-full:2021.1ghcr.io/ayaka-notes/texlive-full:2020.1
Bisakah Saya Menggunakan Image Registry Lain
Sebagian orang mungkin bertanya-tanya apakah saya dapat mengganti ghcr.io dengan situs mirror lain, atau mengganti texlive dengan image lain dari docker hub?
Tidak, kami tidak menyarankannya karena konfigurasinya relatif rumit. Jika Anda mengunduh dari situs mirror, Anda dapat mengganti nama image Anda menjadi ghcr.io/ayaka-notes/texlive-full.
Namun, jika Anda benar-benar ingin menggunakan Image Registry Anda sendiri, tambahkan:
config/variables.env
your-repo, seperti
hub.your.com/your-repo/texlive-full:2025.1hub.your.com/your-repo/texlive-full:2024.1
sandboxed-compiles/index.mjs
Sinkronisasi Image TeX Live Otomatis
Untuk menghindari pembaruan manual instance Anda denganbin/up setiap saat, Anda dapat mengotomatiskan pembaruan image TeX Live Anda. Lihat updating-tex-live-full-images-automatically.md.
Masalah yang Diketahui
Berikut adalah kasus nyata dari komunitas Overleaf:MenggunakanKarena beberapa keterbatasan teknis, jika Anda hanya menyiapkan satu image Docker TeXLive, seperti6.0.1-ext-v3.3, saya memiliki pengaturan berikut divariables.env:Ini berfungsi dengan baik dengantexlive/texlive:latest-full. Namun, saya menarik image texlive laindanteev/texlive:2025-10-15dan mengubah kedua variabel ini ke nama image baru, tetapi tidak berhasil:Di log, saya melihat hal berikut:Tampaknya pengaturan yang diperbarui divariables.envtidak diterapkan. Kompilasi masih mencoba menjalankan imagetexlive/texlive:latest-full, bukan image yang baru. Saya sudah mencoba me-reboot, menghapus kontainer, dan menjalankannya ulang, tetapi masalahnya tetap sama. Ada solusi?
texlive-fullA:latest
texlive-fullB:latest. Kemudian, Anda akan melihat bahwa pengguna Anda tidak dapat mengompilasi semua proyek.

