Server Pro infrastructure
Services
The Server Pro infrastructure comprises four primary services: sharelatex, git-bridge (optional), mongo and redis. The sharelatex service, which runs the main Server Pro application, depends on the mongo and redis services for its database and caching/real-time functionalities and the git-bridge to handle the Git integration (optional). The only port published on the host machine is port 80, which is by the sharelatex container.
Server Pro also optionally supports S3 compatible storage for project files and full project history as well as being able to proxy access to the main Overleaf documentation site. For more information, see our guide on Adding LaTeX user help pages.
Compiling
For Sandboxed Compiles, the sharelatex container will orchestrate the creation of new containers to handle project compiles, it does this via the Docker socket on the host machine. You can read more about the editor and end-to-end compile/caching process here.
Networking
Communication between containers is facilitated through Docker's internal DNS resolution via a dedicated bridge network, and no firewalls are enabled. By default, the above services use their respective standard ports but are configurable by environment variables. The sharelatex container uses port 80 for external web access (served by Nginx), the mongo container uses port 27017 and redis uses port 6379.
For customers using our managed solution Overleaf Toolkit, you can optionally enable a TLS proxy for terminating HTTPS connections using Nginx via an environment variable. Alternatively, you can use your existing TLS proxy.
Summary
Outside the Docker network, only port 80 is accessible and bound to Nginx. Note: The
sharelatexcontainer runs many services that communicate with each other via HTTP. However, these ports are not accessible from outside the Docker network.Inside the Docker network, Overleaf services, MongoDB, Redis and Git Bridge can talk to each other freely.
Inside Sandboxed Compiles containers, no network is available.
Last updated
Was this helpful?