overleaf/server-ce
Jakob Ackermann ac82600b74 [misc] minimize base image (#120)
* [docker] drop sudo

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

* [docker] install qpdf in a single stage

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

* [docker] install texlive and additional tlmgr packages in a single stage

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

* [docker] drop the apt package lists

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

* [docker] pull the package lists only once

move the installation of nodejs into the dependencies install section

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

* [docker] delete the default nginx configuration files immediately

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

* [docker] skip the downloading and storage of unused texlive artifacts

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

* [docker] drop the npm download cache

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

* [docker] apply review feedback

- install qpdf as ubuntu package
- add a comment on the nginx config removal
- add back and update a note on changing the texlive mirror
2020-02-13 12:00:03 +01:00
..
hotfix
init_scripts [misc] narrow down the rw accessible directories for the run user (#119) 2020-01-29 12:14:32 +01:00
logrotate
nginx [nginx] simplify the root specification for sendfile (#121) 2020-02-13 11:59:20 +01:00
runit Removed node6 and updated modules to Node 10 (#135) 2020-02-06 11:19:15 +01:00
.dockerignore
.editorconfig
.gitignore
Dockerfile [misc] minimize base image (#120) 2020-02-13 12:00:03 +01:00
Dockerfile-base [misc] minimize base image (#120) 2020-02-13 12:00:03 +01:00
git-revision.sh [misc] export all git repository revisions 2020-01-23 10:57:36 +01:00
Makefile
package.json
README.md
services.js
settings.coffee [settings] produce a consistent redis config for every service (#124) 2020-02-13 11:56:03 +01:00

Overleaf Docker Image

This is the source for building the Overleaf community-edition docker image.

End-User Install

Please see the offical wiki for install guides

Development

This repo contains two dockerfiles, Dockerfile-base, which builds the sharelatex/sharelatex-base image, and Dockerfile which builds the sharelatex/sharelatex (or "community") image.

The Base image generally contains the basic dependencies like wget and aspell, plus texlive. We split this out because it's a pretty heavy set of dependencies, and it's nice to not have to rebuild all of that every time.

The sharelatex/sharelatex image extends the base image and adds the actual Overleaf code and services.

Use make build-base and make build-community to build these images.

How the Overleaf code gets here

This repo uses the public Overleaf repository, which used to be the main public source for the Overleaf system.

That repo is cloned down into the docker image, and a script then installs all the services.

How services run inside the container

We use the Phusion base-image (which is extended by our base image) to provide us with a VM-like container in which to run the Overleaf services. Baseimage uses the runit service manager to manage services, and we add our init-scripts from the ./runit folder.