Skip to content
README.md 2.61 KiB
Newer Older
ShareLaTeX Docker Image
=======================

*THIS IS A WORK IN PROGRESS AND THESE INSTRUCTIONS DO NOT WORK YET!*

The recommended way to install and run ShareLaTeX Community Edition is via Docker:

```
$ docker run -d -v /sharelatex-data:/var/lib/sharelatex --net=host --name=sharelatex sharelatex/sharelatex
```

This will download the ShareLaTeX image and start it running in the background.

**Which port does it listen on?**.

### Mongo and Redis

The `--net=host` option to docker will allow the ShareLaTeX container to access
ports on the local system. By default it looks for an instance of
[MongoDB](http://www.mongodb.org/) (must be version 2.4 or later) running on port 27017, and
[Redis](http://redis.io/) (must be version 2.6.12 or later) running on port 6379. These are the default ports for
a standard installation of MongoDB and Redis.

### Persisting and backing up data

The `-v /sharelatex-data:/var/lib/sharelatex` option in the `run` command tells Docker to mount the local
directory `/sharelatex-data` in the container at `/var/lib/sharelatex`. This is
where ShareLaTeX will store user uploaded files, and allows you to make external backups
of these files, as well as persist them between updates to the ShareLaTeX image.

### LaTeX environment

To save bandwidth, the ShareLaTeX image only comes with a minimal install of 
TeXLive. To upgrade to a complete TeXLive installation, run the following command:

```
$ docker exec sharelatex tlmgr install scheme-full
```

Or you can install packages manually as you need by replacing `scheme-full` by 
the package name

### Configuration Options

You can pass configuration options to ShareLaTeX as environment variables:

```
$ docker run -d \
	-v /sharelatex-data:/var/lib/sharelatex \
	--net=host \
	--name=sharelatex \
	--env SHARELATEX_MONGO_URL=mongodb://my.mongo.host/sharelatex \
	sharelatex/sharelatex
```

The available configuration parameters are:

* `SHARELATEX_SITE_URL`: Where your instance of ShareLaTeX is publically available.
This is used in public links, and when connecting over websockets, so much be
configured correctly!
* `SHARELATEX_MONGO_URL`: The URL of the Mongo database to use
* `SHARELATEX_REDIS_HOST`: The host name of the Redis instance to use
* `SHARELATEX_REDIS_PORT`: The port of the Redis instance to use
* `SHARELATEX_REDIS_PASS`: The password to use when connecting to Redis (if applicable)
* `SHARELATEX_SECURE_COOKIE`: Set this to something non-zero to use a secure cookie.
  This requires that your ShareLaTeX instance is running behind SSL.

### Upgrading from older versions

*TODO: Just stop container, remove 'sharelatex' tag, and run with the new version.*