-
Notifications
You must be signed in to change notification settings - Fork 0
/
provision.sh
79 lines (56 loc) · 2.65 KB
/
provision.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/usr/bin/env bash
export DEBIAN_FRONTEND=noninteractive
HOMEDIR="/home/vagrant/"
PROJECTNAME="thermonitor"
PROJECTDIR="${HOMEDIR}${PROJECTNAME}/"
sudo apt-get update
sudo apt-get install -y debconf-utils pkg-config python-software-properties
sudo apt-get install -y apache2-utils git-core lynx mytop nginx nmap rdiff-backup s3cmd wget webalizer
sudo apt-get install -y graphviz graphviz-dev libgraphviz-dev libjpeg-dev libjpeg62
sudo apt-get install -y python-dev python-pip python-imaging libfreetype6 libfreetype6-dev libpq-dev
sudo apt-get install -y postgresql postgresql-contrib
curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
sudo apt-get install --yes nodejs
sudo ln -s /usr/bin/nodejs /usr/bin/node
sudo debconf-set-selections <<< "postfix postfix/mailname string ${HOSTNAME}"
sudo debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'"
sudo apt-get install -y postfix mailutils
sudo pip install virtualenv virtualenvwrapper
mkdir ~/tmp
mkdir ~/.virtualenvs
ln -s /vagrant ~/${PROJECTNAME}
echo "export WORKON_HOME=~/.virtualenvs" >> ~/.profile
echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.profile
. ~/.profile
mkvirtualenv ${PROJECTNAME}
source ~/.virtualenvs/thermonitor/bin/activate
pip install -r ${PROJECTDIR}requirements.txt
ssh-keygen -t dsa -f ~/.ssh/id_dsa -N ""
echo "workon thermonitor" >> ~/.profile
echo "cd ~/thermonitor" >> ~/.profile
chown -R vagrant:vagrant ${HOMEDIR}
sudo npm install -g bower
sudo npm install -g browserify
sudo npm install -g uglify-js
sudo npm install -g envify
cd ${PROJECTDIR}
npm install
bower install
# Generate a random 32 character string
POSTGRESQL_PASSWORD=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;)
# Generate a random 80 character string
DJANGO_SECRET=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-80};echo;)
# Set UTF-8, transaction options and timezone when creating the django database user
# https://www.digitalocean.com/community/tutorials/how-to-use-postgresql-with-your-django-application-on-ubuntu-14-04
echo "CREATE DATABASE djthermonitor;
CREATE USER djthermonitor WITH PASSWORD '$POSTGRESQL_PASSWORD';
ALTER ROLE djthermonitor SET client_encoding TO 'utf8';
ALTER ROLE djthermonitor SET default_transaction_isolation TO 'read committed';
GRANT ALL PRIVILEGES ON DATABASE djthermonitor TO djthermonitor;
" | sudo -u postgres psql
cp djthermonitor/settings_local_default.py djthermonitor/settings_local.py
sed -i -- "s/@@@@POSTGRESQL_PASSWORD@@@@/$POSTGRESQL_PASSWORD/g" djthermonitor/settings_local.py
sed -i -- "s/@@@@DJANGO_SECRET@@@@/$DJANGO_SECRET/g" djthermonitor/settings_local.py
./manage.py migrate
POSTGRESQL_PASSWORD=""
DJANGO_SECRET=""