Segurança aprimorada
Os Sandboxed Compiles são a abordagem recomendada para o Ayakaleaf Pro, pois muitos documentos LaTeX exigem ou têm a capacidade de executar comandos de shell arbitrários como parte do processo de compilação do PDF. Se você usar Sandboxed Compiles, cada compilação será executada em um contêiner Docker separado, com capacidades limitadas que não são compartilhadas com nenhum outro usuário ou projeto, e sem acesso a recursos externos, como a rede do host.Gerenciamento de pacotes mais fácil
Para evitar a instalação manual de pacotes, recomendamos ativar os Sandboxed Compiles. Essa é uma configuração ajustável no Server Pro que fornecerá aos seus usuários acesso ao mesmo ambiente TeX Live do overleaf.com, mas dentro da sua própria instalação on-premises. As imagens do TeX Live usadas pelos Sandboxed Compiles contêm os pacotes e as fontes mais populares, testados com os templates da nossa galeria, garantindo a máxima compatibilidade com projetos on-premises. Ativar os Sandboxed Compiles permite configurar quais versões do TeX Live os usuários podem escolher dentro de seus projetos, além de definir uma versão padrão da imagem do TeX Live para novos projetos.Se você tentar executar o Ayakaleaf Pro sem Sandboxed Compiles, sua instância usará por padrão uma versão com esquema básico do TeX Live para as compilações. Essa versão básica é leve e contém apenas um subconjunto muito limitado de pacotes LaTeX, o que muito provavelmente resultará em erros de pacotes ausentes para seus usuários, especialmente se tentarem usar templates prontos.
Os Sandboxed Compiles exigem que o contêiner
sharelatex tenha acesso ao socket do Docker na máquina host (por meio de um bind mount), para que possa gerenciar esses contêineres de compilação irmãos.Como funciona
Quando os Sandboxed Compiles estão ativados, o socket do Docker é montado da máquina host no contêinersharelatex, para que o serviço de compilação no contêiner possa criar novos contêineres Docker no host. Em seguida, para cada execução do compilador em cada projeto, o serviço de compilação LaTeX (CLSI) fará o seguinte:
- Gravar os arquivos do projeto em um local dentro do
OVERLEAF_DATA_PATH. - Usar o socket do Docker montado para criar um novo contêiner
texlivepara a execução da compilação. - Fazer com que o contêiner
texliveleia os dados do projeto a partir do local emOVERLEAF_DATA_PATH. - Compilar o projeto dentro do contêiner
texlive.
Ativando os Sandboxed Compiles
Para usuários do Toolkit
Para ativar os Sandboxed Compiles (também conhecidos como Sibling containers), defina as seguintes opções de configuração emoverleaf-toolkit/config/overleaf.rc:
config/overleaf.rc
Para usuários do Docker Compose
A partir do Overleaf CE/Server Pro
5.0.3, as variáveis de ambiente foram renomeadas de SHARELATEX_* para OVERLEAF_*.4.x (ou anterior), certifique-se de que as variáveis tenham o prefixo correspondente (por exemplo, SHARELATEX_MONGO_URL em vez de OVERLEAF_MONGO_URL).
Configurar a imagem do TeX Live
Para usuários da China continental, é possível substituir
ghcr.io por ghcr.nju.edu.cn para acelerar o download. Mas NÃO use ghcr.nju.edu.cn diretamente nas configurações de ambiente do Toolkit. Você deve manter ghcr.io como sua única opção.TEX_LIVE_DOCKER_IMAGE(obrigatória), A imagem padrão do TeX Live usada para compilar novos projetos. Essa imagem deve estar incluída emALL_TEX_LIVE_DOCKER_IMAGES.ALL_TEX_LIVE_DOCKER_IMAGE_NAMES(obrigatória), Uma lista separada por vírgulas de nomes amigáveis para as imagens, usados nas opções do frontend.ALL_TEX_LIVE_DOCKER_IMAGES(obrigatória), Uma lista separada por vírgulas das imagens do TeX Live a serem usadas. Se o Overleaf Toolkit for usado na implantação, essas imagens serão baixadas ou atualizadas. Para pular o download, definaSIBLING_CONTAINERS_PULL=falseemconfig/overleaf.rc.
bin/up, o Toolkit baixará automaticamente todas as imagens listadas em ALL_TEX_LIVE_DOCKER_IMAGES.
Aqui está um exemplo em que usamos o TeX Live 2026 como padrão para novos projetos e mantemos o 2025 em uso para projetos antigos.
- Instalação mínima
- Instalação completa
A configuração a seguir instala todas as imagens Docker completas do TeX Live de 2025 a 2026. Recomendamos ter pelo menos 64 GB de armazenamento disponível antes de usar esta configuração.
config/variables.env
É altamente recomendável configurar pelo menos 2 imagens texlive-full. Para saber o motivo em detalhes, consulte #known-issues
Imagens do TeX Live disponíveis
Estas são uma série de imagens do TeX Live especialmente otimizadas para o Overleaf, que também podem ser adicionadas aTEX_LIVE_DOCKER_IMAGE e ALL_TEX_LIVE_DOCKER_IMAGES:
ghcr.io/ayaka-notes/texlive-full:2026.1(também com a 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 usar outro registro de imagens?
Algumas pessoas podem se perguntar se é possível substituir ghcr.io por outro site espelho, ou trocar o texlive por outra imagem do Docker Hub.
Não recomendamos, pois a configuração é relativamente complicada. Se você estiver baixando de um site espelho, pode renomear sua imagem para ghcr.io/ayaka-notes/texlive-full.
Mas, se você realmente quiser usar seu próprio registro de imagens, adicione:
config/variables.env
your-repo, como
hub.your.com/your-repo/texlive-full:2025.1hub.your.com/your-repo/texlive-full:2024.1
sandboxed-compiles/index.mjs
Sincronização automatizada das imagens do TeX Live
Para evitar ter que atualizar manualmente sua instância combin/up toda vez, você pode automatizar as atualizações da sua imagem do TeX Live. Consulte updating-tex-live-full-images-automatically.md.
Problemas conhecidos
Este é um caso real da comunidade do Overleaf:Usando aDevido a algumas limitações técnicas, se você configurar apenas uma única imagem Docker do TeXLive, como6.0.1-ext-v3.3, tenho estas configurações emvariables.env:Isso funciona bem comtexlive/texlive:latest-full. No entanto, baixei outra imagem do texlive,danteev/texlive:2025-10-15, e alterei ambas as variáveis para o novo nome da imagem, mas não funciona:Nos logs, vejo o seguinte:Parece que as configurações atualizadas emvariables.envnão estão surtindo efeito. A compilação ainda tenta executar a imagemtexlive/texlive:latest-full, e não a nova imagem. Tentei reiniciar, excluir os contêineres e executar novamente, mas o problema continua o mesmo. Alguma solução?
texlive-fullA:latest
texlive-fullB:latest. Então, verá que seus usuários não conseguem compilar nenhum projeto.

