mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Start putting together .deb package builder
This commit is contained in:
parent
93c151132a
commit
e6d5800f1b
10 changed files with 221 additions and 0 deletions
1
server-ce/.gitignore
vendored
1
server-ce/.gitignore
vendored
|
@ -7,6 +7,7 @@ document-updater
|
|||
clsi
|
||||
filestore
|
||||
track-changes
|
||||
docstore
|
||||
|
||||
compiles
|
||||
cache
|
||||
|
|
|
@ -111,6 +111,9 @@ module.exports = (grunt) ->
|
|||
Helpers.checkMake @async()
|
||||
grunt.registerTask "check", "Check that you have the required dependencies installed", ["check:redis", "check:latexmk", "check:s3", "check:fs"]
|
||||
|
||||
grunt.registerTask "build_deb", "Build an installable .deb file from the current directory", () ->
|
||||
Helpers.buildDeb @async()
|
||||
|
||||
Helpers =
|
||||
installService: (repo_src, dir, callback = (error) ->) ->
|
||||
Helpers.cloneGitRepo repo_src, dir, (error) ->
|
||||
|
@ -302,6 +305,69 @@ module.exports = (grunt) ->
|
|||
grunt.log.write "OK."
|
||||
return callback()
|
||||
|
||||
buildDeb: (callback = (error) ->) ->
|
||||
# TODO: filestore uses local 'uploads' directory, not configurable in settings
|
||||
command = ["fpm", "-s", "dir", "-t", "deb", "-n", "sharelatex", "-v", "0.0.1", "--verbose"]
|
||||
command.push(
|
||||
"--maintainer", "'ShareLaTeX <team@sharelatex.com>'"
|
||||
"--config-files", "/etc/sharelatex/settings.coffee",
|
||||
"--directories", "/var/data/sharelatex"
|
||||
"--directories", "/var/log/sharelatex"
|
||||
)
|
||||
|
||||
command.push(
|
||||
"--depends", "'redis-server > 2.6.12'"
|
||||
"--depends", "'mongodb-10gen > 2.4.0'"
|
||||
"--depends", "'nodejs > 0.10.0'"
|
||||
)
|
||||
|
||||
template = fs.readFileSync("package/upstart/sharelatex-template").toString()
|
||||
for service in SERVICES
|
||||
fs.writeFileSync "package/upstart/sharelatex-#{service.name}", template.replace(/SERVICE/g, service.name)
|
||||
command.push(
|
||||
"--deb-upstart", "package/upstart/sharelatex-#{service.name}"
|
||||
)
|
||||
|
||||
after_install_script = """
|
||||
#!/bin/sh
|
||||
sudo adduser --system --group --home /var/www/sharelatex --no-create-home sharelatex
|
||||
|
||||
mkdir -p /var/log/sharelatex
|
||||
chown sharelatex:sharelatex /var/log/sharelatex
|
||||
|
||||
"""
|
||||
|
||||
for dir in ["user_files", "uploads", "compiles", "cache", "dump"]
|
||||
after_install_script += """
|
||||
mkdir -p /var/data/sharelatex/#{dir}
|
||||
chown sharelatex:sharelatex /var/data/sharelatex/#{dir}
|
||||
|
||||
"""
|
||||
|
||||
for service in SERVICES
|
||||
after_install_script += "service sharelatex-#{service.name} restart\n"
|
||||
fs.writeFileSync "package/scripts/after_install.sh", after_install_script
|
||||
command.push("--after-install", "package/scripts/after_install.sh")
|
||||
|
||||
command.push("--exclude", "'**/.git'")
|
||||
for path in ["filestore/user_files", "filestore/uploads", "clsi/cache", "clsi/compiles"]
|
||||
command.push "--exclude", path
|
||||
|
||||
for service in SERVICES
|
||||
command.push "#{service.name}=/var/www/sharelatex/"
|
||||
|
||||
command.push(
|
||||
"package/config/settings.coffee=/etc/sharelatex/settings.coffee"
|
||||
)
|
||||
console.log command.join(" ")
|
||||
exec command.join(" "), (error, stdout, stderr) ->
|
||||
return callback(error) if error?
|
||||
console.log stdout
|
||||
console.error stderr if stderr?
|
||||
callback()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
21
server-ce/package/scripts/after_install.sh
Normal file
21
server-ce/package/scripts/after_install.sh
Normal file
|
@ -0,0 +1,21 @@
|
|||
#!/bin/sh
|
||||
sudo adduser --system --group --home /var/www/sharelatex --no-create-home sharelatex
|
||||
|
||||
mkdir -p /var/log/sharelatex
|
||||
chown sharelatex:sharelatex /var/log/sharelatex
|
||||
mkdir -p /var/data/sharelatex/user_files
|
||||
chown sharelatex:sharelatex /var/data/sharelatex/user_files
|
||||
mkdir -p /var/data/sharelatex/uploads
|
||||
chown sharelatex:sharelatex /var/data/sharelatex/uploads
|
||||
mkdir -p /var/data/sharelatex/compiles
|
||||
chown sharelatex:sharelatex /var/data/sharelatex/compiles
|
||||
mkdir -p /var/data/sharelatex/cache
|
||||
chown sharelatex:sharelatex /var/data/sharelatex/cache
|
||||
mkdir -p /var/data/sharelatex/dump
|
||||
chown sharelatex:sharelatex /var/data/sharelatex/dump
|
||||
service sharelatex-web restart
|
||||
service sharelatex-document-updater restart
|
||||
service sharelatex-clsi restart
|
||||
service sharelatex-filestore restart
|
||||
service sharelatex-track-changes restart
|
||||
service sharelatex-docstore restart
|
19
server-ce/package/upstart/sharelatex-clsi
Normal file
19
server-ce/package/upstart/sharelatex-clsi
Normal file
|
@ -0,0 +1,19 @@
|
|||
description "sharelatex-clsi"
|
||||
author "ShareLaTeX <team@sharelatex.com>"
|
||||
|
||||
start on started mountall
|
||||
stop on shutdown
|
||||
|
||||
respawn
|
||||
|
||||
limit nofile 8192 8192
|
||||
|
||||
pre-start script
|
||||
mkdir -p /var/log/sharelatex
|
||||
end script
|
||||
|
||||
script
|
||||
echo $$ > /var/run/sharelatex-clsi.pid
|
||||
chdir /var/www/sharelatex/clsi
|
||||
exec sudo -u sharelatex -g sharelatex env SHARELATEX_CONFIG=/etc/sharelatex/settings.coffee NODE_ENV=production node app.js >> /var/log/sharelatex/clsi.log 2>&1
|
||||
end script
|
19
server-ce/package/upstart/sharelatex-docstore
Normal file
19
server-ce/package/upstart/sharelatex-docstore
Normal file
|
@ -0,0 +1,19 @@
|
|||
description "sharelatex-docstore"
|
||||
author "ShareLaTeX <team@sharelatex.com>"
|
||||
|
||||
start on started mountall
|
||||
stop on shutdown
|
||||
|
||||
respawn
|
||||
|
||||
limit nofile 8192 8192
|
||||
|
||||
pre-start script
|
||||
mkdir -p /var/log/sharelatex
|
||||
end script
|
||||
|
||||
script
|
||||
echo $$ > /var/run/sharelatex-docstore.pid
|
||||
chdir /var/www/sharelatex/docstore
|
||||
exec sudo -u sharelatex -g sharelatex env SHARELATEX_CONFIG=/etc/sharelatex/settings.coffee NODE_ENV=production node app.js >> /var/log/sharelatex/docstore.log 2>&1
|
||||
end script
|
19
server-ce/package/upstart/sharelatex-document-updater
Normal file
19
server-ce/package/upstart/sharelatex-document-updater
Normal file
|
@ -0,0 +1,19 @@
|
|||
description "sharelatex-document-updater"
|
||||
author "ShareLaTeX <team@sharelatex.com>"
|
||||
|
||||
start on started mountall
|
||||
stop on shutdown
|
||||
|
||||
respawn
|
||||
|
||||
limit nofile 8192 8192
|
||||
|
||||
pre-start script
|
||||
mkdir -p /var/log/sharelatex
|
||||
end script
|
||||
|
||||
script
|
||||
echo $$ > /var/run/sharelatex-document-updater.pid
|
||||
chdir /var/www/sharelatex/document-updater
|
||||
exec sudo -u sharelatex -g sharelatex env SHARELATEX_CONFIG=/etc/sharelatex/settings.coffee NODE_ENV=production node app.js >> /var/log/sharelatex/document-updater.log 2>&1
|
||||
end script
|
19
server-ce/package/upstart/sharelatex-filestore
Normal file
19
server-ce/package/upstart/sharelatex-filestore
Normal file
|
@ -0,0 +1,19 @@
|
|||
description "sharelatex-filestore"
|
||||
author "ShareLaTeX <team@sharelatex.com>"
|
||||
|
||||
start on started mountall
|
||||
stop on shutdown
|
||||
|
||||
respawn
|
||||
|
||||
limit nofile 8192 8192
|
||||
|
||||
pre-start script
|
||||
mkdir -p /var/log/sharelatex
|
||||
end script
|
||||
|
||||
script
|
||||
echo $$ > /var/run/sharelatex-filestore.pid
|
||||
chdir /var/www/sharelatex/filestore
|
||||
exec sudo -u sharelatex -g sharelatex env SHARELATEX_CONFIG=/etc/sharelatex/settings.coffee NODE_ENV=production node app.js >> /var/log/sharelatex/filestore.log 2>&1
|
||||
end script
|
19
server-ce/package/upstart/sharelatex-template
Normal file
19
server-ce/package/upstart/sharelatex-template
Normal file
|
@ -0,0 +1,19 @@
|
|||
description "sharelatex-SERVICE"
|
||||
author "ShareLaTeX <team@sharelatex.com>"
|
||||
|
||||
start on started mountall
|
||||
stop on shutdown
|
||||
|
||||
respawn
|
||||
|
||||
limit nofile 8192 8192
|
||||
|
||||
pre-start script
|
||||
mkdir -p /var/log/sharelatex
|
||||
end script
|
||||
|
||||
script
|
||||
echo $$ > /var/run/sharelatex-SERVICE.pid
|
||||
chdir /var/www/sharelatex/SERVICE
|
||||
exec sudo -u sharelatex -g sharelatex env SHARELATEX_CONFIG=/etc/sharelatex/settings.coffee NODE_ENV=production node app.js >> /var/log/sharelatex/SERVICE.log 2>&1
|
||||
end script
|
19
server-ce/package/upstart/sharelatex-track-changes
Normal file
19
server-ce/package/upstart/sharelatex-track-changes
Normal file
|
@ -0,0 +1,19 @@
|
|||
description "sharelatex-track-changes"
|
||||
author "ShareLaTeX <team@sharelatex.com>"
|
||||
|
||||
start on started mountall
|
||||
stop on shutdown
|
||||
|
||||
respawn
|
||||
|
||||
limit nofile 8192 8192
|
||||
|
||||
pre-start script
|
||||
mkdir -p /var/log/sharelatex
|
||||
end script
|
||||
|
||||
script
|
||||
echo $$ > /var/run/sharelatex-track-changes.pid
|
||||
chdir /var/www/sharelatex/track-changes
|
||||
exec sudo -u sharelatex -g sharelatex env SHARELATEX_CONFIG=/etc/sharelatex/settings.coffee NODE_ENV=production node app.js >> /var/log/sharelatex/track-changes.log 2>&1
|
||||
end script
|
19
server-ce/package/upstart/sharelatex-web
Normal file
19
server-ce/package/upstart/sharelatex-web
Normal file
|
@ -0,0 +1,19 @@
|
|||
description "sharelatex-web"
|
||||
author "ShareLaTeX <team@sharelatex.com>"
|
||||
|
||||
start on started mountall
|
||||
stop on shutdown
|
||||
|
||||
respawn
|
||||
|
||||
limit nofile 8192 8192
|
||||
|
||||
pre-start script
|
||||
mkdir -p /var/log/sharelatex
|
||||
end script
|
||||
|
||||
script
|
||||
echo $$ > /var/run/sharelatex-web.pid
|
||||
chdir /var/www/sharelatex/web
|
||||
exec sudo -u sharelatex -g sharelatex env SHARELATEX_CONFIG=/etc/sharelatex/settings.coffee NODE_ENV=production node app.js >> /var/log/sharelatex/web.log 2>&1
|
||||
end script
|
Loading…
Reference in a new issue