Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
hub
overleaf
Commits
e182368e
Commit
e182368e
authored
Aug 19, 2014
by
James Allen
Browse files
Don't include .git and grunt- directories in build
parent
c2ebfcc2
Changes
12
Hide whitespace changes
Inline
Side-by-side
Gruntfile.coffee
View file @
e182368e
...
...
@@ -441,7 +441,8 @@ module.exports = (grunt) ->
fs
.
writeFileSync
"package/scripts/after_install.sh"
,
after_install_script
command
.
push
(
"--after-install"
,
"package/scripts/after_install.sh"
)
command
.
push
(
"--exclude"
,
"'**/.git'"
)
command
.
push
(
"--exclude"
,
"**/.git"
)
command
.
push
(
"--exclude"
,
"**/node_modules/grunt-*"
)
for
path
in
[
"filestore/user_files"
,
"filestore/uploads"
,
"clsi/cache"
,
"clsi/compiles"
]
command
.
push
"--exclude"
,
path
...
...
package/config/settings.coffee
View file @
e182368e
Path
=
require
(
'path'
)
http
=
require
(
'http'
)
http
.
globalAgent
.
maxSockets
=
300
# Make time interval config easier.
seconds
=
1000
minutes
=
60
*
seconds
# These credentials are used for authenticating api requests
# between services that may need to go over public channels
httpAuthUser
=
"sharelatex"
httpAuthPass
=
"
password"
httpAuthPass
=
"
CRYPTO_RANDOM"
# Randomly generated for you
httpAuthUsers
=
{}
httpAuthUsers
[
httpAuthUser
]
=
httpAuthPass
sessionSecret
=
"secret-please-change"
DATA_DIR
=
'/var/lib/sharelatex/data'
TMP_DIR
=
'/var/lib/sharelatex/tmp'
module
.
exports
=
# File storage
# ------------
#
# ShareLaTeX needs somewhere to store binary files like images.
# There are currently two options:
# Your local filesystem (the default)
# Amazon S3
filestore
:
# which backend persistor to use.
# choices are
# s3 - Amazon S3
# fs - local filesystem
backend
:
"fs"
stores
:
# where to store user and template binary files
#
# For Amazon S3 this is the bucket name to store binary files
#
# For local filesystem this is the directory to store the files in.
# This path must exist, not be tmpfs and be writable to by the user sharelatex is run as.
user_files
:
"/var/data/sharelatex/user_files"
# Uncomment if you need to configure your S3 credentials
# s3:
# # if you are using S3, then fill in your S3 details below
# key: ""
# secret: ""
# Databases
# ---------
# ShareLaTeX's main persistant data store is MongoDB (http://www.mongodb.org/)
# Documentation about the URL connection string format can be found at:
#
# http://docs.mongodb.org/manual/reference/connection-string/
#
# The following works out of the box with Mongo's default settings:
mongo
:
url
:
'mongodb://127.0.0.1/sharelatex'
# Redis is used in ShareLaTeX for high volume queries, like real-time
# editing, and session management.
#
# The following config will work with Redis's default settings:
redis
:
web
:
host
:
"localhost"
port
:
"6379"
password
:
""
api
:
host
:
"localhost"
port
:
"6379"
password
:
""
fairy
:
host
:
"localhost"
port
:
"6379"
password
:
""
# The compile server (the clsi) uses a SQL database to cache files and
# meta-data. sqllite is the default, and the load is low enough that this will
# be fine in production (we use sqllite at sharelatex.com).
#
# If you want to configure a different database, see the Sequelize documentation
# for available options:
#
# https://github.com/sequelize/sequelize/wiki/API-Reference-Sequelize#example-usage
#
mysql
:
clsi
:
database
:
"clsi"
username
:
"clsi"
password
:
""
dialect
:
"sqlite"
storage
:
"/var/data/sharelatex/clsi_
db.sqlite"
storage
:
Path
.
join
(
DATA_DIR
,
"
db.sqlite"
)
# Service locations
# -----------------
# Configure which ports to run each service on. Generally you
# can leave these as they are unless you have some other services
# running which conflict, or want to run the web process on port 80.
internal
:
web
:
port
:
webPort
=
3000
host
:
"localhost"
documentupdater
:
port
:
docUpdaterPort
=
3003
host
:
"localhost"
clsi
:
port
:
clsiPort
=
3013
host
:
"localhost"
filestore
:
port
:
filestorePort
=
3009
host
:
"localhost"
trackchanges
:
port
:
trackchangesPort
=
3015
host
:
"localhost"
docstore
:
port
:
docstorePort
=
3016
host
:
"localhost"
# Tell each service where to find the other services. If everything
# is running locally then this is easy, but they exist as separate config
# options incase you want to run some services on remote hosts.
apis
:
web
:
url
:
"http://localhost:
#{
webPort
}
"
user
:
httpAuthUser
pass
:
httpAuthPass
documentupdater
:
url
:
"http://localhost:
#{
docUpdaterPort
}
"
clsi
:
url
:
"http://localhost:
#{
clsiPort
}
"
filestore
:
url
:
"http://localhost:
#{
filestorePort
}
"
trackchanges
:
url
:
"http://localhost:
#{
trackchangesPort
}
"
docstore
:
url
:
"http://localhost:
#{
docstorePort
}
"
thirdPartyDataStore
:
url
:
"http://localhost:3002"
emptyProjectFlushDelayMiliseconds
:
5
*
seconds
tags
:
url
:
"http://localhost:3012"
spelling
:
url
:
"http://localhost:3005"
versioning
:
snapshotwaitms
:
3000
url
:
"http://localhost:4000"
username
:
httpAuthUser
password
:
httpAuthPass
recurly
:
privateKey
:
""
apiKey
:
""
subdomain
:
""
chat
:
url
:
"http://localhost:3010"
templates
:
port
:
3007
blog
:
port
:
3008
templates_api
:
url
:
"http://localhost:3007"
# Where your instance of ShareLaTeX can be found publically. Used in emails
# that are sent out, generated links, etc.
siteUrl
:
'http://localhost:3000'
# Same, but with http auth credentials.
httpAuthSiteUrl
:
'http://#{httpAuthUser}:#{httpAuthPass}@localhost:3000'
# Security
# --------
security
:
sessionSecret
:
sessionSecret
httpAuthUsers
:
httpAuthUsers
# File storage
# ------------
# Default features
# ----------------
# ShareLaTeX can store binary files like images either locally or in Amazon
# S3. The default is locally:
filestore
:
backend
:
"fs"
stores
:
user_files
:
Path
.
join
(
DATA_DIR
,
"user_files"
)
# To use Amazon S3 as a storage backend, comment out the above config, and
# uncomment the following, filling in your key, secret, and bucket name:
#
# You can select the features that are enabled by default for new
# new users.
defaultFeatures
:
defaultFeatures
=
collaborators
:
-
1
dropbox
:
true
versioning
:
true
plans
:
plans
=
[{
planCode
:
"personal"
name
:
"Personal"
price
:
0
features
:
defaultFeatures
}]
# Spelling languages
# filestore:
# backend: "s3"
# stores:
# user_files: "BUCKET_NAME"
# s3:
# key: "AWS_KEY"
# secret: "AWS_SECRET"
#
# Local disk caching
# ------------------
#
# You must have the corresponding aspell package installed to
# be able to use a language.
languages
:
[
{
name
:
"English"
,
code
:
"en"
}
]
path
:
# If we ever need to write something to disk (e.g. incoming requests
# that need processing but may be too big for memory), then write
# them to disk here:
dumpFolder
:
Path
.
join
(
TMP_DIR
,
"dumpFolder"
)
# Where to write uploads before they are processed
uploadFolder
:
Path
.
join
(
TMP_DIR
,
"uploads"
)
# Where to write the project to disk before running LaTeX on it
compilesDir
:
Path
.
join
(
DATA_DIR
,
"compiles"
)
# Where to cache downloaded URLs for the CLSI
clsiCacheDir
:
Path
.
join
(
DATA_DIR
,
"cache"
)
#
Email support
#
Server Config
# -------------
#
# ShareLaTeX uses nodemailer (http://www.nodemailer.com/) to send transactional emails.
# To see the range of transport and options they support, see http://www.nodemailer.com/docs/transports
# email:
# fromAddress: ""
# replyTo: ""
# lifecycle: false
# transport: "SES"
# parameters:
# AWSAccessKeyID: ""
# AWSSecretKey: ""
# Third party services
# --------------------
#
# ShareLaTeX's regular newsletter is managed by Markdown mail. Add your
# credentials here to integrate with this.
# markdownmail:
# secret: ""
# list_id: ""
#
# Fill in your unique token from various analytics services to enable
# them.
# analytics:
# mixpanel:
# token: ""
# ga:
# token: ""
# heap:
# token: ""
#
# ShareLaTeX's help desk is provided by tenderapp.com
# tenderUrl: ""
#
# Production Settings
# -------------------
# Where your instance of ShareLaTeX can be found publicly. This is used
# when emails are sent out and in generated links:
siteUrl
:
'http://localhost:3000'
# If provided, a sessionSecret is used to sign cookies so that they cannot be
# spoofed. This is recommended.
security
:
sessionSecret
:
"CRYPTO_RANDOM"
# This was randomly generated for you
# These credentials are used for authenticating api requests
# between services that may need to go over public channels
httpAuthUsers
:
httpAuthUsers
# Should javascript assets be served minified or not. Note that you will
# need to run `grunt compile:minify` within the web-sharelatex directory
# to generate these.
useMinifiedJs
:
false
# Should static assets be sent with a header to tell the browser to cache
# them.
# them. This should be false in development where changes are being made,
# but should be set to true in production.
cacheStaticAssets
:
false
# If you are running ShareLaTeX over https, set this to true to send the
# cookie with a secure flag (recommended).
secureCookie
:
false
# If you are running ShareLaTeX behind a proxy (like Apache, Nginx, etc)
# then set this to true to allow it to correctly detect the forwarded IP
# address and http/https protocol information.
behindProxy
:
false
# Internal configs
# ----------------
path
:
# If we ever need to write something to disk (e.g. incoming requests
# that need processing but may be too big for memory, then write
# them to disk here).
dumpFolder
:
"/var/data/sharelatex/dump"
# Where to write the project to disk before running LaTeX on it
compilesDir
:
"/var/data/sharelatex/compiles"
# Where to cache downloaded URLs for the CLSI
clsiCacheDir
:
"/var/data/sharelatex/cache"
# Where to write uploads before they are processed
uploadFolder
:
"/var/data/sharelatex/uploads"
# Automatic Snapshots
# -------------------
automaticSnapshots
:
# How long should we wait after the user last edited to
# take a snapshot?
waitTimeAfterLastEdit
:
5
*
minutes
# Even if edits are still taking place, this is maximum
# time to wait before taking another snapshot.
maxTimeBetweenSnapshots
:
30
*
minutes
# Sending Email
# -------------
#
# You must configure a mail server to be able to send invite emails from
# ShareLaTeX. The config settings are passed to nodemailer. See the nodemailer
# documentation for available options:
#
# http://www.nodemailer.com/docs/transports
#
# email:
# fromAddress: ""
# replyTo: ""
# transport: "SES"
# parameters:
# AWSAccessKeyID: ""
# AWSSecretKey: ""
# Smoke test
# ----------
# Provide log in credentials and a project to be able to run
# some basic smoke tests to check the core functionality.
# Spell Check Languages
# ---------------------
#
# smokeTest:
# user: ""
# password: ""
# projectId: ""
# You must have the corresponding aspell dictionary installed to
# be able to use a language. Run `grunt check:aspell` to check which
# dictionaries you have installed. These should be set for the `code` for
# each language.
languages
:
[
{
name
:
"English"
,
code
:
"en"
}
]
# Service locations
# -----------------
# Filestore health check
# ----------------------
# Project and file details to check in filestore when calling /health_check
# health_check:
# project_id: ""
# file_id: ""
# ShareLaTeX is comprised of many small services, which each expose
# an HTTP API running on a different port. Generally you
# can leave these as they are unless you have some other services
# running which conflict, or want to run the web process on port 80.
# internal:
# web:
# port: webPort = 3000
# host: "localhost"
# documentupdater:
# port: docUpdaterPort = 3003
# host: "localhost"
# filestore:
# port: filestorePort = 3009
# host: "localhost"
# chat:
# port: chatPort = 3010
# host: "localhost"
# tags:
# port: tagsPort = 3012
# host: "localhost"
# clsi:
# port: clsiPort = 3013
# host: "localhost"
# trackchanges:
# port: trackchangesPort = 3015
# host: "localhost"
# docstore:
# port: docstorePort = 3016
# host: "localhost"
# spelling:
# port: spellingPort = 3005
# host: "localhost"
# If you change the above config, or run some services on remote servers,
# you need to tell the other services where to find them:
apis
:
web
:
url
:
"http://localhost:3000"
user
:
httpAuthUser
pass
:
httpAuthPass
# documentupdater:
# url : "http://localhost:#{docUpdaterPort}"
# clsi:
# url: "http://localhost:#{clsiPort}"
# filestore:
# url: "http://localhost:#{filestorePort}"
# trackchanges:
# url: "http://localhost:#{trackchangesPort}"
# docstore:
# url: "http://localhost:#{docstorePort}"
# tags:
# url: "http://localhost:#{tagsPort}"
# spelling:
# url: "http://localhost:#{spellingPort}"
# chat:
# url: "http://localhost:#{chatPort}"
# With lots of incoming and outgoing HTTP connections to different services,
# sometimes long running, it is a good idea to increase the default number
# of sockets that Node will hold open.
http
=
require
(
'http'
)
http
.
globalAgent
.
maxSockets
=
300
https
=
require
(
'https'
)
https
.
globalAgent
.
maxSockets
=
300
package/scripts/after_install.sh
View file @
e182368e
#!/bin/sh
# Create random secret keys
sed
-i
"s/CRYPTO_RANDOM/
$(
cat
/dev/urandom |
tr
-dc
'a-z0-9'
|
fold
-w
64 |
head
-n
1
)
/"
/etc/sharelatex/settings.coffee
sed
-i
"s/CRYPTO_RANDOM/
$(
cat
/dev/urandom |
tr
-dc
'a-z0-9'
|
fold
-w
64 |
head
-n
1
)
/"
/etc/sharelatex/settings.coffee
# Create random secret keys
(twice, once for http auth pass, once for cookie secret).
sed
-i
"
0,/CRYPTO_RANDOM/
s/CRYPTO_RANDOM/
$(
cat
/dev/urandom |
tr
-dc
'a-z0-9'
|
fold
-w
64 |
head
-n
1
)
/"
/etc/sharelatex/settings.coffee
sed
-i
"
0,/CRYPTO_RANDOM/
s/CRYPTO_RANDOM/
$(
cat
/dev/urandom |
tr
-dc
'a-z0-9'
|
fold
-w
64 |
head
-n
1
)
/"
/etc/sharelatex/settings.coffee
sudo
adduser
--system
--group
--home
/var/www/sharelatex
--no-create-home
sharelatex
...
...
package/upstart/sharelatex-chat
View file @
e182368e
description "sharelatex-web"
author "ShareLaTeX <team@sharelatex.com>"
start on
started mountall
start on
(local-filesystems and net-device-up IFACE!=lo)
stop on shutdown
respawn
...
...
package/upstart/sharelatex-clsi
View file @
e182368e
description "sharelatex-web"
author "ShareLaTeX <team@sharelatex.com>"
start on
started mountall
start on
(local-filesystems and net-device-up IFACE!=lo)
stop on shutdown
respawn
...
...
package/upstart/sharelatex-docstore
View file @
e182368e
description "sharelatex-web"
author "ShareLaTeX <team@sharelatex.com>"
start on
started mountall
start on
(local-filesystems and net-device-up IFACE!=lo)
stop on shutdown
respawn
...
...
package/upstart/sharelatex-document-updater
View file @
e182368e
description "sharelatex-web"
author "ShareLaTeX <team@sharelatex.com>"
start on
started mountall
start on
(local-filesystems and net-device-up IFACE!=lo)
stop on shutdown
respawn
...
...
package/upstart/sharelatex-filestore
View file @
e182368e
description "sharelatex-web"
author "ShareLaTeX <team@sharelatex.com>"
start on
started mountall
start on
(local-filesystems and net-device-up IFACE!=lo)
stop on shutdown
respawn
...
...
package/upstart/sharelatex-spelling
View file @
e182368e
description "sharelatex-web"
author "ShareLaTeX <team@sharelatex.com>"
start on
started mountall
start on
(local-filesystems and net-device-up IFACE!=lo)
stop on shutdown
respawn
...
...
package/upstart/sharelatex-tags
View file @
e182368e
description "sharelatex-web"
author "ShareLaTeX <team@sharelatex.com>"
start on
started mountall
start on
(local-filesystems and net-device-up IFACE!=lo)
stop on shutdown
respawn
...
...
package/upstart/sharelatex-track-changes
View file @
e182368e
description "sharelatex-web"
author "ShareLaTeX <team@sharelatex.com>"
start on
started mountall
start on
(local-filesystems and net-device-up IFACE!=lo)
stop on shutdown
respawn
...
...
package/upstart/sharelatex-web
View file @
e182368e
description "sharelatex-web"
author "ShareLaTeX <team@sharelatex.com>"
start on
started mountall
start on
(local-filesystems and net-device-up IFACE!=lo)
stop on shutdown
respawn
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment