diff --git a/README.md b/README.md index 7e15159eb9..38b6871eb9 100644 --- a/README.md +++ b/README.md @@ -14,30 +14,866 @@ License
-- Figure 1: A screenshot of a project being edited in Overleaf Community Edition. + Figure 1: A screenshot of a project being edited in Overleaf Extended Community Edition.
## Community Edition -[Overleaf](https://www.overleaf.com) is an open-source online real-time collaborative LaTeX editor. We run a hosted version at [www.overleaf.com](https://www.overleaf.com), but you can also run your own local version, and contribute to the development of Overleaf. +[Overleaf](https://www.overleaf.com) is an open-source online real-time collaborative LaTeX editor. Overleaf runs a hosted version at [www.overleaf.com](https://www.overleaf.com), but you can also run your own local version, and contribute to the development of Overleaf. + +## Extended Community Edition + +The present "extended" version of Overleaf CE includes: + +- Sandboxed Compiles with TeX Live image selection +- LDAP authentication +- SAML authentication +- OpenID Connect authentication +- Real-time track changes and comments +- Autocomplete of reference keys +- Symbol Palette ## Enterprise -If you want help installing and maintaining Overleaf in your lab or workplace, we offer an officially supported version called [Overleaf Server Pro](https://www.overleaf.com/for/enterprises). It also includes more features for security (SSO with LDAP or SAML), administration and collaboration (e.g. tracked changes). [Find out more!](https://www.overleaf.com/for/enterprises) - -## Keeping up to date - -Sign up to the [mailing list](https://mailchi.mp/overleaf.com/community-edition-and-server-pro) to get updates on Overleaf releases and development. +If you want help installing and maintaining Overleaf in your lab or workplace, Overleaf offers an officially supported version called [Overleaf Server Pro](https://www.overleaf.com/for/enterprises). ## Installation -We have detailed installation instructions in the [Overleaf Toolkit](https://github.com/overleaf/toolkit/). +Detailed installation instructions can be found in the [Overleaf Toolkit](https://github.com/overleaf/toolkit/). +To run a custom image, add a file named docker-compose.override.yml with the following or similar content into the `overleaf-toolkit/config directory`: -## Upgrading +```yml +--- +version: '2.2' +services: + sharelatex: + image: sharelatex/sharelatex:ext-ce + volumes: + - ../config/certs:/overleaf/certs +``` +Here, the attached volume provides convenient access for the container to the certificates needed for SAML or LDAP authentication. -If you are upgrading from a previous version of Overleaf, please see the [Release Notes section on the Wiki](https://github.com/overleaf/overleaf/wiki#release-notes) for all of the versions between your current version and the version you are upgrading to. +If you want to build a Docker image of the extended CE based on the upstream v5.3.1 codebase, you can check out the corresponding tag by running: +``` +git checkout v5.3.1-ext-v1 +``` +After building the image, switch to the latest state of the repository and check the `server-ce/hotfix` directory. If a subdirectory matching your version (e.g., `5.3.1`) exists, build a patched image. +Alternatively, you can download a prebuilt image from Docker Hub: +``` +docker pull overleafcep/sharelatex:5.3.1-ext-v1 +``` +Make sure to update the image name in overleaf-toolkit/config/docker-compose.override.yml accordingly. + +## Sandboxed Compiles + +To enable sandboxed compiles (also known as "Sibling containers"), set the following configuration options in `overleaf-toolkit/config/overleaf.rc`: + +``` +SERVER_PRO=true +SIBLING_CONTAINERS_ENABLED=true +``` + +The following environment variables are used to specify which TeX Live images to use for sandboxed compiles: + +- `ALL_TEX_LIVE_DOCKER_IMAGES` **(required)** + * A comma-separated list of TeX Live images to use. These images will be downloaded or updated. + To skip downloading the images, set `SIBLING_CONTAINERS_PULL=false` in `config/overleaf.rc`. +- `ALL_TEX_LIVE_DOCKER_IMAGE_NAMES` + * A comma-separated list of friendly names for the images. If omitted, the version name will be used (e.g., `latest-full`). +- `TEX_LIVE_DOCKER_IMAGE` **(required)** + * The default TeX Live image that will be used for compiling new projects. The environment variable `ALL_TEX_LIVE_DOCKER_IMAGES` must include this image. + +Users can select the image for their project in the project menu. + +Here is an example where the default TeX Live image is `latest-full` from Docker Hub, but the `TL2023-historic` image can be used for older projects: +``` +ALL_TEX_LIVE_DOCKER_IMAGES=texlive/texlive:latest-full, texlive/texlive:TL2023-historic +ALL_TEX_LIVE_DOCKER_IMAGE_NAMES=TeXLive 2024, TeXLive 2023 +TEX_LIVE_DOCKER_IMAGE=texlive/texlive:latest-full +``` +For additional details refer to +[Server Pro: Sandboxed Compiles](https://github.com/overleaf/overleaf/wiki/Server-Pro:-Sandboxed-Compiles) and +[Toolkit: Sandboxed Compiles](https://github.com/overleaf/toolkit/blob/master/doc/sandboxed-compiles.md). + +When the compilation takes place in a dedicated container, it is relatively safe to permit running external commands from inside the TeX +file during compilation. This is required for packages like `minted`. For this purpose, the following environment variable can be used: + +- `TEX_COMPILER_EXTRA_FLAGS` + * A list of extra flags for TeX compiler. Example: `-shell-escape -file-line-error` + +