Sicurezza migliorata
Le Sandboxed Compiles sono l’approccio consigliato per Ayakaleaf Pro, perché molti documenti LaTeX richiedono o hanno la possibilità di eseguire comandi shell arbitrari durante il processo di compilazione del PDF. Se usi le Sandboxed Compiles, ogni compilazione viene eseguita in un container Docker separato con capacità limitate, non condiviso con altri utenti o progetti e senza accesso a risorse esterne come la rete dell’host.Gestione dei pacchetti semplificata
Per evitare di installare i pacchetti manualmente, consigliamo di abilitare le Sandboxed Compiles. Si tratta di un’impostazione configurabile di Server Pro che offre ai tuoi utenti lo stesso ambiente TeX Live di overleaf.com, ma all’interno della tua installazione on-premises. Le immagini TeX Live usate dalle Sandboxed Compiles contengono i pacchetti e i font più diffusi, testati con i template della nostra galleria, garantendo la massima compatibilità con i progetti on-premises. Abilitando le Sandboxed Compiles puoi configurare quali versioni di TeX Live gli utenti possono scegliere nei propri progetti e impostare una versione predefinita dell’immagine TeX Live per i nuovi progetti.Se provi a eseguire Ayakaleaf Pro senza le Sandboxed Compiles, la tua istanza userà per impostazione predefinita una versione di TeX Live con schema basic per le compilazioni. Questa versione basic è leggera e contiene solo un sottoinsieme molto limitato di pacchetti LaTeX, il che con ogni probabilità causerà errori di pacchetti mancanti per i tuoi utenti, soprattutto se provano a usare template predefiniti.
Le Sandboxed Compiles richiedono che il container
sharelatex abbia accesso al socket Docker della macchina host (tramite un bind mount), in modo da poter gestire questi container di compilazione affiancati.Come funziona
Quando le Sandboxed Compiles sono abilitate, il socket Docker viene montato dalla macchina host nel containersharelatex, così che il servizio di compilazione nel container possa creare nuovi container Docker sull’host. Quindi, per ogni esecuzione del compilatore in ciascun progetto, il servizio di compilazione LaTeX (CLSI) esegue le seguenti operazioni:
- Scrive i file del progetto in una posizione all’interno di
OVERLEAF_DATA_PATH. - Usa il socket Docker montato per creare un nuovo container
texliveper l’esecuzione della compilazione. - Fa leggere al container
texlivei dati del progetto dalla posizione inOVERLEAF_DATA_PATH. - Compila il progetto all’interno del container
texlive.
Abilitare le Sandboxed Compiles
Per gli utenti del Toolkit
Per abilitare le Sandboxed Compiles (note anche come Sibling containers), imposta le seguenti opzioni di configurazione inoverleaf-toolkit/config/overleaf.rc:
config/overleaf.rc
Per gli utenti di Docker Compose
A partire da Overleaf CE/Server Pro
5.0.3, le variabili d’ambiente sono state rinominate da SHARELATEX_* a OVERLEAF_*.4.x (o precedente), assicurati che le variabili abbiano il prefisso corretto (ad es. SHARELATEX_MONGO_URL invece di OVERLEAF_MONGO_URL).
Configurare l’immagine TeX Live
Gli utenti della Cina continentale possono sostituire
ghcr.io con ghcr.nju.edu.cn per velocizzare il download. Tuttavia, NON usare ghcr.nju.edu.cn direttamente nelle impostazioni d’ambiente del Toolkit: devi mantenere ghcr.io come unica scelta.TEX_LIVE_DOCKER_IMAGE(obbligatoria): l’immagine TeX Live predefinita usata per compilare i nuovi progetti. Questa immagine deve essere inclusa inALL_TEX_LIVE_DOCKER_IMAGES.ALL_TEX_LIVE_DOCKER_IMAGE_NAMES(obbligatoria): un elenco separato da virgole di nomi descrittivi per le immagini, usati per le opzioni nel frontend.ALL_TEX_LIVE_DOCKER_IMAGES(obbligatoria): un elenco separato da virgole delle immagini TeX Live da usare. Se per la distribuzione si usa l’Overleaf Toolkit, queste immagini verranno scaricate o aggiornate. Per saltare il download, impostaSIBLING_CONTAINERS_PULL=falseinconfig/overleaf.rc.
bin/up, il Toolkit scarica automaticamente tutte le immagini elencate in ALL_TEX_LIVE_DOCKER_IMAGES.
Ecco un esempio in cui usiamo TeX Live 2026 come predefinito per i nuovi progetti e manteniamo la 2025 per i progetti esistenti.
- Installazione minima
- Installazione completa
La seguente configurazione installa tutte le immagini Docker TeX Live complete dal 2025 al 2026. Prima di usare questa configurazione, ti consigliamo di avere almeno 64 GB di spazio di archiviazione disponibile.
config/variables.env
Ti consigliamo vivamente di impostare almeno 2 immagini texlive-full. Per il motivo dettagliato, consulta #known-issues
Immagini TeX Live disponibili
Questa è una serie di immagini TeX Live ottimizzate appositamente per Overleaf, che possono essere aggiunte anche aTEX_LIVE_DOCKER_IMAGE e ALL_TEX_LIVE_DOCKER_IMAGES:
ghcr.io/ayaka-notes/texlive-full:2026.1(anche con 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
Posso usare un altro registry di immagini?
Alcuni si chiedono se sia possibile sostituire ghcr.io con un altro sito mirror, oppure passare a un’altra immagine texlive da Docker Hub.
No, non lo consigliamo, perché la configurazione è relativamente complessa. Se scarichi da un sito mirror, puoi rinominare la tua immagine in ghcr.io/ayaka-notes/texlive-full.
Se però vuoi davvero usare il tuo registry di immagini, aggiungi:
config/variables.env
your-repo, ad esempio
hub.your.com/your-repo/texlive-full:2025.1hub.your.com/your-repo/texlive-full:2024.1
sandboxed-compiles/index.mjs
Sincronizzazione automatica delle immagini TeX Live
Per evitare di aggiornare manualmente la tua istanza conbin/up ogni volta, puoi automatizzare gli aggiornamenti delle immagini TeX Live. Consulta updating-tex-live-full-images-automatically.md.
Problemi noti
Questo è un caso reale tratto dalla community di Overleaf:UsandoA causa di alcune limitazioni tecniche, se configuri una sola immagine Docker di TeX Live, ad esempio6.0.1-ext-v3.3, ho queste impostazioni invariables.env:Funziona correttamente contexlive/texlive:latest-full. Tuttavia, ho scaricato un’altra immagine texlive,danteev/texlive:2025-10-15, e ho cambiato entrambe queste variabili con il nome della nuova immagine, ma non funziona:Nei log vedo quanto segue:Sembra che le impostazioni aggiornate invariables.envnon abbiano effetto. La compilazione cerca ancora di usare l’immaginetexlive/texlive:latest-fulle non quella nuova. Ho provato a riavviare, a eliminare i container e a rieseguirli, ma il problema persiste. Qualche soluzione?
texlive-fullA:latest
texlive-fullB:latest, noterai che i tuoi utenti non riescono più a compilare alcun progetto.

