Skip to main content
Si vous souhaitez configurer les compilations en sandbox pour le développement, il existe quelques différences entre l’environnement de développement et celui de production. Trois points demandent votre attention :
  • Problème de permissions de fichiers
  • Partage de volume entre history-v1 et filestore
  • Problème des sous-répertoires

Activer les compilations en sandbox

Ici, il suffit d’activer les compilations en sandbox comme dans Overleaf CE. Il faut seulement faire attention à l’utilisateur. Nous le définissons ici sur root. En production, nous utilisons www-data comme utilisateur partagé entre le conteneur Overleaf et le conteneur de compilation TeX. En revanche, dans l’environnement de développement, node est l’utilisateur par défaut du conteneur, et il n’existe pas d’utilisateur www-data pour faire le lien. Nous utilisons donc root comme solution de contournement.
N’utilisez pas votre propre image construite localement, vous risqueriez de rencontrer une série d’erreurs.

Corriger les permissions de fichiers

LaTeX s’exécute dans les conteneurs frères sous l’utilisateur indiqué dans la variable d’environnement TEXLIVE_IMAGE_USER. Dans l’exemple ci-dessus, il s’agit de root, dont l’uid est 0. Cela pose un problème avec les permissions ci-dessus, car l’utilisateur root n’a pas le droit d’écrire dans les sous-dossiers de compiles. Une solution rapide consiste à attribuer la propriété de groupe root et les droits de lecture/écriture sur compiles, avec setgid activé afin que les nouveaux sous-dossiers héritent également de cette propriété :
bash
Pour une documentation détaillée, consultez services/clsi/README.md.

Partage de volume entre history-v1 et filestore

Par défaut, filestore sert de passerelle entre S3 et les autres services d’Overleaf. Cependant, dans Overleaf CE ou Server Pro, tous les fichiers sont stockés localement par défaut. Overleaf a donc introduit une méthode assez astucieuse.
server-ce/config/settings.js
Parallèlement, data/history est également utilisé par le service d’historique. Ainsi, les différents microservices peuvent partager les mêmes données. Vous devez ajouter le volume history-v1-buckets à votre service filestore en développement. Sinon, clsi ne pourra pas récupérer les fichiers blob depuis le service filestore.
develop/docker-compose.yml
Vous devez également ajouter le nom des buckets aux paramètres de dev.env :
develop/dev.env

Utiliser les sous-répertoires

Filestore utilise useSubdirectories à true par défaut ; cependant, en développement, history v1 va aplatir toutes les données. Cela provoque des conflits. Pour y remédier, vous devez ajouter ce qui suit :
develop/dev.env
Dans history v1, tous les fichiers project_blobs sont initialement stockés ainsi :
Vous devez définir useSubdirectories à true pour passer en mode sous-répertoires. Les _ d’origine dans les blobs seront alors remplacés par des /.
Dernière modification le 5 octobre 2026