UNPKG

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