|
| 1 | +#!/bin/bash |
| 2 | +# Server Setup |
| 3 | +# |
| 4 | +# Script to install all the requirements for the server-side part of the Infinity Health project |
| 5 | + |
| 6 | +# Note that we may want to tighten it up a little for production - e.g. better DB user privs. |
| 7 | + |
| 8 | +# Grab the environment var, default to 'dev' |
| 9 | +ENV=${1-dev} |
| 10 | +# ... and pick up related vars |
| 11 | +source /vagrant/config/$ENV.sh |
| 12 | + |
| 13 | +# Grab the user var, default to 'vagrant' |
| 14 | +USER=${2-vagrant} |
| 15 | + |
| 16 | +echo -e "\033[0;34m > Provisioning Vagrant server, with the following parameters:\033[0m" |
| 17 | +echo -e "\033[0;34m > Environment: $ENV\033[0m" |
| 18 | +echo -e "\033[0;34m > Main User: $USER\033[0m" |
| 19 | + |
| 20 | +# Housekeeping |
| 21 | +apt-get update |
| 22 | +apt-get install -y git vim |
| 23 | + |
| 24 | +# Python environment and tools |
| 25 | +apt-get install -y python-setuptools python2.7 build-essential python-dev libncurses5-dev fabric |
| 26 | +easy_install pip |
| 27 | +pip install virtualenv virtualenvwrapper |
| 28 | + |
| 29 | +# Postgres DB setup |
| 30 | +apt-get install -y postgresql-9.3 postgresql-client-9.3 postgresql-server-dev-9.3 |
| 31 | +echo -e "\033[0;34m > Setting up DB. If it already exists this will generate warnings, but no harm will be done.\033[0m" |
| 32 | +sudo -u postgres psql -c "CREATE DATABASE $DB_NAME ENCODING='UTF8' TEMPLATE=template0;" |
| 33 | +sudo -u postgres psql -c "CREATE USER $DB_USER WITH PASSWORD '$DB_PASS';" |
| 34 | +sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER;" |
| 35 | +if [ $ENV == 'dev' -o $ENV == 'test' ] |
| 36 | + then |
| 37 | + sudo -u postgres psql -c "ALTER USER $DB_USER CREATEDB;" |
| 38 | +fi |
| 39 | + |
| 40 | +echo -e "\033[0;34m > Installing all the image support libs for pillow.\033[0m" |
| 41 | +sudo apt-get install -y libjpeg62-dev zlib1g-dev libfreetype6-dev liblcms1-dev |
| 42 | + |
| 43 | +# do the rest as the user we'll be logging in as through SSH |
| 44 | +chmod +x /vagrant/scripts/server-setup-user.sh |
| 45 | +sudo -u $USER /vagrant/scripts/server-setup-user.sh $ENV $USER |
| 46 | + |
| 47 | +# install requirements |
| 48 | +echo -e "\033[0;34m > Installing the pip requirements.\033[0m" |
| 49 | +sudo -H -u vagrant /home/vagrant/.virtualenvs/le-code-test/bin/pip install -r /vagrant/requirements.txt |
0 commit comments