Forbedret sikkerhed
Sandboxed Compiles er den anbefalede tilgang for Ayakaleaf Pro, fordi mange LaTeX-dokumenter kræver eller har mulighed for at udføre vilkårlige shell-kommandoer som en del af PDF-kompileringsprocessen. Hvis du bruger Sandboxed Compiles, kører hver kompilering i en separat Docker-container med begrænsede rettigheder, som ikke deles med nogen anden bruger eller noget andet projekt, og som ikke har adgang til eksterne ressourcer såsom værtens netværk.Nemmere pakkehåndtering
For at undgå manuel installation af pakker anbefaler vi at aktivere Sandboxed Compiles. Dette er en konfigurerbar indstilling i Server Pro, som giver dine brugere adgang til det samme TeX Live-miljø som på overleaf.com, men i din egen on-premises-installation. TeX Live-images, der bruges af Sandboxed Compiles, indeholder de mest populære pakker og skrifttyper, testet mod vores galleriskabeloner, hvilket sikrer maksimal kompatibilitet med on-premises-projekter. Når Sandboxed Compiles er aktiveret, kan du konfigurere, hvilke TeX Live-versioner brugerne kan vælge mellem i deres projekt, samt angive en standardversion af TeX Live-imaget til nye projekter.Hvis du forsøger at køre Ayakaleaf Pro uden Sandboxed Compiles, vil din instans som standard bruge en TeX Live-version med det grundlæggende skema (basic scheme) til kompileringer. Denne grundlæggende version er let og indeholder kun et meget begrænset udvalg af LaTeX-pakker, hvilket højst sandsynligt vil resultere i fejl om manglende pakker for dine brugere, især hvis de forsøger at bruge færdigbyggede skabeloner.
Sandboxed Compiles kræver, at
sharelatex-containeren har adgang til Docker-socketten på værtsmaskinen (via en bind mount), så den kan administrere disse søskende-kompileringscontainere.Sådan fungerer det
Når Sandboxed Compiles er aktiveret, monteres Docker-socketten fra værtsmaskinen ind isharelatex-containeren, så kompileringstjenesten i containeren kan oprette nye Docker-containere på værten. For hver kørsel af kompileren i hvert projekt gør LaTeX-kompileringstjenesten (CLSI) derefter følgende:
- Skriver projektfilerne til en placering inden for
OVERLEAF_DATA_PATH. - Bruger den monterede Docker-socket til at oprette en ny
texlive-container til kompileringskørslen. - Lader
texlive-containeren læse projektdataene fra placeringen underOVERLEAF_DATA_PATH. - Kompilerer projektet inde i
texlive-containeren.
Aktivering af Sandboxed Compiles
For Toolkit-brugere
For at aktivere Sandboxed Compiles (også kendt som Sibling containers) skal du sætte følgende konfigurationsindstillinger ioverleaf-toolkit/config/overleaf.rc:
config/overleaf.rc
For Docker Compose-brugere
Fra og med Overleaf CE/Server Pro
5.0.3 er miljøvariablerne blevet omdøbt fra SHARELATEX_* til OVERLEAF_*.4.x-version (eller tidligere), skal du sørge for, at variablerne har det tilsvarende præfiks (f.eks. SHARELATEX_MONGO_URL i stedet for OVERLEAF_MONGO_URL).
Opsætning af TeX Live-imaget
Brugere i det kinesiske fastland kan erstatte
ghcr.io med ghcr.nju.edu.cn for at gøre download hurtigere. Men brug IKKE ghcr.nju.edu.cn direkte i dine miljøindstillinger for Toolkit. Du skal beholde ghcr.io som dit eneste valg.TEX_LIVE_DOCKER_IMAGE(påkrævet), Standard-TeX Live-imaget, der bruges til at kompilere nye projekter. Dette image skal være inkluderet iALL_TEX_LIVE_DOCKER_IMAGES.ALL_TEX_LIVE_DOCKER_IMAGE_NAMES(påkrævet), En kommasepareret liste over brugervenlige navne til imagesne, som bruges til valgmulighederne i frontend.ALL_TEX_LIVE_DOCKER_IMAGES(påkrævet), En kommasepareret liste over TeX Live-images, der skal bruges. Hvis Overleaf Toolkit bruges til udrulning, bliver disse images downloadet eller opdateret. For at springe download over skal du sætteSIBLING_CONTAINERS_PULL=falseiconfig/overleaf.rc.
bin/up, henter Toolkit automatisk alle de images, der er angivet i ALL_TEX_LIVE_DOCKER_IMAGES.
Her er et eksempel, hvor vi som standard bruger TeX Live 2026 til nye projekter og beholder 2025 til gamle projekter.
- Minimal installation
- Fuld installation
Følgende konfiguration installerer alle fulde TeX Live Docker-images fra 2025 til 2026. Vi anbefaler at have mindst 64 GB ledig lagerplads, før du bruger denne konfiguration.
config/variables.env
Det anbefales kraftigt at angive mindst 2 texlive-full-images. Se #known-issues for den detaljerede begrundelse.
Tilgængelige TeX Live-images
Dette er en række TeX Live-images, der er specielt optimeret til Overleaf, og som også kan tilføjes tilTEX_LIVE_DOCKER_IMAGE og ALL_TEX_LIVE_DOCKER_IMAGES:
ghcr.io/ayaka-notes/texlive-full:2026.1(også taggetlatest)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 bruge et andet image-registry?
Nogle spekulerer måske på, om man kan erstatte ghcr.io med et andet spejlwebsted eller skifte texlive til et andet image fra Docker Hub?
Nej, det anbefaler vi ikke, da konfigurationen er forholdsvis kompliceret. Hvis du downloader fra et spejlwebsted, kan du omdøbe dit image til ghcr.io/ayaka-notes/texlive-full.
Men hvis du virkelig vil bruge dit eget image-registry, skal du tilføje:
config/variables.env
your-repo, f.eks.
hub.your.com/your-repo/texlive-full:2025.1hub.your.com/your-repo/texlive-full:2024.1
sandboxed-compiles/index.mjs
Automatisk synkronisering af TeX Live-images
For at undgå manuelt at skulle opdatere din instans medbin/up hver gang, kan du automatisere opdateringer af dit TeX Live-image. Se updating-tex-live-full-images-automatically.md.
Kendte problemer
Dette er et virkeligt tilfælde fra Overleaf-fællesskabet:Jeg brugerPå grund af visse tekniske begrænsninger gælder det, at hvis du kun opsætter ét enkelt Docker TeXLive-image, såsom6.0.1-ext-v3.3og har disse indstillinger ivariables.env:Det fungerer fint medtexlive/texlive:latest-full. Men jeg hentede et andet texlive-image,danteev/texlive:2025-10-15, og ændrede begge variabler til det nye imagenavn, men det virker ikke:I logfilerne ser jeg følgende:Det ser ud til, at de opdaterede indstillinger ivariables.envikke træder i kraft. Kompileringen forsøger stadig at køretexlive/texlive:latest-full-imaget og ikke det nye image. Jeg har prøvet at genstarte, slette containerne og køre igen, men problemet er det samme. Er der nogen løsninger?
texlive-fullA:latest
texlive-fullB:latest, så vil du opleve, at dine brugere ikke kan kompilere nogen projekter.

