Skip to main content
Jeśli chcesz skonfigurować Sandbox Compiles w środowisku deweloperskim, musisz wiedzieć, że istnieją pewne różnice między środowiskiem deweloperskim a produkcyjnym. Należy zwrócić uwagę na 3 kwestie:
  • Problem z uprawnieniami do plików
  • Współdzielenie wolumenu między history-v1 a filestore
  • Problem z podkatalogami

Włączanie Sandbox Compiles

Wystarczy włączyć Sandbox Compiles tak samo jak w Overleaf CE. Trzeba jednak zwrócić uwagę na użytkownika — tutaj ustawiamy go na root. W środowisku produkcyjnym używamy www-data jako wspólnego użytkownika kontenera Overleaf i kontenera kompilacji TeX. Jednak w środowisku deweloperskim domyślnym użytkownikiem w kontenerze jest node i nie ma użytkownika www-data, którego można by do tego wykorzystać. Dlatego jako obejście używamy po prostu root.
Nie używaj własnoręcznie zbudowanego obrazu — możesz napotkać szereg błędów.

Naprawa uprawnień do plików

LaTeX działa w kontenerach równoległych (sibling containers) jako użytkownik określony w zmiennej środowiskowej TEXLIVE_IMAGE_USER. W powyższym przykładzie ustawiono ją na root, który ma uid 0. Powoduje to problem z powyższymi uprawnieniami, ponieważ użytkownik root nie ma uprawnień do zapisu w podfolderach compiles. Szybkim rozwiązaniem jest nadanie grupie root własności oraz uprawnień do odczytu i zapisu katalogu compiles, z ustawionym bitem setgid, aby nowe podfoldery również dziedziczyły tę własność:
bash
Szczegółową dokumentację znajdziesz w pliku services/clsi/README.md.

Współdzielenie wolumenu między history-v1 a filestore

Domyślnie filestore pełni rolę pomostu między S3 a innymi usługami w Overleaf. Jednak w Overleaf CE lub Server Pro wszystkie pliki są domyślnie przechowywane lokalnie. Dlatego Overleaf wprowadził dość nietypowe rozwiązanie.
server-ce/config/settings.js
Jednocześnie katalog data/history jest również używany przez usługę history. Dzięki temu różne mikrousługi mogą współdzielić te same dane. Musisz dodać wolumen history-v1-buckets do usługi filestore w środowisku deweloperskim. W przeciwnym razie clsi nie będzie w stanie pobierać plików blob z usługi filestore.
develop/docker-compose.yml
Musisz również dodać nazwy BUCKET do ustawień w dev.env:
develop/dev.env

Używanie podkatalogów

Filestore domyślnie ma ustawione useSubdirectories na true, jednak w środowisku deweloperskim history v1 spłaszcza wszystkie dane. Powoduje to pewne konflikty. Aby to naprawić, dodaj następujące ustawienia:
develop/dev.env
W history v1 wszystkie pliki project_blobs są pierwotnie przechowywane w następujący sposób:
Musisz ustawić useSubdirectories na true, aby przełączyć się w tryb podkatalogów. Wówczas pierwotne znaki _ w nazwach blobów zostaną zastąpione przez / .
Ostatnia modyfikacja 5 października 2026