Verbesserte Sicherheit
Sandboxed Compiles sind der empfohlene Ansatz für Ayakaleaf Pro, da viele LaTeX-Dokumente im Rahmen des PDF-Kompiliervorgangs beliebige Shell-Befehle ausführen müssen bzw. dazu in der Lage sind. Wenn Sie Sandboxed Compiles verwenden, läuft jede Kompilierung in einem separaten Docker-Container mit eingeschränkten Fähigkeiten, der mit keinem anderen Benutzer oder Projekt geteilt wird und keinen Zugriff auf externe Ressourcen wie das Host-Netzwerk hat.Einfachere Paketverwaltung
Um Pakete nicht manuell installieren zu müssen, empfehlen wir, Sandboxed Compiles zu aktivieren. Dies ist eine konfigurierbare Einstellung in Server Pro, die Ihren Benutzern Zugriff auf dieselbe TeX Live-Umgebung wie auf overleaf.com bietet, jedoch innerhalb Ihrer eigenen On-Premises-Installation. Die von Sandboxed Compiles verwendeten TeX Live-Images enthalten die beliebtesten Pakete und Schriftarten, die mit unseren Galerievorlagen getestet wurden, und gewährleisten so maximale Kompatibilität mit On-Premises-Projekten. Durch das Aktivieren von Sandboxed Compiles können Sie festlegen, aus welchen TeX Live-Versionen Benutzer in ihrem Projekt wählen können, und eine Standardversion des TeX Live-Images für neue Projekte festlegen.Wenn Sie Ayakaleaf Pro ohne Sandboxed Compiles betreiben, verwendet Ihre Instanz für Kompilierungen standardmäßig eine TeX Live-Version mit dem Basisschema. Diese Basisversion ist schlank und enthält nur eine sehr begrenzte Auswahl an LaTeX-Paketen, was bei Ihren Benutzern höchstwahrscheinlich zu Fehlern wegen fehlender Pakete führt, insbesondere wenn sie vorgefertigte Vorlagen verwenden.
Sandboxed Compiles erfordern, dass der
sharelatex-Container (über einen Bind-Mount) Zugriff auf den Docker-Socket des Host-Rechners hat, damit er diese benachbarten Kompilier-Container verwalten kann.Funktionsweise
Wenn Sandboxed Compiles aktiviert sind, wird der Docker-Socket vom Host-Rechner in densharelatex-Container eingebunden, sodass der Compiler-Dienst im Container neue Docker-Container auf dem Host erstellen kann. Bei jedem Compiler-Durchlauf in jedem Projekt führt der LaTeX-Compiler-Dienst (CLSI) dann Folgendes aus:
- Schreiben der Projektdateien an einen Speicherort innerhalb von
OVERLEAF_DATA_PATH. - Verwenden des eingebundenen Docker-Sockets, um einen neuen
texlive-Container für den Kompilierdurchlauf zu erstellen. - Einlesen der Projektdaten aus dem Speicherort unter
OVERLEAF_DATA_PATHdurch dentexlive-Container. - Kompilieren des Projekts im
texlive-Container.
Sandboxed Compiles aktivieren
Für Toolkit-Benutzer
Um Sandboxed Compiles (auch als Sibling-Container bekannt) zu aktivieren, setzen Sie die folgenden Konfigurationsoptionen inoverleaf-toolkit/config/overleaf.rc:
config/overleaf.rc
Für Docker Compose-Benutzer
Ab Overleaf CE/Server Pro
5.0.3 wurden die Umgebungsvariablen von SHARELATEX_* in OVERLEAF_* umbenannt.4.x (oder älter) verwenden, stellen Sie bitte sicher, dass die Variablen das entsprechende Präfix haben (z. B. SHARELATEX_MONGO_URL statt OVERLEAF_MONGO_URL).
TeX Live-Image einrichten
Benutzer in Festlandchina können
ghcr.io durch ghcr.nju.edu.cn ersetzen, um den Download zu beschleunigen. Verwenden Sie ghcr.nju.edu.cn jedoch NICHT direkt in den Umgebungseinstellungen Ihres Toolkit. Behalten Sie dort ausschließlich ghcr.io bei.TEX_LIVE_DOCKER_IMAGE(erforderlich): Das Standard-TeX Live-Image zum Kompilieren neuer Projekte. Dieses Image muss inALL_TEX_LIVE_DOCKER_IMAGESenthalten sein.ALL_TEX_LIVE_DOCKER_IMAGE_NAMES(erforderlich): Eine kommagetrennte Liste von Anzeigenamen für die Images, die für die Auswahloptionen im Frontend verwendet werden.ALL_TEX_LIVE_DOCKER_IMAGES(erforderlich): Eine kommagetrennte Liste der zu verwendenden TeX Live-Images. Wenn das Overleaf Toolkit für die Bereitstellung verwendet wird, werden diese Images heruntergeladen oder aktualisiert. Um den Download zu überspringen, setzen SieSIBLING_CONTAINERS_PULL=falseinconfig/overleaf.rc.
bin/up starten, lädt das Toolkit automatisch alle in ALL_TEX_LIVE_DOCKER_IMAGES aufgeführten Images herunter.
Hier ist ein Beispiel, in dem für neue Projekte standardmäßig TeX Live 2026 verwendet wird und 2025 für ältere Projekte weiterhin im Einsatz bleibt.
- Minimale Installation
- Vollständige Installation
Die folgende Konfiguration installiert alle vollständigen TeX Live-Docker-Images von 2025 bis 2026. Wir empfehlen, vor der Verwendung dieser Konfiguration mindestens 64 GB freien Speicherplatz bereitzuhalten.
config/variables.env
Es wird dringend empfohlen, mindestens 2 texlive-full-Images einzurichten. Den genauen Grund finden Sie unter #known-issues
Verfügbare TeX Live-Images
Dies ist eine Reihe von TeX Live-Images, die speziell für Overleaf optimiert sind und auch zuTEX_LIVE_DOCKER_IMAGE und ALL_TEX_LIVE_DOCKER_IMAGES hinzugefügt werden können:
ghcr.io/ayaka-notes/texlive-full:2026.1(auch 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
Kann ich eine andere Image-Registry verwenden?
Manche fragen sich vielleicht, ob man ghcr.io durch eine andere Mirror-Seite ersetzen oder texlive auf ein anderes Image von Docker Hub umstellen kann.
Nein, davon raten wir ab, da die Konfiguration relativ kompliziert ist. Wenn Sie von einer Mirror-Seite herunterladen, können Sie Ihr Image in ghcr.io/ayaka-notes/texlive-full umbenennen.
Wenn Sie aber unbedingt Ihre eigene Image-Registry verwenden möchten, fügen Sie Folgendes hinzu:
config/variables.env
your-repo befinden, zum Beispiel:
hub.your.com/your-repo/texlive-full:2025.1hub.your.com/your-repo/texlive-full:2024.1
sandboxed-compiles/index.mjs
Automatische Synchronisierung der TeX Live-Images
Damit Sie Ihre Instanz nicht jedes Mal manuell mitbin/up aktualisieren müssen, können Sie die Aktualisierung Ihrer TeX Live-Images automatisieren. Siehe updating-tex-live-full-images-automatically.md.
Bekannte Probleme
Dies ist ein realer Fall aus der Overleaf-Community:Ich verwendeAufgrund technischer Einschränkungen gilt Folgendes: Wenn Sie nur ein einziges Docker-TeXLive-Image einrichten, zum Beispiel6.0.1-ext-v3.3und habe folgende Einstellungen invariables.env:Mittexlive/texlive:latest-fullfunktioniert das einwandfrei. Ich habe dann jedoch ein anderes texlive-Imagedanteev/texlive:2025-10-15heruntergeladen und beide Variablen auf den neuen Image-Namen geändert, aber es funktioniert nicht:In den Logs sehe ich Folgendes:Es scheint, dass die geänderten Einstellungen invariables.envnicht wirksam werden. Beim Kompilieren wird weiterhin versucht, das Imagetexlive/texlive:latest-fullstatt des neuen Images auszuführen. Ich habe neu gestartet, die Container gelöscht und erneut gestartet, aber das Problem besteht weiterhin. Gibt es eine Lösung?
texlive-fullA:latest
texlive-fullB:latest ändern. Dann werden Sie feststellen, dass Ihre Benutzer keines ihrer Projekte mehr kompilieren können.

