GithubHelp home page GithubHelp logo

overleaf / overleaf Goto Github PK

View Code? Open in Web Editor NEW
12.5K 12.5K 1.3K 180 MB

A web-based collaborative LaTeX editor

License: GNU Affero General Public License v3.0

JavaScript 68.19% Dockerfile 0.17% Makefile 0.42% Shell 0.73% HTML 0.01% CSS 0.04% TeX 0.60% Ruby 0.05% Java 2.93% Pug 1.04% Less 3.66% TypeScript 21.99% PLpgSQL 0.01% M4 0.02% SCSS 0.15%

overleaf's Introduction


Overleaf

An open-source online real-time collaborative LaTeX editor.

WikiServer ProContributingMailing ListAuthorsLicense

A screenshot of a project being edited in Overleaf Community Edition

Figure 1: A screenshot of a project being edited in Overleaf Community Edition.

Community Edition

Overleaf is an open-source online real-time collaborative LaTeX editor. We run a hosted version at www.overleaf.com, but you can also run your own local version, and contribute to the development of Overleaf.

Enterprise

If you want help installing and maintaining Overleaf in your lab or workplace, we offer an officially supported version called Overleaf Server Pro. It also includes more features for security (SSO with LDAP or SAML), administration and collaboration (e.g. tracked changes). Find out more!

Keeping up to date

Sign up to the mailing list to get updates on Overleaf releases and development.

Installation

We have detailed installation instructions in the Overleaf Toolkit.

Upgrading

If you are upgrading from a previous version of Overleaf, please see the Release Notes section on the Wiki for all of the versions between your current version and the version you are upgrading to.

Overleaf Docker Image

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 from server-ce/ to build these images.

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 server-ce/runit folder.

Contributing

Please see the CONTRIBUTING file for information on contributing to the development of Overleaf.

Authors

The Overleaf Team

License

The code in this repository is released under the GNU AFFERO GENERAL PUBLIC LICENSE, version 3. A copy can be found in the LICENSE file.

Copyright (c) Overleaf, 2014-2021.

overleaf's People

Contributors

40thieves avatar abourdin avatar aeaton-overleaf avatar barrucadu avatar briangough avatar das7pad avatar davappler avatar dependabot[bot] avatar domagojk avatar emcsween avatar gh2k avatar heukirne avatar hfaulds avatar hrjakobsen avatar ilkin-overleaf avatar jdleesmiller avatar jdomaga avatar lawshe avatar mans0954 avatar mfakhrusy avatar mrjgreen avatar mserranom avatar natestemen avatar paulojreis avatar rebekadekany avatar thomas- avatar timdown avatar timothee-alby avatar warncke avatar winstonli avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

overleaf's Issues

Allow users to choose a new password rather than sending them a new one

We should create a one-use token that allows people to come to ShareLaTeX and type in a new password rather than emailing them a new password.

This would be good for beginners since it's mostly simple server/client stuff, but we need to be careful with the security implementation. Patches welcome!

Local install has missing pages

When visiting the url '/user/subscription' on my local ShareLaTeX install, I get an error page:

Sorry, we can't find the page you are looking for.

A similar issue occurs with the templates page '/templates' but may be unrelated (I can file as a separate bug if it is).

file does not compile

as you said, I open another issue thread

I still cannot compile. Switching between files I get the following error message:
[2014-02-21T14:32:46.127Z] ERROR: web-sharelatex/20109 on goofy: Spelling API error Error: connect ECONNREFUSED at errnoException (net.js:904:11) at Object.afterConnect as oncomplete

recompiling the minimal example I get:
127.0.0.1 - [Fri, 21 Feb 2014 16:12:40 GMT] - - "POST /project/53075e84b6a64e024c000007/flush" 204 - 35 ms [2014-02-21T16:12:40.629Z] INFO: web-sharelatex/20955 on goofy: old doc lines are same as the new doc lines, not updating them (sl_req_id=null, project_id=53075e84b6a64e024c000007, doc_id=53075e84b6a64e024c000008, rev=3) docLines: [ "\\documentclass{article}", "\\usepackage[utf8]{inputenc}", "", "\\title{Testfile}", "\\author{Daniel }", "\\date{February 2014}", "", "\\begin{document}", "", "\\maketitle", "", "\\section{Introduction}", "", "\\end{document}", "" ] [2014-02-21T16:12:40.631Z] INFO: web-sharelatex/20955 on goofy: http request (req.remote-addr=127.0.0.1, req.content-length=229, res.content-length=2, res.response-time=11) POST /project/53075e84b6a64e024c000007/doc/53075e84b6a64e024c000008 HTTP/1.1 [2014-02-21T16:12:40.644Z] INFO: web-sharelatex/20955 on goofy: flushed project from document updater (project_id=53075e84b6a64e024c000007, sl_req_id=null) [2014-02-21T16:12:40.647Z] INFO: web-sharelatex/20955 on goofy: mongo request (request_id=17, collection=sharelatex.projects, response-time=1) query: { "_id": "53075e84b6a64e024c000007" } [2014-02-21T16:12:40.654Z] INFO: web-sharelatex/20955 on goofy: sending compile to CLSI (project_id=53075e84b6a64e024c000007)

previously I had installed the texlive base package, but now I got the texlive-full with the latexmk version as follows:
daniel@goofy:/var/www/sharelatex$ latexmk --version Latexmk, John Collins, 7 May 2011. Version 4.24

Where can I get more log information? The only information I get is
Compile Error: Sorry, something went wrong and the project could not be compiled. This may be due to our compiler being overloaded or an incompatibility with the project. Please try again in a few moments and if the problem continues let us know via the feedback tab at the top.
in the browser window.

Where are the files stored?
daniel@goofy:/var/www/sharelatex$ grep -ri 'February 2014' * daniel@goofy:/var/www/sharelatex$

git clone [email protected]:sharelatex/etc.. does not work, rather use git clone https://github.com/sharelatex/etc...

I fixed this easily in Gruntfile.coffee, but later on, while doing "grunt install" calls to the git@ syntax continue to fail (git 1.8.5.4 on Darwin 13.0)

npm ERR! git clone [email protected]:sharelatex/logger-sharelatex.git Klone in Bare-Repository '/Users/lemmen/.npm/_git-remotes/git-github-com-sharelatex-logger-sharelatex-git-cefef9a5'...
npm ERR! git clone [email protected]:sharelatex/logger-sharelatex.git Permission denied (publickey).
npm ERR! git clone [email protected]:sharelatex/logger-sharelatex.git fatal: Could not read from remote repository.
npm ERR! git clone [email protected]:sharelatex/logger-sharelatex.git
npm ERR! git clone [email protected]:sharelatex/logger-sharelatex.git Please make sure you have the correct access rights
npm ERR! git clone [email protected]:sharelatex/logger-sharelatex.git and the repository exists.

Administration of subscription (admin)

Hi.
Im trying to share my document with a few colleges, and i ran into the limitation of 2 users subscription, unless i subscribe.
Since i cannot subscript (open-source), then how would i add my self as admin or so..
I did a mongodb call, where i set isAdmin : true, and i can access myip.xx/sharelatex/admin

But i can really seem to find any source of this.

Active config file should not be in repo

The configuration file config/settings.development.coffee is presently in the repo. This creates conflict whenever I modify this file to add in S3 credentials, and then do a git pull to test out new fixes.

I suggest that the config file be stored as a sample, like config/settings.development.coffee.sample and have the user copy over changes to the active configuration file config/settings.development.coffee as needed.

This is how many other projects do this to make sure that updates can be still pulled to a running devel environment.

Crash after adding Amazon s3 Credentials

Hi.

After ive added my Amazon s3 credentials i can no longer run grunt run, without crash.

Without force, im getting following error:
http://pastebin.com/e99BUdbf

Ive tried with grunt run --force which gave this error
http://pastebin.com/yiG9MbqS
please note, duing force webinterface is not available, due to errors (see pastebin)

In config/settings.development.coffee following config is set.

    # ShareLaTeX stores binary files like images in S3.
    # Fill in your Amazon S3 credentials below.
    s3:
            key: "MyKEY"
            secret: "MySecret"
            buckets:
                    # The S3 bucket name to store binary files in
                    user_files: "TheBucketName"

Create separate document and project APIs

We have a separate API for updating binary files via S3, but it would be good to have the CRUD logic for both projects and documents abstracted into their own APIs. At the moment this is all in web-sharelatex which makes it quite a monolithic process.

More than 2 users.

Is it possible to add, yourself as admin.
So we can add more than 2 persons to a project ?

Ive tried with mongodb, and set isAdmin : true, but dindt seem to impact anything.

Implement translations into other languages

The easy part is performing the translation in the app, what I am less sure of is how to allow people to manage the translations as we will need a lot of help from many different people. A google doc could be good, wiki of some sort... Ideas?

Track changes functionality

Track every change made to every document by every user. This information can be got and stored by compressing the ShareJS doc ops that are already used by the document updater.

Spelling Server

In the settings.development.coffee it references numerous third party APIs, spelling, tags and thirdPartyDataStore among others. While they don't seem critical to the running of sharelatex, are there any plans to open source these modules?

Do not depend on S3

S3 usage shouldn't be mandatory, allowing ShareLaTeX to run entirely on local hardware.

Local ShareLatex install error: Redis connection to localhost:6379 failed - connect ECONNREFUSED

I tried to install sharelatex locally based on the instructions at git repository except I installed Node, Redis, and Mongo via HomeBrew. I used the following commands once those were installed. Hopefully this is an ok place to report this issue as suggested by the email from ShareLatex about being opensource now. I don't know enough yet to fix it. Many thanks and hopefully it is easy :-)

I'm running Mavericks and executing commands from bash terminal

MY INSTALL INSTRUCTIONS AT COMMAND LINE

Go to where you want to install sharelatex then...

git clone [email protected]:sharelatex/sharelatex.git
cd sharelatex

run npm install on the sharelatex folder

npm install

run grunt install on the sharelatex folder

grunt install

run grunt on sharelatex folder

grunt run

### RESULTS

The download of git went fine.
Each installation step reported done without error.
However, "grunt run" produced the following error.

### FULL LOG FROM 'GRUNT RUN'

Warrick-Work:sharelatex jaywarrick$ grunt run
Running "concurrent:all" (concurrent) task
Running "bunyan" task
Running "bunyan" task
Running "bunyan" task
Running "bunyan" task

Running "execute:filestore" (execute) task
-> executing /Users/jaywarrick/Public/sharelatex/filestore/app.js

Running "execute:web" (execute) task
-> executing /Users/jaywarrick/Public/sharelatex/web/app.js

Running "execute:clsi" (execute) task
-> executing /Users/jaywarrick/Public/sharelatex/clsi/app.js

Running "execute:document-updater" (execute) task
-> executing /Users/jaywarrick/Public/sharelatex/document-updater/app.js
[Error: Symbol DTraceProviderBindings_module not found.]
{ [Error: Cannot find module './build/default/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }
{ [Error: Cannot find module './build/Debug/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }
[Error: Symbol DTraceProviderBindings_module not found.]
{ [Error: Cannot find module './build/default/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }
{ [Error: Cannot find module './build/Debug/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }
[Error: Symbol DTraceProviderBindings_module not found.]
{ [Error: Cannot find module './build/default/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }
{ [Error: Cannot find module './build/Debug/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }
[2014-02-21T21:09:15.330Z] INFO: web-sharelatex/34296 on Warrick-Work.local: Generating file fingerprints...
[2014-02-21T21:09:15.332Z] INFO: web-sharelatex/34296 on Warrick-Work.local: /Users/jaywarrick/Public/sharelatex/web/public/js/libs/require.js: 0cb51c1a5e8e978cbe069c07f3b8d16d
[2014-02-21T21:09:15.332Z] INFO: web-sharelatex/34296 on Warrick-Work.local: /Users/jaywarrick/Public/sharelatex/web/public/js/ide.js: d87d425a4f98c8e17bd46376945ea604
[2014-02-21T21:09:15.333Z] INFO: web-sharelatex/34296 on Warrick-Work.local: /Users/jaywarrick/Public/sharelatex/web/public/js/main.js: 7855a0796ea622c32db8f38bd8a1bfa5
[2014-02-21T21:09:15.333Z] INFO: web-sharelatex/34296 on Warrick-Work.local: /Users/jaywarrick/Public/sharelatex/web/public/js/list.js: 5e078a314fdc0f40fc89fff7ca6309aa
[2014-02-21T21:09:15.334Z] INFO: web-sharelatex/34296 on Warrick-Work.local: /Users/jaywarrick/Public/sharelatex/web/public/js/libs/pdf.js: 39877fdae4da632887722daaa37fddde
[2014-02-21T21:09:15.338Z] INFO: web-sharelatex/34296 on Warrick-Work.local: /Users/jaywarrick/Public/sharelatex/web/public/js/libs/pdf.worker.js: 0501916260115fe0db5163b47a316a76
[2014-02-21T21:09:15.340Z] INFO: web-sharelatex/34296 on Warrick-Work.local: /Users/jaywarrick/Public/sharelatex/web/public/stylesheets/mainStyle.css: d461c2416ece5ed020ca9e35bfec4681
{}
{}
connect.multipart() will be removed in connect 3.0
visit https://github.com/senchalabs/connect/wiki/Connect-3.0 for alternatives
connect.limit() will be removed in connect 3.0
Development Enviroment
[2014-02-21T21:09:15.447Z] INFO: filestore/34292 on Warrick-Work.local: filestore store listening on localhost:3009
[Error: Symbol DTraceProviderBindings_module not found.]
{ [Error: Cannot find module './build/default/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }
{ [Error: Cannot find module './build/Debug/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }
Development Enviroment
[2014-02-21T21:09:15.672Z] INFO: documentupdater/34297 on Warrick-Work.local: documentupdater-sharelatex server listening on port 3003

events.js:72
throw er; // Unhandled 'error' event
^
Error: Redis connection to localhost:6379 failed - connect ECONNREFUSED
at RedisClient.on_error (/Users/jaywarrick/Public/sharelatex/document-updater/node_modules/redis/index.js:140:24)
at Socket. (/Users/jaywarrick/Public/sharelatex/document-updater/node_modules/redis/index.js:74:14)
at Socket.EventEmitter.emit (events.js:95:17)
at net.js:440:14
at process._tickCallback (node.js:415:13)
Warning: -> error 8 /Users/jaywarrick/Public/sharelatex/document-updater/app.js (855ms) Use --force to continue.

Aborted due to warnings.
Warning: Use --force to continue.

Integrate with texlive.js

Great to see that this editor is open source now!
I'm the developer of texlive.js, a port of the latex compiler to javascript, and would love to see ShareLaTeX work with texlive.js.
I'm afraid, I don't have the time to implement this feature myself, right now. But of course I would help anyone who starts coding on this with questions concerning texlive.js.

Problem with redis

I get the following error after installing

[2014-02-21T14:13:47.305Z] INFO: documentupdater/19452 on goofy: getting doc via http (project_id=53075e84b6a64e024c000007, doc_id=53075e84b6a64e024c000008)
Error: Error: ERR wrong number of arguments for 'set' command
at HiredisReplyParser. (/var/www/sharelatex/document-updater/node_modules/redis/index.js:253:27)
at HiredisReplyParser.EventEmitter.emit (events.js:95:17)
at HiredisReplyParser.execute (/var/www/sharelatex/document-updater/node_modules/redis/lib/parser/hiredis.js:41:18)
at RedisClient.on_data (/var/www/sharelatex/document-updater/node_modules/redis/index.js:440:27)
at Socket. (/var/www/sharelatex/document-updater/node_modules/redis/index.js:70:14)
at Socket.EventEmitter.emit (events.js:95:17)
at Socket. (stream_readable.js:746:14)
at Socket.EventEmitter.emit (events.js:92:17)
at emitReadable
(_stream_readable.js:408:10)
at emitReadable (_stream_readable.js:404:5)
at readableAddChunk (_stream_readable.js:165:9)
at Socket.Readable.push (_stream_readable.js:127:10)
at TCP.onread (net.js:528:21)

[2014-02-21T14:13:47.314Z] ERROR: web-sharelatex/19458 on goofy: doc updater returned a non-success status code: 500 (project_id=53075e84b6a64e024c000007, doc_id=53075e84b6a64e024c000008)
url: http://localhost:3003/project/53075e84b6a64e024c000007/doc/53075e84b6a64e024c000008?fromVersion=-1

npm 1.4.3
node v0.10.26
redis-server 2.2.12
grunt-cli v0.1.13

Install documentation no longer accurate

Since the config file was moved to '*.example', the documentation needs updated to indicate the user should copy this file, edit, then run 'grunt install' after that.

Following the current documentation results in:

$ grunt install
No config file could be found at:  [ '/home/user/sharelatex/config/settings.development.coffee',
  '/home/user/sharelatex/config/settings.development.coffee' ]
Loading "Gruntfile.coffee" tasks...ERROR
>> Error: No config file found
Warning: Task "install" not found. Use --force to continue.

Aborted due to warnings.

Provide a comment system for commenting on tex files

Allow users to leave comments and messages for their collaborators within the documents. Coming back to the editor after a while should show you any new comments, and they should probably be hidden once read.

The easiest way to implement this might be to store the comment directly in the .tex file as a tex comment, with some meta data to assign it to a user/timestamp. This would mean there is no issue with keeping the comments up to date when updates come in from Dropbox etc, and would also allow the comments to be accessible offline.

Share URLs point to wrong domain

When sharing a project on a local install, the URL it gives is:

Share your project
You can share you project with your friends and colleagues via this URL:

https://www.sharelatex.com/project/5307c7e25b347be13c000007?r=a88083c2&rs=ps&rm=d

This URL should match the installed copy's URL.

optional http auth on /internal endpoints

there are several http endpoints mainly in web which are only used internally, these are generally protected by http auth. Http auth can make things a bit annoying and award at times, its level of security is also debatable. Being able to turn off http auth might be useful, it can be protected in production environments via a proxy (nginx).

opinions?

Git support

The versioning api already uses git behind the scenes, so we can extend it to allow git push and pull.

Issues/stepping stones:

  • The versioning API is old code and does not match the standards of the rest of our services
  • Handling conflicts - i.e. A push when there are uncommitted changes either in web or the git repo in the versioning API.
  • Incoming pushes must send their changes to the third party data store.
  • Incoming pushes/pulls must be sent via an ssh proxy which will perform auth and ensure only the authorised repositories can be accessed.

Default settings

We need a nice way of having default settings, this is highlighted when we add a new setting that breaks older settings files. One option would be todo something like this in settings-sharelatex:

# check if file exists first

defaultSettings = require("../../default.coffee")

#merege defaults in with standard settings in some super cleaver one line way

default.coffee would just be another settings file with a big warning at the top

 # DO NOT MANUALLY CHANGE THIS

Improve autocomplete

Autocomplete should pull in commands from across the project, not just the current file. (See issue #15 for a similar issue that needs project level metadata). More advanced snippets like \begin...\end complete would be great too.

Use new Dropbox polling API

Dropbox now has a long polling API so we can sync changes made in Dropbox immediately to ShareLaTeX.

Things to consider:

  • We can't poll for every user with Dropbox all the time. How and when do we activate/deactivate polling for each user?

Allow configuring all users to have subscriptions

For a local install, it may make sense to have all users who can access the site have a full subscription (so advanced features work). Otherwise it is a bit funny to require users of your own organization to pay the organization for access to a service provided by the organization! ;-)

Offline support

Allow projects to be synced offline (into local storage?), edited in an offline HTML5 app, and then resynced/uploaded when back with an internet connection.

Can't run npm install

npm install gives me the following error. All dependencies should be installed correctly.

npm ERR! install Couldn't read dependencies
npm ERR! Error: no version
npm ERR! at validVersion (/usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:580:32)
npm ERR! at final (/usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:342:23)
npm ERR! at /usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:140:33
npm ERR! at cb (/usr/local/lib/node_modules/npm/node_modules/slide/lib/async-map.js:48:11)
npm ERR! at /usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:335:40
npm ERR! at fs.js:241:14
npm ERR! at Object.oncomplete (fs.js:93:15)
npm ERR! at process._makeCallback (node.js:318:24)
npm ERR! If you need help, you may report this log at:
npm ERR! http://github.com/isaacs/npm/issues
npm ERR! or email it to:
npm ERR! [email protected]

npm ERR! System Linux 3.2.0-4-amd64
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR! cwd /root/sharelatex
npm ERR! node -v v0.9.9
npm ERR! npm -v 1.2.10

Fail to run.

When I try to run share latex i get the following error:

klo019@sharelatex:/opt/vol/sharelatex$ grunt run
Running "concurrent:all" (concurrent) task
Running "bunyan" task
Running "bunyan" task
Running "bunyan" task
Running "bunyan" task

Running "execute:clsi" (execute) task
-> executing /opt/vol/sharelatex/clsi/app.js

Running "execute:document-updater" (execute) task
-> executing /opt/vol/sharelatex/document-updater/app.js

Running "execute:web" (execute) task
-> executing /opt/vol/sharelatex/web/app.js

Running "execute:filestore" (execute) task
-> executing /opt/vol/sharelatex/filestore/app.js
[2014-02-26T00:56:42.332Z] INFO: web-sharelatex/4043 on sharelatex: Generating file fingerprints...
[2014-02-26T00:56:42.335Z] INFO: web-sharelatex/4043 on sharelatex: /opt/vol/sharelatex/web/public/js/libs/require.js: 0cb51c1a5e8e978cbe069c07f3b8d16d
[2014-02-26T00:56:42.336Z] INFO: web-sharelatex/4043 on sharelatex: /opt/vol/sharelatex/web/public/js/ide.js: d87d425a4f98c8e17bd46376945ea604
[2014-02-26T00:56:42.336Z] INFO: web-sharelatex/4043 on sharelatex: /opt/vol/sharelatex/web/public/js/main.js: 7855a0796ea622c32db8f38bd8a1bfa5
{}
{}
[2014-02-26T00:56:42.336Z] INFO: web-sharelatex/4043 on sharelatex: /opt/vol/sharelatex/web/public/js/list.js: 5e078a314fdc0f40fc89fff7ca6309aa
[2014-02-26T00:56:42.402Z] INFO: filestore/4063 on sharelatex: Loading backend

/opt/vol/sharelatex/filestore/app/js/fsWrapper.js:19
throw new Error("Unknown filestore backend: " + settings.filestoreBack
^
Error: Unknown filestore backend: undefined
at /opt/vol/sharelatex/filestore/app/js/fsWrapper.js:19:15
at Object. (/opt/vol/sharelatex/filestore/app/js/fsWrapper.js:21:5)
at Object. (/opt/vol/sharelatex/filestore/app/js/fsWrapper.js:23:4)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:349:32)
at Function.Module._load (module.js:305:12)
at Module.require (module.js:357:17)
at require (module.js:373:17)
at Object. (/opt/vol/sharelatex/filestore/app/js/FileController.js:4:15)
at Object. (/opt/vol/sharelatex/filestore/app/js/FileController.js:122:4)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:349:32)
at Function.Module._load (module.js:305:12)
at Module.require (module.js:357:17)
at require (module.js:373:17)
at Object. (/opt/vol/sharelatex/filestore/app.js:16:20)
at Object. (/opt/vol/sharelatex/filestore/app.js:151:4)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:349:32)
at Function.Module._load (module.js:305:12)
at Function.Module.runMain (module.js:490:10)
at startup (node.js:123:16)
at node.js:1128:3
Warning: -> error 1 /opt/vol/sharelatex/filestore/app.js (430ms) Use --force to continue.

Aborted due to warnings.
Warning: Use --force to continue.

    Aborted due to warnings.
[2014-02-26T00:56:42.337Z]  INFO: web-sharelatex/4043 on sharelatex: /opt/vol/sharelatex/web/public/js/libs/pdf.js: 39877fdae4da632887722daaa37fddde

klo019@sharelatex:/opt/vol/sharelatex$ [2014-02-26T00:56:42.340Z] INFO: web-sharelatex/4043 on sharelatex: /opt/vol/sharelatex/web/public/js/libs/pdf.worker.js: 0501916260115fe0db5163b47a316a76
[2014-02-26T00:56:42.341Z] INFO: web-sharelatex/4043 on sharelatex: /opt/vol/sharelatex/web/public/stylesheets/mainStyle.css: dfdde93b00f43513c922cf43f0177baa

The grunt check doesn't report any issues.

klo019@sharelatex:/opt/vol/sharelatex$ grunt check --force
Running "check:redis" task
Checking Redis is running... OK.
Running Redis version 2.8.6

Running "check:latexmk" task
Checking latexmk is installed... OK.
Running latexmk version 4.39

Running "check:s3" task
Checking S3 credentials... OK.
Done, without errors.

klo019@sharelatex:/opt/vol/sharelatex$

Give one liner install.

Give new developers a one liner copy paste that will correctly install sharelatex in many Linux distros with little effort from our part, greatly reducing entry cost (for a new nodejs user like me it took about 5 hours to get dev running).

For Redis and MongoDB, Chef provisioning is already configured for many distros at:

No OSX support there though. We could check Puppet to see their coverage.

A not so stable looking TexLive 20XX recipe here. I could improve this, since it is a central part of our system, and TexLive 2013 is a pain to install in Ubuntu 12.04. This is the hardest point of this feature.

nvm already seems to have a distro independent install, so we may not even bother making a recipe. I would recommend adding to our "one liner" something like:

cd sharelatex_root
NODE_VERSION="$(cat .nvmrc)"
if ! nvm; then
  curl https://raw.github.com/creationix/nvm/master/install.sh | sh
  echo "
  # Added by sharelatex
  source ~/.nvm/nvm.sh
  nvm use "$NODE_VERSION" &>/dev/null
  " >> ~/.bashrc
fi
nvm install "$NODE_VERSION"

Damaged graphics after compile

Hi,

I used the latest version of the code, used texlive2013, I did the upload via ZIP and manually, but both result in the following:

Graphics like *.eps and *.png or *.jpg are uploaded with full size of 1-2MB after I press compile the file is not included in the resulting PDF and the file on harddisk is damaged and now only 471 bytes in size. Screenshot of the upload process: https://dl.dropboxusercontent.com/u/77674/Screen%20Shot%202014-02-22%20at%2001.53.24.png

As you can see the files are broken now:
https://dl.dropboxusercontent.com/u/77674/Screen%20Shot%202014-02-22%20at%2001.54.46.png

I did verify my findings via a SFTP file manager. Here is the log file:

FOR PNG

Latexmk: applying rule 'pdflatex'...
This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013)
restricted \write18 enabled.
entering extended mode
libpng error: Not a PNG file
'output.fls' and '/root/sharelatex/compiles/5307eecae473ac392200000a/output.fls' are identical (not copied) at /usr/local/texlive/2013/bin/x86_64-linux/latexmk line 6454
Failure to make '/root/sharelatex/compiles/5307eecae473ac392200000a/output.pdf'
Collected error summary (may duplicate other messages):
pdflatex: Command for 'pdflatex' gave return code 256
Latexmk: Undoing directory change
Latexmk: Errors, in force_mode: so I tried finishing targets

FOR EPS

Error: /syntaxerror in -file-
Operand stack:

Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1916 1 3 %oparray_pop 1915 1 3 %oparray_pop 1899 1 3 %oparray_pop 1787 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push
Dictionary stack:
--dict:1173/1684(ro)(G)-- --dict:0/20(G)-- --dict:77/200(L)--
Current allocation mode is local
GPL Ghostscript 9.07: Unrecoverable error, exit code 1
epstopdf ($Id: epstopdf.pl 32701 2014-01-17 18:09:54Z karl $) 2.21
!!! Error: Writing to gs failed, error code 1

The problem seem to have something to do with Amazon S3 not working properly:

The upload process and S3

[2014-02-22T00:57:15.072Z] INFO: web-sharelatex/9135 on myFQDN: uploading file from disk (project_id=5307eecae473ac392200000a, file_id=5307f5eb2b7745af23000005)
fsPath: /root/sharelatex/web/data/uploads/cb438c0a936dbc75b6e1ce32dafc0a0c
{}
{}
[2014-02-22T00:57:15.949Z] INFO: filestore/9137 on myFQDN: sending file to s3 (bucketName=sharelatex-myFQDN, key=5307eecae473ac392200000a/5307f5eb2b7745af23000005)
[2014-02-22T00:57:15.955Z] INFO: filestore/9137 on myFQDN: writing file locally
fsPath: /root/sharelatex/filestore/uploads/45ad7920-9b5c-11e3-9c78-b94cdc7fa575
[2014-02-22T00:57:16.006Z] INFO: filestore/9137 on myFQDN: finished writing file locally
fsPath: /root/sharelatex/filestore/uploads/45ad7920-9b5c-11e3-9c78-b94cdc7fa575
[2014-02-22T00:57:16.421Z] ERROR: filestore/9137 on myFQDN: non 200 response from s3 putting file (bucketName=sharelatex-myFQDN, key=5307eecae473ac392200000a/5307f5eb2b7745af23000005)
fsPath: /root/sharelatex/filestore/uploads/45ad7920-9b5c-11e3-9c78-b94cdc7fa575
[2014-02-22T00:57:16.434Z] INFO: web-sharelatex/9135 on myFQDN: mongo request (request_id=20, collection=sharelatex.projects, response-time=4)
query: {
"_id": "5307eecae473ac392200000a"
}
[2014-02-22T00:57:16.434Z] ERROR: filestore/9137 on myFQDN: error emmited on put of file (bucketName=sharelatex-myFQDN, key=5307eecae473ac392200000a/5307f5eb2b7745af23000005)
Error: write ECONNRESET
at errnoException (net.js:901:11)
at Object.afterWrite (net.js:718:19)
--
fsPath: /root/sharelatex/filestore/uploads/45ad7920-9b5c-11e3-9c78-b94cdc7fa575
[2014-02-22T00:57:16.492Z] INFO: web-sharelatex/9135 on myFQDN: adding element to project (project_id=5307eecae473ac392200000a, element_id=5307f5eb2b7745af23000005, type=fileRefs, folder_id=5307eecae473ac3922000009)
[2014-02-22T00:57:16.520Z] INFO: web-sharelatex/9135 on myFQDN: mongo request (request_id=22, collection=sharelatex.projects, response-time=2)
query: {
"_id": "5307eecae473ac392200000a"
}

I have never used Amazon S3 before, but I did create a test-Bucket which is free for one year.

Can someone help?

Autocomplete references and labels

When typing a \cite or \ref command, there should be an autocomplete list of all references or labels available in the document.

This will require storing some metadata in the project, keeping track of the labels and citations in different files. Otherwise, the whole document would need scanned every time which is infeasible for large projects.

Error opening file in sharelatex editior

Hi Sharelatex.

We installed and tested all the required dependencies and were able to run the server.
The services are running fine, and we can easily connect to the web server, however when the user tries to view a document in the editor, ShareLaTeX crashes with the following error:

[2014-02-21T17:57:23.204Z] WARN: clsi/4282 on sharelatex: timeouts and sandboxing are not enabled with CommandRunner
execvp(): No such file or directory

events.js:72
throw er; // Unhandled 'error' event
^
Error: spawn ENOENT
at errnoException (child_process.js:988:11)
at Process.ChildProcess._handle.onexit (child_process.js:779:34)
Warning: -> error 8 /root/sharelatex/clsi/app.js (75054ms) Use --force to continue.

Aborted due to warnings.

We're running sharelatex on Ubuntu 12.04

Link to our full log http://pastebin.com/aVvbTfu5

Allow PDF viewer to load individual pages of PDFs

If we can modify the PDF viewer to be able to render individual pages without needing to download the entire PDF then the downloads will be much quicker. The functionality is already in PDF.js, but the viewer currently does a full scan through the document on load to determine page sizes which negates this. This is quite probably a big refactor to get working.

link with bibtex database

I would like to suggest a new feature; would it be possible to link with on-line databases of BibTeX entries?

In physics, if you wish to cite a paper, you have to navigate to its page in the inSPIRE database, copy and paste its BibTeX entry to your BibTeX file, and cite the BibTeX`key in your LaTeX file.

E.g., the inSPIRE databaes page http://inspirehep.net/record/687657/export/hx contains

 @article{Hawking:2005kf,
  author         = "Hawking, S.W.",
  title          = "{Information loss in black holes}",
  journal        = "Phys.Rev.",
  volume         = "D72",
  pages          = "084013",
  doi            = "10.1103/PhysRevD.72.084013",
  year           = "2005",
  eprint         = "hep-th/0507171",
  archivePrefix  = "arXiv",
  primaryClass   = "hep-th",
  reportNumber   = "DAMTP-2005-66",
  SLACcitation   = "%%CITATION = HEP-TH/0507171;%%",
}

All that copying and pasting is quite annoying. A slight improvement is this https://github.com/rescolo/getinspire package, which were I to \cite{Hawking:2005kf} or \cite{hep-th/0507171} would automatically scrape the BibTeX entry from the inSPIRE database and put it into my BibTeX file.

That still requires that you navigate to the inSPIRE webpage to find the BibTeX key, but it is better than having to also copy and paste BibTeX entries.

store image/pdf files in local server instead of S3

When an AWS S3 account is not correctly configured, uploaded pdf/jpg/png/eps files are in fact not successfully saved neither locally or remotely in S3.

It will cause "compile failure" when these image files are missing.

I want my self-hosted server to be functional even without Internet access, and it will save lots of S3 fees.

Thank you.

Error: Cannot find module 'logger-sharelatex'

Following the installation steps in the README file, and running npm install and grunt install, running grunt run results in this error:

$ grunt run
Running "concurrent:all" (concurrent) task
Running "bunyan" task
Running "bunyan" task
Running "bunyan" task


    Running "bunyan" task

Running "execute:document-updater" (execute) task
-> executing /Users/hanxue/Github/sharelatex/document-updater/app.js

Running "execute:web" (execute) task

>> 0 files and 0 calls executed (10ms)

Done, without errors.

Running "execute:filestore" (execute) task
-> executing /Users/hanxue/Github/sharelatex/filestore/app.js

module.js:333
    throw err;
          ^
Error: Cannot find module 'logger-sharelatex'
    at Function.Module._resolveFilename (module.js:331:15)
    at Function.Module._load (module.js:273:25)
    at Module.require (module.js:357:17)
    at require (module.js:373:17)
    at Object.<anonymous> (/Users/hanxue/Github/sharelatex/filestore/app.js:6:12)
    at Object.<anonymous> (/Users/hanxue/Github/sharelatex/filestore/app.js:151:4)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:349:32)
    at Function.Module._load (module.js:305:12)
Warning: -> error 1 /Users/hanxue/Github/sharelatex/filestore/app.js (211ms) Use --force to continue.

Aborted due to warnings.
    Warning:  Use --force to continue.

        Aborted due to warnings.

Running "execute:clsi" (execute) task
-> executing /Users/hanxue/Github/sharelatex/clsi/app.js

ENH: Find and replace in directory

Currently, find and replace works well within a tex file. However, sometimes the project may be split across multiple tex files and going manually to each and doing a find and replace can be cumbersome.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.