3 RELEASE_PATH=/var/www/arvados-workbench/current
4 SHARED_PATH=/var/www/arvados-workbench/shared
5 CONFIG_PATH=/etc/arvados/workbench/
7 echo "Assumption: nginx is configured to serve workbench.`hostname` from /var/www/workbench.`hostname`/current"
8 echo "Assumption: /var/www/`hostname` is symlinked to /var/www/arvados-workbench"
9 echo "Assumption: configuration files are in /etc/arvados/workbench/"
10 echo "Assumption: nginx and passenger run as the www-data user"
13 echo "Copying files from $CONFIG_PATH"
14 cp -f $CONFIG_PATH/application.yml $RELEASE_PATH/config/application.yml
15 cp -f $RELEASE_PATH/config/environments/production.rb.example $RELEASE_PATH/config/environments/production.rb
18 # Before we do anything else, make sure some directories and files are in place
19 if [[ ! -e $SHARED_PATH/log ]]; then mkdir -p $SHARED_PATH/log; fi
20 if [[ ! -e $RELEASE_PATH/tmp ]]; then mkdir -p $RELEASE_PATH/tmp; fi
21 if [[ ! -e $RELEASE_PATH/log ]]; then ln -s $SHARED_PATH/log $RELEASE_PATH/log; fi
22 if [[ ! -e $SHARED_PATH/log/production.log ]]; then touch $SHARED_PATH/log/production.log; fi
24 echo "Running bundle install"
25 (cd $RELEASE_PATH && RAILS_ENV=production bundle install --path $SHARED_PATH/vendor_bundle)
28 # We do not need to precompile assets, they are already part of the package.
30 echo "Ensuring directory and file permissions"
31 chown www-data:www-data $RELEASE_PATH/config/environment.rb
32 chown www-data:www-data $RELEASE_PATH/config.ru
33 chown www-data:www-data $RELEASE_PATH/config/database.yml
34 chown www-data:www-data $RELEASE_PATH/Gemfile.lock
35 chown -R www-data:www-data $RELEASE_PATH/tmp
36 chown -R www-data:www-data $SHARED_PATH/log
37 chown www-data:www-data $RELEASE_PATH/db/schema.rb
38 chmod 644 $SHARED_PATH/log/*
41 echo "Running sanity check"
42 (cd $RELEASE_PATH; RAILS_ENV=production bundle exec rake config:check)
45 SANITY_CHECK_EXIT_CODE=$?
47 if [[ "$SANITY_CHECK_EXIT_CODE" != "0" ]]; then
48 echo "Sanity check failed, aborting. Please roll back to the previous version of the package."
49 exit $SANITY_CHECK_EXIT_CODE
52 # We do not need to run db:migrate because Workbench is stateless
54 echo "Restarting nginx"