diff --git a/Gruntfile.coffee b/Gruntfile.coffee index b1c5f9e9cf..e4c04601f3 100644 --- a/Gruntfile.coffee +++ b/Gruntfile.coffee @@ -207,7 +207,7 @@ module.exports = (grunt) -> checkLatexmk: (callback = (error) ->) -> grunt.log.write "Checking latexmk is installed... " exec "latexmk --version", (error, stdout, stderr) -> - if error? and error.message.match("command not found") + if error? and error.message.match("not found") grunt.log.error "FAIL." grunt.log.errorlns """ Either latexmk is not installed or is not in your PATH. @@ -241,7 +241,7 @@ module.exports = (grunt) -> checkAspell: (callback = (error) ->) -> grunt.log.write "Checking aspell is installed... " exec "aspell dump dicts", (error, stdout, stderr) -> - if error? and error.message.match("command not found") + if error? and error.message.match("not found") grunt.log.error "FAIL." grunt.log.errorlns """ Either aspell is not installed or is not in your PATH. @@ -326,7 +326,7 @@ module.exports = (grunt) -> checkMake: (callback = (error) ->) -> grunt.log.write "Checking make is installed... " exec "make --version", (error, stdout, stderr) -> - if error? and error.message.match("command not found") + if error? and error.message.match("not found") grunt.log.error "FAIL." grunt.log.errorlns """ Either make is not installed or is not in your path. diff --git a/Vagrantfile b/Vagrantfile index f0313e9ccd..d46e3a9d6e 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -23,7 +23,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| chef.add_recipe 'mongodb' chef.add_recipe 'nodejs' chef.add_recipe 'texlive' - chef.add_recipe 'sharelatex' + chef.add_recipe 'packages' # You may also specify custom JSON attributes: chef.json = {} diff --git a/chef/cookbooks/sharelatex/README.md b/chef/cookbooks/packages/README.md similarity index 81% rename from chef/cookbooks/sharelatex/README.md rename to chef/cookbooks/packages/README.md index f47306d8b1..d344c7a185 100644 --- a/chef/cookbooks/sharelatex/README.md +++ b/chef/cookbooks/packages/README.md @@ -1,5 +1,5 @@ -sharelatex Cookbook -=================== +redis Cookbook +============== TODO: Enter the cookbook description here. e.g. @@ -11,14 +11,14 @@ TODO: List your cookbook requirements. Be sure to include any requirements this e.g. #### packages -- `toaster` - sharelatex needs toaster to brown your bagel. +- `toaster` - redis needs toaster to brown your bagel. Attributes ---------- TODO: List you cookbook attributes here. e.g. -#### sharelatex::default +#### redis::default @@ -27,7 +27,7 @@ e.g. - + @@ -36,17 +36,17 @@ e.g. Usage ----- -#### sharelatex::default +#### redis::default TODO: Write usage instructions for each cookbook. e.g. -Just include `sharelatex` in your node's `run_list`: +Just include `redis` in your node's `run_list`: ```json { "name":"my_node", "run_list": [ - "recipe[sharelatex]" + "recipe[redis]" ] } ``` diff --git a/chef/cookbooks/packages/metadata.rb b/chef/cookbooks/packages/metadata.rb new file mode 100644 index 0000000000..d3a750d846 --- /dev/null +++ b/chef/cookbooks/packages/metadata.rb @@ -0,0 +1,7 @@ +name 'packages' +maintainer 'ShareLaTeX' +maintainer_email 'team@sharelatex.com' +license 'AGPLv3' +description 'Installs/Configures packages' +long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) +version '0.1.0' diff --git a/chef/cookbooks/packages/recipes/default.rb b/chef/cookbooks/packages/recipes/default.rb new file mode 100644 index 0000000000..1933cf3951 --- /dev/null +++ b/chef/cookbooks/packages/recipes/default.rb @@ -0,0 +1,9 @@ +# +# Cookbook Name:: packages +# Recipe:: default +# +# Copyright 2014, ShareLaTeX +# + +package 'git' +package 'vim' \ No newline at end of file diff --git a/chef/cookbooks/sharelatex/CHANGELOG.md b/chef/cookbooks/sharelatex/CHANGELOG.md deleted file mode 100644 index f6af89fc28..0000000000 --- a/chef/cookbooks/sharelatex/CHANGELOG.md +++ /dev/null @@ -1,12 +0,0 @@ -# CHANGELOG for sharelatex - -This file is used to list changes made in each version of sharelatex. - -## 0.1.0: - -* Initial release of sharelatex - -- - - -Check the [Markdown Syntax Guide](http://daringfireball.net/projects/markdown/syntax) for help with Markdown. - -The [Github Flavored Markdown page](http://github.github.com/github-flavored-markdown/) describes the differences between markdown on github and standard markdown. diff --git a/chef/cookbooks/sharelatex/metadata.rb b/chef/cookbooks/sharelatex/metadata.rb deleted file mode 100644 index 319ee0441b..0000000000 --- a/chef/cookbooks/sharelatex/metadata.rb +++ /dev/null @@ -1,8 +0,0 @@ -name 'sharelatex' -maintainer 'YOUR_COMPANY_NAME' -maintainer_email 'YOUR_EMAIL' -license 'All rights reserved' -description 'Installs/Configures sharelatex' -long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) -version '0.1.0' -depends 'texlive' diff --git a/chef/cookbooks/sharelatex/providers/app.rb b/chef/cookbooks/sharelatex/providers/app.rb deleted file mode 100644 index 42581bb121..0000000000 --- a/chef/cookbooks/sharelatex/providers/app.rb +++ /dev/null @@ -1,121 +0,0 @@ -action :start do - package "git" - package "build-essential" - - r = new_resource - - deploy_to = "/var/www/" + r.name - - node_environment = "production" - - directory deploy_to do - user r.user if r.user - recursive true - end - - env = { - "HOME" => deploy_to - } - - directory "#{deploy_to}/releases" do - user r.user if r.user - recursive true - end - - shared_dir = "#{deploy_to}/shared" - directory shared_dir do - user r.user if r.user - recursive true - end - directory "#{shared_dir}/config" do - user r.user if r.user - recursive true - end - directory "#{shared_dir}/log" do - user r.user if r.user - recursive true - end - - deploy_revision deploy_to do - repository r.repository - revision r.revision - user r.user if r.user - - purge_before_symlink [ - "log", "config", "node_modules" - ] - create_dirs_before_symlink [] - symlinks({ - "log" => "log", - "config" => "config" - }) - symlink_before_migrate({ - "node_modules" => "node_modules" - }) - - environment env - - migrate true - migration_command "npm install; grunt install" - - before_migrate do - directory "#{deploy_to}/shared/node_modules" do - user r.user if r.user - recursive true - end - end - - notifies :restart, "service[#{r.name}]" - end - - env = "" - r.environment.each do |key, value| - env += "#{key}=#{value} " - end - - file "/etc/init/#{r.name}.conf" do - content <<-EOS - description "#{r.name}" - author "ShareLaTeX " - - start on started mountall - stop on shutdown - - respawn - - limit nofile 8192 8192 - - script - echo $$ > /var/run/#{r.name}.pid - chdir #{deploy_to}/current - exec sudo -u #{r.user} env NODE_ENV=#{node_environment} SHARELATEX_CONFIG=/etc/sharelatex/settings.coffee #{env} node app.js >> log/production.log 2>&1 - end script - EOS - - notifies :restart, "service[#{r.name}]" - end - - directory "/etc/sharelatex" - template "/etc/sharelatex/settings.coffee" do - mode 0400 - user "www-data" - notifies :restart, "service[#{r.name}]" - end - - service "#{r.name}" do - provider Chef::Provider::Service::Upstart - action :start - end - - file "/etc/logrotate.d/#{r.name}" do - content <<-EOS - #{deploy_to}/shared/log/*.log { - rotate 7 - size 5M - missingok - compress - copytruncate - } - EOS - end -end \ No newline at end of file diff --git a/chef/cookbooks/sharelatex/recipes/default.rb b/chef/cookbooks/sharelatex/recipes/default.rb deleted file mode 100644 index 0448ef8037..0000000000 --- a/chef/cookbooks/sharelatex/recipes/default.rb +++ /dev/null @@ -1,47 +0,0 @@ -# -# Cookbook Name:: sharelatex -# Recipe:: default -# -# Copyright 2014, ShareLaTeX -# - -# For filestore conversions -package "imagemagick" -package "optipng" - -for dir in ["", "compiles", "clsi-cache", "user_files"] do - directory "/var/lib/sharelatex/#{dir}" do - user "www-data" - group "www-data" - recursive true - end -end - -sharelatex_app "web-sharelatex" do - repository "https://github.com/sharelatex/web-sharelatex.git" - revision "master" -end - -sharelatex_app "document-updater-sharelatex" do - repository "https://github.com/sharelatex/document-updater-sharelatex.git" - revision "master" -end - -sharelatex_app "filestore-sharelatex" do - repository "https://github.com/sharelatex/filestore-sharelatex.git" - revision "master" -end - -sharelatex_app "track-changes-sharelatex" do - repository "https://github.com/sharelatex/track-changes-sharelatex.git" - revision "master" -end - -sharelatex_app "clsi-sharelatex" do - repository "https://github.com/sharelatex/clsi-sharelatex.git" - revision "master" - environment({ - "PATH" => "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:#{node[:texlive][:bin_dir]}" - }) -end - diff --git a/chef/cookbooks/sharelatex/resources/app.rb b/chef/cookbooks/sharelatex/resources/app.rb deleted file mode 100644 index 3e76eb16f6..0000000000 --- a/chef/cookbooks/sharelatex/resources/app.rb +++ /dev/null @@ -1,13 +0,0 @@ -actions :start - -attribute :revision, :kind_of => String, :default => "master" -attribute :repository, :kind_of => String -attribute :user, :kind_of => String, :default => "www-data" -attribute :group, :kind_of => String, :default => "www-data" -attribute :environment, :kind_of => Hash, :default => {} - -def initialize(*args) - super - @action = :start -end - diff --git a/chef/cookbooks/sharelatex/templates/default/settings.coffee.erb b/chef/cookbooks/sharelatex/templates/default/settings.coffee.erb deleted file mode 100644 index 96215179e0..0000000000 --- a/chef/cookbooks/sharelatex/templates/default/settings.coffee.erb +++ /dev/null @@ -1,268 +0,0 @@ -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" -httpAuthUsers = {} -httpAuthUsers[httpAuthUser] = httpAuthPass - -sessionSecret = "secret-please-change" - -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/lib/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 - # --------- - mongo: - url : 'mongodb://127.0.0.1/sharelatex' - - redis: - web: - host: "localhost" - port: "6379" - password: "" - - api: - host: "localhost" - port: "6379" - password: "" - - mysql: - clsi: - database: "clsi" - username: "clsi" - password: "" - dialect: "sqlite" - storage: "/var/lib/sharelatex/clsi.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" - - # 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}" - 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 - - # Default features - # ---------------- - # - # 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 - # ------------------ - # - # You must have the corresponding aspell package installed to - # be able to use a language. - languages: [ - {name: "English", code: "en"} - ] - - # Email support - # ------------- - # - # 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: - # Who should emails be from by default? - # fromAddress: "" - # The default replyTo field, if it should be set - # replyTo: "" - # lifecycle: false - ## Example transport and parameter settings for Amazon SES - # 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 - # ------------------- - - # 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. - cacheStaticAssets: false - - # If you are running ShareLaTeX over https, set this to true to send the - # cookie with a secure flag (recommended). - secureCookie: 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: Path.resolve "data/dumpFolder" - # Where to write the project to disk before running LaTeX on it - compilesDir: "/var/lib/sharelatex/compiles" - # Where to cache downloaded URLs for the CLSI - clsiCacheDir: "/var/lib/sharelatex/clsi-cache" - - # 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 - - # Smoke test - # ---------- - # Provide log in credentials and a project to be able to run - # some basic smoke tests to check the core functionality. - # - # smokeTest: - # user: "" - # password: "" - # projectId: "" - - # Filestore health check - # ---------------------- - # Project and file details to check in filestore when calling /health_check - # health_check: - # project_id: "" - # file_id: "" diff --git a/chef/cookbooks/texlive/attributes/default.rb b/chef/cookbooks/texlive/attributes/default.rb index a3d2166187..b9941626e4 100644 --- a/chef/cookbooks/texlive/attributes/default.rb +++ b/chef/cookbooks/texlive/attributes/default.rb @@ -1,2 +1,2 @@ default[:texlive][:schema] = "small" -default[:texlive][:bin_dir] = "/usr/local/texlive/2013/bin/x86_64-linux" +default[:texlive][:bin_dir] = "/usr/local/texlive/2014/bin/x86_64-linux"
KeyDefault
['sharelatex']['bacon']['redis']['bacon'] Boolean whether to include bacon true