UNPKG

8.51 kBapplication/x-shView Raw
1#!/usr/bin/env bash
2
3# run using: source install_ripple.sh
4
5# run as normal user, eg ubuntu
6
7# 20 June 2017
8
9
10# Prepare
11
12echo 'Preparing environment'
13
14sudo apt-get update
15sudo apt-get install -y build-essential libssl-dev
16sudo apt-get install -y wget gzip openssh-server curl python-minimal unzip
17
18# Node.js
19
20echo 'Installing Node.js'
21
22cd ~
23
24curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash
25export NVM_DIR="$HOME/.nvm"
26[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
27nvm install 6
28
29#make Node.js available to sudo
30
31sudo ln -s /usr/local/bin/node /usr/bin/node
32sudo ln -s /usr/local/lib/node /usr/lib/node
33sudo ln -s /usr/local/bin/npm /usr/bin/npm
34sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf
35n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local
36
37# QEWD
38
39cd ~
40mkdir qewd
41cd qewd
42
43# Install qewd-ripple (and its dependencies)
44
45cd ~/qewd
46npm install qewd-ripple ewd-client
47npm install tcp-netx
48npm install ewd-redis-globals
49sudo npm install -g pm2
50
51
52echo 'Moving qewd-ripple and QEWD files into place'
53
54mv ~/qewd/node_modules/qewd-ripple/example/ripple-demo-redis.js ~/qewd/ripple-demo.js
55mv ~/qewd/node_modules/qewd-ripple/example/ripple-secure-redis.js ~/qewd/ripple-secure.js
56
57cd ~/qewd
58mkdir www
59cd www
60mkdir qewd-monitor
61mkdir qewd-content-store
62
63cp ~/qewd/node_modules/qewd-monitor/www/bundle.js ~/qewd/www/qewd-monitor
64cp ~/qewd/node_modules/qewd-monitor/www/*.html ~/qewd/www/qewd-monitor
65cp ~/qewd/node_modules/qewd-monitor/www/*.css ~/qewd/www/qewd-monitor
66
67cp ~/qewd/node_modules/qewd-content-store/www/bundle.js ~/qewd/www/qewd-content-store
68cp ~/qewd/node_modules/qewd-content-store/www/*.html ~/qewd/www/qewd-content-store
69
70cp ~/qewd/node_modules/ewd-client/lib/proto/ewd-client.js ~/qewd/www/ewd-client.js
71
72# ============ WebRTC installation ========
73
74# Server
75
76cp -r ~/qewd/node_modules/qewd-ripple/webrtc/server/ ~/videochat-socket-server/
77cp -r ~/qewd/node_modules/qewd-ripple/webrtc/ssl/ ~/qewd/ssl/
78cd ~/videochat-socket-server
79npm install
80pm2 start pm2.json
81pm2 save
82
83# Client
84
85# cp -r ~/qewd/node_modules/qewd-ripple/webrtc/client/ ~/qewd/www/videochat/
86# this is copied from the client s/w repository later
87
88# TURN Server
89
90# Optional - uncomment if needed
91# You'll also need to change the turnServer definition
92# at the top of ~/qewd/www/videochat/videochat.js
93
94# cd ~/qewd/node_modules/qewd-ripple/webrtc/turn
95# echo 'deb http://http.us.debian.org/debian jessie main' | sudo tee /etc/apt/sources.list.d/coturn.list
96# gpg --keyserver pgpkeys.mit.edu --recv-key 8B48AD6246925553
97# gpg -a --export 8B48AD6246925553 | sudo apt-key add -
98# gpg --keyserver pgpkeys.mit.edu --recv-key 7638D0442B90D010
99# gpg -a --export 7638D0442B90D010 | sudo apt-key add -
100# gpg --keyserver pgpkeys.mit.edu --recv-key CBF8D6FD518E17E1
101# gpg -a --export CBF8D6FD518E17E1 | sudo apt-key add -
102# sudo apt-get update
103# sudo apt-get install coturn=4.2.1.2-1 -y
104# sudo cp -f ./turnserver.conf /etc/
105# sudo cp -f ./turnuserdb.conf /etc/
106# sudo cp -f ./coturn /etc/default
107# sudo service coturn start
108
109# ============ WebRTC installed ==========
110
111echo "QEWD / Node.js middle tier is now installed"
112
113echo "-----------------------------------------------------------------------"
114echo " Installing Redis..."
115echo "-----------------------------------------------------------------------"
116
117cd ~
118wget http://download.redis.io/redis-stable.tar.gz
119tar xvzf redis-stable.tar.gz
120
121# rename the created redis directory to just redis
122
123mv redis-stable redis
124cd redis
125
126# build Redis
127
128echo "Building Redis - be patient, this will take a few minutes"
129
130make
131sudo make install
132cd utils
133
134PORT=6379
135CONFIG_FILE=/etc/redis/6379.conf
136LOG_FILE=/var/log/redis_6379.log
137DATA_DIR=/var/lib/redis/6379
138EXECUTABLE=/usr/local/bin/redis-server
139
140echo -e "${PORT}\n${CONFIG_FILE}\n${LOG_FILE}\n${DATA_DIR}\n${EXECUTABLE}\n" | sudo ./install_server.sh
141sudo update-rc.d redis_6379 defaults
142
143echo "Redis is now installed and running, listening on port 6379"
144
145cd ~/qewd
146
147echo "-----------------------------------------------------------------------"
148echo " Installing MySQL Server..."
149echo "-----------------------------------------------------------------------"
150
151# Set default MySQL password to get rid of the prompt during install
152sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password password'
153sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password password'
154
155# Install MySQL packages
156sudo apt-get install -y mysql-server
157sudo service mysql start
158
159# Run the database scripts
160
161cd ~
162mysql -u root -ppassword < ~/qewd/node_modules/qewd-ripple/data/create_database_and_tables.sql
163mysql -u root -ppassword < ~/qewd/node_modules/qewd-ripple/data/populate_general_practitioners_table.sql
164mysql -u root -ppassword < ~/qewd/node_modules/qewd-ripple/data/populate_medical_departments_table.sql
165mysql -u root -ppassword < ~/qewd/node_modules/qewd-ripple/data/populate_patients_table.sql
166
167echo "-----------------------------------------------------------------------"
168echo " MySQL environment and data set up"
169echo "-----------------------------------------------------------------------"
170
171
172echo "-----------------------------------------------------------------------"
173echo " Initialising deployment environment..."
174echo "-----------------------------------------------------------------------"
175
176# Retrieve the UI code
177
178# To download the version of the UI that contains only core headings, please use the following link:
179
180# https://github.com/PulseTile/PulseTile/blob/master/build/PulseTile-core-1.0.0.zip;
181
182# In case you need a previous UI build - you'll see the builds available for downloading at:
183
184# https://github.com/PulseTile/PulseTile/blob/master/build/"
185
186cd ~
187#
188# If you want the latest development version:
189# wget -O ripple_ui.zip https://github.com/PulseTile/PulseTile/blob/develop/build/PulseTile-latest.zip?raw=true
190#
191
192wget -O ripple_ui.zip https://github.com/PulseTile/PulseTile/blob/master/build/PulseTile-latest.zip?raw=true
193
194# Unpack the UI
195
196unzip ripple_ui.zip
197
198# move it into place
199
200mv -v ~/dist/* ~/qewd/www/
201
202# Install Swagger UI and specification
203
204echo "-----------------------------------------------------------------------"
205echo " Installing Swagger UI & Specification for Ripple"
206echo "-----------------------------------------------------------------------"
207
208cd ~/qewd/www
209mkdir swagger
210git clone https://github.com/swagger-api/swagger-ui.git
211cp ~/qewd/node_modules/qewd-ripple/swagger/index.html ~/qewd/www/swagger-ui/dist
212cp ~/qewd/node_modules/qewd-ripple/swagger/*.json ~/qewd/www/swagger
213cp ~/qewd/node_modules/qewd-ripple/swagger/createSwaggerSpec.js ~/qewd
214
215
216# Map port 80 to port 3000
217# sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
218
219# echo "----------------------------------------------------------------------------------"
220# echo " Port 80 will be permanently mapped to port 3000"
221# echo " Answer Yes to all questions that follow to make this happen... "
222# echo "----------------------------------------------------------------------------------"
223
224# sudo apt-get install iptables-persistent
225
226# ========== Install nginx Proxy, listening on port 80 =================
227
228# alias /var/www to the QEWD www directory
229
230sudo ln -s ~/qewd/www/ /var/www
231sudo ln -s ~/qewd/ssl/ /var/ssl
232sudo apt-get install -y nginx
233sudo cp ~/qewd/node_modules/qewd-ripple/nginx/sites-available/default /etc/nginx/sites-available/default
234sudo systemctl restart nginx
235
236cd ~/qewd
237pm2 start ripple-demo.js
238pm2 start ripple-secure.js
239
240echo "----------------------------------------------------------------------------------"
241echo " The set up of the QEWD Ripple Middle Tier on your Ubuntu server is now complete! "
242echo " Startup template files (ripple-demo.js and ripple-secure.js "
243echo " are in the ~/qewd directory. Add the appropriate Auth0 credentials "
244echo " "
245echo " ripple-demo and ripple-secure have been started in PM2 for you "
246echo "----------------------------------------------------------------------------------"
247