diff --git a/api/config/sandbox.cfg b/api/config/sandbox.cfg index b9f7ce60..5e64c247 100644 --- a/api/config/sandbox.cfg +++ b/api/config/sandbox.cfg @@ -52,6 +52,28 @@ mount { mandatory: false } +# Read-only configuration for native document tools. fontconfig loads its +# configuration from /etc/fonts, so font matching inside the jail has no +# configuration without it. Debian's LibreOffice ships +# /usr/lib/libreoffice/share/registry/main.xcd as a symlink into +# /etc/libreoffice and aborts at startup when that link dangles. Neither path +# holds executables or secrets; both are optional for images without them. +mount { + src: "/etc/fonts" + dst: "/etc/fonts" + is_bind: true + rw: false + mandatory: false +} + +mount { + src: "/etc/libreoffice" + dst: "/etc/libreoffice" + is_bind: true + rw: false + mandatory: false +} + # Static /etc/hosts so "localhost" resolves for tool-call-server connections. # Uses inline content instead of bind-mounting the host's /etc/hosts, which # in Kubernetes leaks pod name, internal IP, and deployment metadata.