Skip to main content
Há algumas diferenças entre os ambientes de desenvolvimento e de produção caso você queira configurar o Sandbox Compiles para desenvolvimento. Há 3 pontos aos quais você precisa prestar atenção:
  • Problema de permissões de arquivos
  • Compartilhamento de volume entre history-v1 e filestore
  • Problema de subdiretórios

Habilitar o Sandbox Compiles

Aqui, basta habilitar o Sandbox Compiles da mesma forma que fazemos no Overleaf CE. No entanto, precisamos prestar atenção ao usuário. Aqui, nós o definimos como root. No ambiente de produção, usamos www-data como usuário compartilhado entre o contêiner do Overleaf e o contêiner de compilação TeX. No entanto, no ambiente de desenvolvimento, node é o usuário padrão do contêiner, e não há um usuário www-data para fazer essa ligação. Por isso, usamos root como solução alternativa.
Não use uma imagem construída por você mesmo, pois você pode encontrar uma série de erros.

Corrigir permissões de arquivos

O LaTeX é executado nos contêineres irmãos com o usuário especificado na variável de ambiente TEXLIVE_IMAGE_USER. No exemplo acima, ela está definida como root, que tem uid 0. Isso cria um problema com as permissões acima, pois o usuário root não tem permissão para gravar nas subpastas de compiles. Uma solução rápida é dar ao grupo root a propriedade e permissões de leitura e gravação em compiles, com setgid definido para que novas subpastas também herdem essa propriedade:
bash
Para a documentação detalhada, consulte services/clsi/README.md.

Compartilhamento de volume entre history-v1 e filestore

Por padrão, o filestore atua como uma ponte entre o S3 e os outros serviços do Overleaf. No entanto, no Overleaf CE ou no Server Pro, todos os arquivos são armazenados localmente por padrão. Por isso, o Overleaf introduziu um método bastante engenhoso.
server-ce/config/settings.js
Ao mesmo tempo, data/history também é usado pelo serviço de histórico. Dessa forma, eles podem compartilhar os mesmos dados entre diferentes microsserviços. Você precisa adicionar o volume history-v1-buckets ao serviço filestore no ambiente de desenvolvimento. Caso contrário, o clsi não conseguirá obter os arquivos blob do serviço filestore.
develop/docker-compose.yml
Você também precisa adicionar o nome do BUCKET às configurações de dev.env:
develop/dev.env

Usar subdiretórios

O filestore usa useSubdirectories como true por padrão; no entanto, em desenvolvimento, o history v1 achata todos os dados. Isso causa alguns conflitos. Para corrigir isso, você precisa adicionar o seguinte:
develop/dev.env
No history v1, todos os arquivos de project_blobs são originalmente armazenados assim:
Você precisa definir useSubdirectories como true para mudar para o modo de subdiretórios. Agora, o _ original no blob será substituído por / .
Última modificação em 5 de outubro de 2026