Skip to main content
Hay algunas diferencias entre el entorno de desarrollo y el de producción si quieres configurar compilaciones en sandbox para desarrollo. Hay 3 cosas que debes tener en cuenta:
  • Problema de permisos de archivos
  • Volumen compartido entre history-v1 y filestore
  • Problema de subdirectorios

Habilitar compilaciones en sandbox

Aquí solo tenemos que habilitar las compilaciones en sandbox igual que en Overleaf CE. Sin embargo, debemos prestar atención al usuario. En este caso lo establecemos en root. En el entorno de producción usamos www-data como usuario compartido entre el contenedor de Overleaf y el contenedor de compilación de TeX. Sin embargo, en el entorno de desarrollo, node es el usuario predeterminado del contenedor y no existe ningún usuario www-data con el que enlazarlo. Por eso usamos root como solución alternativa.
No uses tu propia imagen compilada; podrías encontrarte con una serie de errores.

Corregir los permisos de archivos

LaTeX se ejecuta en los contenedores hermanos como el usuario especificado en la variable de entorno TEXLIVE_IMAGE_USER. En el ejemplo anterior está establecida en root, que tiene el uid 0. Esto genera un problema con los permisos anteriores, ya que el usuario root no tiene permiso para escribir en las subcarpetas de compiles. Una solución rápida es dar al grupo root la propiedad y permisos de lectura y escritura sobre compiles, con setgid establecido para que las nuevas subcarpetas también hereden esta propiedad:
bash
Para obtener documentación detallada, consulta services/clsi/README.md.

Volumen compartido entre history-v1 y filestore

De forma predeterminada, filestore actúa como puente entre S3 y los demás servicios de Overleaf. Sin embargo, en Overleaf CE o Server Pro, todos los archivos se almacenan localmente de forma predeterminada. Por ello, Overleaf introdujo un método muy ingenioso.
server-ce/config/settings.js
Al mismo tiempo, data/history también lo usa el servicio de historial. De esta forma, pueden compartir los mismos datos entre distintos microservicios. Debes añadir este volumen history-v1-buckets a tu servicio filestore en desarrollo. De lo contrario, clsi no podrá obtener los archivos blob del servicio filestore.
develop/docker-compose.yml
También debes añadir el nombre del BUCKET a la configuración de dev.env:
develop/dev.env

Usar subdirectorios

Filestore usa useSubdirectories con valor true de forma predeterminada; sin embargo, en desarrollo, history v1 aplana todos los datos. Esto provoca algunos conflictos. Para solucionarlo, debes añadir lo siguiente:
develop/dev.env
En history v1, todos los archivos de project_blobs se almacenan originalmente así:
Debes establecer useSubdirectories en true para cambiar al modo de subdirectorios. Ahora, el _ original en el blob se sustituirá por /.
Última modificación el 5 de octubre de 2026