Verbeterde beveiliging
Sandboxed Compiles zijn de aanbevolen aanpak voor Ayakaleaf Pro, omdat veel LaTeX-documenten tijdens het compileren naar pdf willekeurige shellcommando’s moeten of kunnen uitvoeren. Als je Sandboxed Compiles gebruikt, draait elke compilatie in een aparte Docker-container met beperkte rechten, die niet wordt gedeeld met andere gebruikers of projecten en geen toegang heeft tot externe resources zoals het hostnetwerk.Eenvoudiger pakketbeheer
Om te voorkomen dat je pakketten handmatig moet installeren, raden we aan Sandboxed Compiles in te schakelen. Dit is een configureerbare instelling binnen Server Pro die je gebruikers toegang geeft tot dezelfde TeX Live-omgeving als op overleaf.com, maar dan binnen je eigen on-premise installatie. De TeX Live-images die door Sandboxed Compiles worden gebruikt, bevatten de populairste pakketten en lettertypen, getest met onze galerijsjablonen, wat zorgt voor maximale compatibiliteit met on-premise projecten. Door Sandboxed Compiles in te schakelen, kun je bepalen uit welke TeX Live-versies gebruikers binnen hun project kunnen kiezen, en kun je een standaardversie van de TeX Live-image instellen voor nieuwe projecten.Als je Ayakaleaf Pro zonder Sandboxed Compiles probeert te draaien, gebruikt je instantie standaard een basisschemaversie van TeX Live voor compilaties. Deze basisversie is lichtgewicht en bevat slechts een zeer beperkte subset van LaTeX-pakketten, wat waarschijnlijk leidt tot fouten over ontbrekende pakketten bij je gebruikers, vooral als ze kant-en-klare sjablonen proberen te gebruiken.
Sandboxed Compiles vereist dat de
sharelatex-container toegang heeft tot de Docker-socket op de hostmachine (via een bind mount), zodat deze de naastgelegen compilatiecontainers kan beheren.Hoe het werkt
Wanneer Sandboxed Compiles is ingeschakeld, wordt de Docker-socket van de hostmachine in desharelatex-container gemount, zodat de compilerservice in de container nieuwe Docker-containers op de host kan aanmaken. Vervolgens doet de LaTeX-compilerservice (CLSI) bij elke compilatie van elk project het volgende:
- De projectbestanden wegschrijven naar een locatie binnen
OVERLEAF_DATA_PATH. - Via de gemounte Docker-socket een nieuwe
texlive-container aanmaken voor de compilatie. - De
texlive-container de projectgegevens laten lezen vanaf de locatie onderOVERLEAF_DATA_PATH. - Het project compileren binnen de
texlive-container.
Sandboxed Compiles inschakelen
Voor Toolkit-gebruikers
Om Sandboxed Compiles (ook wel Sibling containers genoemd) in te schakelen, stel je de volgende configuratieopties inoverleaf-toolkit/config/overleaf.rc in:
config/overleaf.rc
Voor Docker Compose-gebruikers
Vanaf Overleaf CE/Server Pro
5.0.3 zijn omgevingsvariabelen hernoemd van SHARELATEX_* naar OVERLEAF_*.4.x-versie (of ouder) gebruikt, zorg er dan voor dat de variabelen het juiste voorvoegsel hebben (bijv. SHARELATEX_MONGO_URL in plaats van OVERLEAF_MONGO_URL).
De TeX Live-image instellen
Gebruikers op het Chinese vasteland kunnen
ghcr.io vervangen door ghcr.nju.edu.cn om het downloaden te versnellen. Gebruik ghcr.nju.edu.cn echter NIET rechtstreeks in de omgevingsinstellingen van je Toolkit. Houd ghcr.io als enige keuze aan.TEX_LIVE_DOCKER_IMAGE(verplicht), De standaard TeX Live-image voor het compileren van nieuwe projecten. Deze image moet zijn opgenomen inALL_TEX_LIVE_DOCKER_IMAGES.ALL_TEX_LIVE_DOCKER_IMAGE_NAMES(verplicht), Een kommagescheiden lijst met gebruiksvriendelijke namen voor de images, gebruikt voor de opties in de frontend.ALL_TEX_LIVE_DOCKER_IMAGES(verplicht), Een kommagescheiden lijst met te gebruiken TeX Live-images. Als de Overleaf Toolkit voor de deployment wordt gebruikt, worden deze images gedownload of bijgewerkt. StelSIBLING_CONTAINERS_PULL=falseinconfig/overleaf.rcin om het downloaden over te slaan.
bin/up, pullt de Toolkit automatisch alle images die in ALL_TEX_LIVE_DOCKER_IMAGES staan.
Hier is een voorbeeld waarin we voor nieuwe projecten standaard TeX Live 2026 gebruiken en 2025 behouden voor oude projecten.
- Minimale installatie
- Volledige installatie
De volgende configuratie installeert alle volledige TeX Live Docker-images van 2025 tot en met 2026. We raden aan minimaal 64 GB vrije opslagruimte te hebben voordat je deze configuratie gebruikt.
config/variables.env
Het wordt sterk aanbevolen om minimaal 2 texlive-full-images in te stellen. Zie #known-issues voor de gedetailleerde reden.
Beschikbare TeX Live-images
Dit is een reeks TeX Live-images die speciaal voor Overleaf zijn geoptimaliseerd en die ook aanTEX_LIVE_DOCKER_IMAGE en ALL_TEX_LIVE_DOCKER_IMAGES kunnen worden toegevoegd:
ghcr.io/ayaka-notes/texlive-full:2026.1(ook de 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
Kan ik een andere image-registry gebruiken?
Sommigen vragen zich misschien af of ze ghcr.io kunnen vervangen door een andere mirrorsite, of texlive kunnen vervangen door een andere image van Docker Hub?
Nee, dat raden we niet aan, omdat de configuratie relatief ingewikkeld is. Als je vanaf een mirrorsite downloadt, kun je je image hernoemen naar ghcr.io/ayaka-notes/texlive-full.
Maar als je echt je eigen image-registry wilt gebruiken, voeg dan het volgende toe:
config/variables.env
your-repo staan, zoals
hub.your.com/your-repo/texlive-full:2025.1hub.your.com/your-repo/texlive-full:2024.1
sandboxed-compiles/index.mjs
Geautomatiseerde synchronisatie van TeX Live-images
Om te voorkomen dat je je instantie elke keer handmatig metbin/up moet bijwerken, kun je updates van je TeX Live-image automatiseren. Zie updating-tex-live-full-images-automatically.md.
Bekende problemen
Dit is een echte casus uit de Overleaf-community:MetDoor enkele technische beperkingen geldt het volgende: als je slechts één Docker TeXLive-image instelt, zoals6.0.1-ext-v3.3heb ik deze instellingen invariables.env:Dit werkt prima mettexlive/texlive:latest-full. Ik heb echter een andere texlive-imagedanteev/texlive:2025-10-15gepulld en beide variabelen gewijzigd naar de nieuwe imagenaam, maar het werkt niet:In de logs zie ik het volgende:Het lijkt erop dat de bijgewerkte instellingen invariables.envniet worden toegepast. De compilatie probeert nog steeds de imagetexlive/texlive:latest-fullte draaien, niet de nieuwe image. Ik heb geprobeerd opnieuw op te starten, de containers te verwijderen en opnieuw te starten, maar het probleem blijft hetzelfde. Heeft iemand een oplossing?
texlive-fullA:latest
texlive-fullB:latest, dan zul je merken dat je gebruikers geen enkel project meer kunnen compileren.

