Forbedret sikkerhet
Sandboxed Compiles er den anbefalte tilnærmingen for Ayakaleaf Pro, fordi mange LaTeX-dokumenter krever eller har muligheten til å kjøre vilkårlige skallkommandoer som en del av PDF-kompileringen. Hvis du bruker Sandboxed Compiles, kjøres hver kompilering i en egen Docker-container med begrensede rettigheter som ikke deles med noen annen bruker eller noe annet prosjekt, og som ikke har tilgang til eksterne ressurser som vertsnettverket.Enklere pakkehåndtering
For å slippe å installere pakker manuelt anbefaler vi å aktivere Sandboxed Compiles. Dette er en konfigurerbar innstilling i Server Pro som gir brukerne dine tilgang til det samme TeX Live-miljøet som på overleaf.com, men i din egen lokale installasjon. TeX Live-imagene som brukes av Sandboxed Compiles inneholder de mest populære pakkene og skrifttypene, testet mot malene i galleriet vårt, noe som sikrer maksimal kompatibilitet med lokale prosjekter. Når du aktiverer Sandboxed Compiles, kan du konfigurere hvilke TeX Live-versjoner brukerne kan velge mellom i prosjektene sine, og angi en standardversjon av TeX Live-imaget for nye prosjekter.Hvis du forsøker å kjøre Ayakaleaf Pro uten Sandboxed Compiles, vil instansen som standard bruke en versjon av TeX Live med basic-skjemaet til kompileringer. Denne grunnversjonen er lett og inneholder bare et svært begrenset utvalg LaTeX-pakker, noe som mest sannsynlig vil føre til feil om manglende pakker for brukerne dine, særlig hvis de prøver å bruke ferdige maler.
Sandboxed Compiles krever at
sharelatex-containeren har tilgang til Docker-socketen på vertsmaskinen (via en bind mount), slik at den kan administrere disse søskencontainerne for kompilering.Slik fungerer det
Når Sandboxed Compiles er aktivert, monteres Docker-socketen fra vertsmaskinen inn isharelatex-containeren, slik at kompileringstjenesten i containeren kan opprette nye Docker-containere på verten. Deretter gjør LaTeX-kompileringstjenesten (CLSI) følgende for hver kompilering i hvert prosjekt:
- Skriver prosjektfilene til en plassering inne i
OVERLEAF_DATA_PATH. - Bruker den monterte Docker-socketen til å opprette en ny
texlive-container for kompileringen. - Lar
texlive-containeren lese prosjektdataene fra plasseringen underOVERLEAF_DATA_PATH. - Kompilerer prosjektet inne i
texlive-containeren.
Aktivere Sandboxed Compiles
For Toolkit-brukere
For å aktivere Sandboxed Compiles (også kjent som søskencontainere, Sibling containers) angir du følgende konfigurasjonsvalg ioverleaf-toolkit/config/overleaf.rc:
config/overleaf.rc
For Docker Compose-brukere
Fra og med Overleaf CE/Server Pro
5.0.3 har miljøvariablene fått nytt navn fra SHARELATEX_* til OVERLEAF_*.4.x-versjon (eller eldre), må du sørge for at variablene har riktig prefiks (f.eks. SHARELATEX_MONGO_URL i stedet for OVERLEAF_MONGO_URL).
Sette opp TeX Live-imaget
Brukere i Fastlands-Kina kan erstatte
ghcr.io med ghcr.nju.edu.cn for å få raskere nedlasting. Men IKKE bruk ghcr.nju.edu.cn direkte i miljøinnstillingene til Toolkit. Du bør beholde ghcr.io som eneste valg.TEX_LIVE_DOCKER_IMAGE(påkrevd), Standard TeX Live-image som brukes til å kompilere nye prosjekter. Dette imaget må være inkludert iALL_TEX_LIVE_DOCKER_IMAGES.ALL_TEX_LIVE_DOCKER_IMAGE_NAMES(påkrevd), En kommaseparert liste med brukervennlige navn på imagene, som brukes til valgene i frontend.ALL_TEX_LIVE_DOCKER_IMAGES(påkrevd), En kommaseparert liste med TeX Live-images som skal brukes. Hvis Overleaf Toolkit brukes til distribusjonen, blir disse imagene lastet ned eller oppdatert. For å hoppe over nedlastingen, angiSIBLING_CONTAINERS_PULL=falseiconfig/overleaf.rc.
bin/up, henter Toolkit automatisk alle imagene som er oppført i ALL_TEX_LIVE_DOCKER_IMAGES.
Her er et eksempel der vi bruker TeX Live 2026 som standard for nye prosjekter, og beholder 2025 for gamle prosjekter.
- Minimal installasjon
- Full installasjon
Følgende konfigurasjon installerer alle fullstendige TeX Live Docker-images fra 2025 til 2026. Vi anbefaler at du har minst 64 GB ledig lagringsplass før du bruker denne konfigurasjonen.
config/variables.env
Det anbefales sterkt å sette opp minst 2 texlive-full-images. For en detaljert begrunnelse, se #known-issues
Tilgjengelige TeX Live-images
Dette er en serie TeX Live-images som er spesielt optimalisert for Overleaf, og som også kan legges til iTEX_LIVE_DOCKER_IMAGE og ALL_TEX_LIVE_DOCKER_IMAGES:
ghcr.io/ayaka-notes/texlive-full:2026.1(også taggenlatest)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 jeg bruke et annet image-register?
Noen lurer kanskje på om de kan erstatte ghcr.io med et annet speilnettsted, eller bytte texlive til et annet image fra Docker Hub?
Nei, vi anbefaler det ikke, fordi konfigurasjonen er relativt komplisert. Hvis du laster ned fra et speilnettsted, kan du gi imaget nytt navn til ghcr.io/ayaka-notes/texlive-full.
Men hvis du virkelig vil bruke ditt eget image-register, legger du til:
config/variables.env
your-repo, for eksempel
hub.your.com/your-repo/texlive-full:2025.1hub.your.com/your-repo/texlive-full:2024.1
sandboxed-compiles/index.mjs
Automatisk synkronisering av TeX Live-images
For å slippe å oppdatere instansen manuelt medbin/up hver gang, kan du automatisere oppdateringer av TeX Live-imaget. Se updating-tex-live-full-images-automatically.md.
Kjente problemer
Dette er et reelt tilfelle fra Overleaf-fellesskapet:MedPå grunn av enkelte tekniske begrensninger gjelder følgende: hvis du bare setter opp ett enkelt Docker TeXLive-image, for eksempel6.0.1-ext-v3.3har jeg disse innstillingene ivariables.env:Dette fungerer fint medtexlive/texlive:latest-full. Men jeg hentet et annet texlive-image,danteev/texlive:2025-10-15, og endret begge disse variablene til det nye imagenavnet, og da fungerer det ikke:I loggene ser jeg følgende:Det ser ut til at de oppdaterte innstillingene ivariables.envikke trer i kraft. Kompileringen prøver fortsatt å kjøre imagettexlive/texlive:latest-full, ikke det nye imaget. Jeg har prøvd å starte på nytt, slette containerne og kjøre igjen, men problemet er det samme. Noen løsninger?
texlive-fullA:latest
texlive-fullB:latest, vil du se at brukerne dine ikke kan kompilere noen prosjekter.

