diff --git a/README.md b/README.md index 1cf6b439..bcddb6b4 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ Code Ocean ========== -## Setup +## Development Setup ### Mandatory Steps @@ -12,11 +12,18 @@ Code Ocean - create *config/secrets.yml* - customize *config/docker.yml.erb* +Exemplary configuration files are available in the *config* directory. + In order to execute code submissions using Docker, source code files are written to the file system and are provided to a dedicated Docker container. These files are temporarily written to *Rails.root/tmp/files/*. Please make sure that *workspace_root* in *config/docker.yml.erb* corresponds to that directory or to a linked directory if using a remote Docker server. ### Optional Steps - create *config/sendmail.yml* - create *config/smtp.yml* -- if Docker is not supported by your OS, set up a local Docker server using [vagrant-docker](https://github.com/hklement/vagrant-docker) +- if Docker is not supported by your OS, set up a local Docker server, for instance using [vagrant-docker](https://github.com/hklement/vagrant-docker) - create seed data by executing `rake db:seed` + +## Production Setup + +- create production configuration files (*database.production.yml*, …) +- customize *config/deploy/production.rb* if you want to deploy using [Capistrano](http://capistranorb.com/) \ No newline at end of file diff --git a/config/deploy.rb b/config/deploy.rb new file mode 100644 index 00000000..227f6ba6 --- /dev/null +++ b/config/deploy.rb @@ -0,0 +1,25 @@ +# config valid only for Capistrano 3.1 +lock '3.2.1' + +set :application, 'code_ocean' +set :config_example_suffix, '.example' +set :deploy_to, '/var/www/app' +set :keep_releases, 3 +set :linked_dirs, %w[bin log public/uploads tmp/cache tmp/files tmp/pids tmp/sockets] +set :linked_files, %w[config/action_mailer.yml config/database.yml config/secrets.yml config/sendmail.yml config/smtp.yml] +set :log_level, :info +set :puma_threads, [0, 16] +set :repo_url, 'git@github.com:openHPI/codeocean.git' + +namespace :deploy do + before 'check:linked_files', 'config:push' + + after :compile_assets, :copy_vendor_assets do + on roles(fetch(:assets_roles)) do + within release_path do + execute :cp, 'vendor/assets/images/*', 'public/assets/' + execute :cp, '-r', 'vendor/assets/javascripts/ace', 'public/assets/' + end + end + end +end diff --git a/config/deploy/production.rb b/config/deploy/production.rb new file mode 100644 index 00000000..caa97bd4 --- /dev/null +++ b/config/deploy/production.rb @@ -0,0 +1 @@ +server 'CHANGE_ME', roles: [:app, :db, :puma_nginx, :web], user: 'CHANGE_ME'