2014-02-12 06:24:13 -05:00
|
|
|
ShareLaTeX
|
|
|
|
==========
|
|
|
|
|
2014-02-08 14:40:56 -05:00
|
|
|
ShareLaTeX is a web based collaborative LaTeX editor. There are two versions of it,
|
|
|
|
the online version that anyone can sign up to at www.sharelatex.com, and this open source
|
|
|
|
version which allows anyone to run a local installation of ShareLaTeX.
|
|
|
|
|
|
|
|
This repository pulls together all of the different services in ShareLaTeX's service
|
|
|
|
orientied architecture (SOA).
|
|
|
|
|
|
|
|
Installation
|
2014-02-12 06:24:13 -05:00
|
|
|
------------
|
2014-02-08 14:40:56 -05:00
|
|
|
|
|
|
|
First, check out a local copy of this repository:
|
|
|
|
|
|
|
|
$ git clone git@github.com:sharelatex/sharelatex.git
|
|
|
|
$ cd sharelatex
|
|
|
|
|
2014-02-12 06:24:13 -05:00
|
|
|
Next install all the Node modules and ShareLaTeX services:
|
2014-02-08 14:40:56 -05:00
|
|
|
|
|
|
|
$ npm install
|
2014-02-12 06:24:13 -05:00
|
|
|
$ grunt install
|
2014-02-08 14:40:56 -05:00
|
|
|
|
|
|
|
When that has finished, run ShareLaTeX with
|
|
|
|
|
|
|
|
$ grunt run
|
|
|
|
|
|
|
|
ShareLaTeX should now be running at http://localhost:3000.
|
|
|
|
|
|
|
|
Dependencies
|
2014-02-12 06:24:13 -05:00
|
|
|
------------
|
|
|
|
|
|
|
|
You need:
|
2014-02-08 14:40:56 -05:00
|
|
|
|
2014-02-12 06:24:13 -05:00
|
|
|
* Node.js 0.10 or greater
|
|
|
|
* Grunt command line tools (Run `npm install -g grunt-cli` to install them)
|
|
|
|
* A local instance of Redis and Mongodb running on their standard ports.
|
2014-02-08 14:40:56 -05:00
|
|
|
|
|
|
|
Other repositories
|
2014-02-12 06:24:13 -05:00
|
|
|
------------------
|
2014-02-08 14:40:56 -05:00
|
|
|
|
|
|
|
ShareLaTeX consists of many separate services, each with their own Node.js process
|
|
|
|
and source code repository. These are all downloaded when you run `npm install` and
|
|
|
|
they are run when you run `grunt run`.
|
|
|
|
|
|
|
|
The different services are:
|
|
|
|
|
2014-02-12 06:24:13 -05:00
|
|
|
### web-sharelatex
|
2014-02-08 14:40:56 -05:00
|
|
|
|
|
|
|
The front facing web server that serves all the HTML pages, CSS and javascript
|
|
|
|
to the client. Also contains a lot of logic around creating and editing
|
|
|
|
projects, and account management.
|
|
|
|
|
2014-02-12 06:24:13 -05:00
|
|
|
### document-updater-sharelatex
|
2014-02-08 14:40:56 -05:00
|
|
|
|
|
|
|
Process updates that come in from the editor when users modify documents. Ensures that
|
|
|
|
the updates are applied in the right order, and that only one operation is modifying
|
|
|
|
the document at a time. Also caches the documents in redis for very fast but persistent
|
|
|
|
modifications.
|
|
|
|
|
|
|
|
|