Skip to content

Commit 07d2e4b

Browse files
vicariousdramavic
and
vic
committed
Fix install + uninstall (#84)
Co-authored-by: vic <vic@localhost>
1 parent 758ced6 commit 07d2e4b

File tree

2 files changed

+77
-17
lines changed

2 files changed

+77
-17
lines changed

install.sh

+39-11
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ else
4646
CREATED_USER=1
4747
fi
4848

49+
# Set permissions on nodeyez home folder so others can read
50+
sudo chmod 755 /home/nodeyez
51+
4952
# Add user to tor group
5053
sudo adduser nodeyez debian-tor
5154

@@ -119,12 +122,17 @@ sudo -u nodeyez -s source /home/nodeyez/.pyenv/nodeyez/bin/activate && /home/nod
119122
# Website dashboard
120123
if [ $(which nginx | wc -l) -gt 0 ]; then
121124
# nginx is already installed
125+
echo "NGINX already installed"
122126
if [ -d "/mnt/hdd/mynode" ]; then
123127
# we are installing on a mynode environment
124-
echo "Configuring Nodeyez Dashboard in NGINX"
128+
echo "Configuring Nodeyez Dashboard in NGINX for MyNode"
125129
# enable xslt module
126-
sudo cp /home/nodeyez/nodeyez/scripts/nginx/a_xslt.conf /etc/nginx/modules-enabled/a_xslt.conf
127-
sudo chown root:root /etc/nginx/modules-enabled/a_xslt.conf
130+
if [ $(sudo cat /etc/nginx/modules-enabled/* | grep xslt | wc -l) -gt 0 ]; then
131+
echo "XSLT module is loaded for NGINX"
132+
else
133+
sudo cp /home/nodeyez/nodeyez/scripts/nginx/a_xslt.conf /etc/nginx/modules-enabled/a_xslt.conf
134+
sudo chown root:root /etc/nginx/modules-enabled/a_xslt.conf
135+
fi
128136
# copy xslt templates
129137
sudo cp /home/nodeyez/nodeyez/scripts/nginx/nodeyez*.xslt /etc/nginx/
130138
sudo chown root:root /etc/nginx/nodeyez*.xslt
@@ -135,12 +143,13 @@ if [ $(which nginx | wc -l) -gt 0 ]; then
135143
CREATED_WEBSITE=1
136144
else
137145
# Generic NGINX
146+
echo "Configuring Nodeyez Dashboard in NGINX for Generic"
138147
# get some ssl cert info
139148
line_ssl_certificate=$(sudo nginx -T 2>&1 | grep "ssl_certificate " | sed -n 1p)
140-
line_ssl_certificate_private=$(sudo nginx -T 2>&1 | grep "ssl_certificate_private " | sed -n 1p)
149+
line_ssl_certificate_key=$(sudo nginx -T 2>&1 | grep "ssl_certificate_key " | sed -n 1p)
141150
# drop in our base config
142151
# determine if xslt module is loaded
143-
if [ $(nginx -V 2>&1 | tr ' ' '\n' | egrep -i 'xslt' | wc -l) -gt 0 ]; then
152+
if [ $(sudo cat /etc/nginx/modules-enabled/* | grep xslt | wc -l) -gt 0 ]; then
144153
echo "XSLT module is loaded for NGINX"
145154
else
146155
echo "Configuring NGINX to load XSLT module"
@@ -155,32 +164,45 @@ if [ $(which nginx | wc -l) -gt 0 ]; then
155164
sudo chown root:root /etc/nginx/sites-enabled/https_nodeyez.conf
156165
# ssl config
157166
sudo mkdir -p /etc/nginx/nodeyez
158-
sudo cp /home/nodeyez/scripts/nginx/nodeyez_ssl*.conf /etc/nginx/nodeyez
167+
sudo cp /home/nodeyez/nodeyez/scripts/nginx/nodeyez_ssl*.conf /etc/nginx/nodeyez
159168
# assign back first cert and key if detected from earlier
160169
if [ ${#line_ssl_certificate} -gt 0 ]; then
161170
sudo rm /etc/nginx/nodeyez/nodeyez_ssl_cert_key.conf
162171
sudo echo $line_ssl_certificate >> /etc/nginx/nodeyez/nodeyez_ssl_cert_key.conf
163-
sudo echo $line_ssl_certificate_private >> /etc/nginx/nodeyez/nodeyez_ssl_cert_key.conf
172+
sudo echo $line_ssl_certificate_key >> /etc/nginx/nodeyez/nodeyez_ssl_cert_key.conf
164173
else
165174
sudo openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/nodeyez-nginx-selfsigned.key -out /etc/ssl/certs/nodeyez-nginx-selfsigned.crt -subj "/CN=localhost" -days 3650
166175
fi
176+
# create diffie-hellman if we dont have any yet
177+
if [ ! -f "/etc/ssl/certs/dhparam.pem" ]; then
178+
sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
179+
fi
167180
sudo chown root:root -R /etc/nginx/nodeyez
168181
CREATED_WEBSITE=1
169182
fi
170183
else
171184
# nginx is not yet installed
172-
sudo apt install -y nginx
185+
echo "Installing NGINX"
186+
sudo apt install -y nginx nginx-common
173187
# make a self signed cert
174188
sudo openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/nodeyez-nginx-selfsigned.key -out /etc/ssl/certs/nodeyez-nginx-selfsigned.crt -subj "/CN=localhost" -days 3650
189+
if [ ! -f "/etc/ssl/certs/dhparam.pem" ]; then
190+
sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
191+
fi
175192
# enable xslt module
176-
sudo cp /home/nodeyez/nodeyez/scripts/nginx/a_xslt.conf /etc/nginx/modules-enabled/a_xslt.conf
177-
sudo chown root:root /etc/nginx/modules-enabled/a_xslt.conf
193+
if [ $(sudo cat /etc/nginx/modules-enabled/* | grep xslt | wc -l) -gt 0 ]; then
194+
echo "XSLT module is loaded for NGINX"
195+
else
196+
echo "Configuring NGINX to load XSLT module"
197+
sudo cp /home/nodeyez/nodeyez/scripts/nginx/a_xslt.conf /etc/nginx/modules-enabled/a_xslt.conf
198+
sudo chown root:root /etc/nginx/modules-enabled/a_xslt.conf
199+
fi
178200
# templates
179201
sudo cp /home/nodeyez/nodeyez/scripts/nginx/nodeyez*.xslt /etc/nginx/
180202
sudo chown root:root /etc/nginx/nodeyez*.xslt
181203
# nodeyez config referencing our freshly minted self signed certs
182204
sudo mkdir -p /etc/nginx/nodeyez
183-
sudo cp /home/nodeyez/scripts/nginx/nodeyez_ssl*.conf /etc/nginx/nodeyez
205+
sudo cp /home/nodeyez/nodeyez/scripts/nginx/nodeyez_ssl*.conf /etc/nginx/nodeyez
184206
# site config
185207
sudo cp /home/nodeyez/nodeyez/scripts/nginx/https_nodeyez.conf /etc/nginx/sites-enabled/https_nodeyez.conf
186208
sudo chown root:root /etc/nginx/sites-enabled/https_nodeyez.conf
@@ -202,6 +224,7 @@ sudo cp /home/nodeyez/nodeyez/scripts/systemd/nodeyez.conf /etc/nodeyez.conf
202224

203225
# Initial services to enable and start
204226
# - fearandgreed, fiatprice, ipaddress, satsperusd, sysinfo, utcclock
227+
if [ 1 -eq 1 ]; then
205228
sudo systemctl enable nodeyez-fearandgreed.service
206229
sudo systemctl start nodeyez-fearandgreed.service
207230
sudo systemctl enable nodeyez-fiatprice.service
@@ -216,6 +239,7 @@ sudo systemctl enable nodeyez-utcclock.service
216239
sudo systemctl start nodeyez-utcclock.service
217240
sudo systemctl enable nodeyez-daily-data-retrieval.service
218241
sudo systemctl start nodeyez-daily-data-retrieval.service
242+
fi
219243
# - bitcoin: arthash, arthashdungeon, blockheight, blockstats, difficultyepoch, halving, mempoolblocks
220244
if [ $GRANTED_BITCOIN -ge 1 ]; then
221245
sudo systemctl enable nodeyez-arthash.service
@@ -277,3 +301,7 @@ sudo systemctl list-units --type=service --state=active | grep nodeyez | awk '{p
277301
sudo systemctl list-units --type=service --state=failed | grep nodeyez | awk '{print "(failed) " $2}'
278302

279303

304+
# usermod -a -G www-data nodeyez
305+
# chgrp www-data /home/nodeyez/nodeyez/imageoutput
306+
# chmod g+rwxs /home/nodeyez/nodeyez/imageoutput
307+
# chmod 755 /home/nodeyez

uninstall.sh

+38-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,25 @@
11
#!/usr/bin/env bash
22

33
# Nodeyez uninstall script
4+
DELETED_SERVICES=0
5+
DELETED_ENV=0
46
DELETED_WEBSITE=0
7+
DELETED_UFWRULES=0
8+
DELETED_SELFCERT=0
59
DELETED_USER=0
610

711
# Remove Nodeyez services
812
for f in $(systemctl list-unit-files --type=service | grep nodeyez | awk '{print $1}'); do sudo systemctl stop $f; sudo systemctl disable $f; done
9-
sudo rm /etc/systemd/system/nodeyez-*.service
10-
sudo rm /etc/nodeyez.conf
13+
# - service files
14+
if [ $(sudo ls -la /etc/systemd/system | grep nodeyez | wc -l) -gt 0 ]; then
15+
sudo rm /etc/systemd/system/nodeyez-*.service
16+
DELETED_SERVICES=1
17+
fi
18+
# - environment file
19+
if [ -f "/etc/nodeyez.conf" ]; then
20+
sudo rm /etc/nodeyez.conf
21+
DELETED_ENV=1
22+
fi
1123

1224
# Remove Nodeyez dashboard
1325
if [ $(which nginx | wc -l) -gt 0 ]; then
@@ -42,14 +54,19 @@ if [ $(which nginx | wc -l) -gt 0 ]; then
4254
fi
4355

4456
# Remove uncomplicated firewall rules with Nodeyez comments
45-
for n in $(sudo ufw status numbered | grep Nodeyez | awk '{print $2}' | sed 's/]//' | sort -r); do sudo ufw --force delete $n; done
57+
if [ $(sudo ufw status | grep Nodeyez | wc -l) -gt 0 ]; then
58+
for n in $(sudo ufw status numbered | grep Nodeyez | awk '{print $2}' | sed 's/]//' | sort -r); do sudo ufw --force delete $n; done
59+
DELETED_UFWRULES=1
60+
fi
4661

4762
# Remove Nodeyez self-signed cert
4863
if [ -f "/etc/ssl/certs/nodeyez-nginx-selfsigned.crt" ]; then
4964
sudo rm /etc/ssl/certs/nodeyez-nginx-selfsigned.crt
65+
DELETED_SELFCERT=1
5066
fi
5167
if [ -f "/etc/ssl/private/nodeyez-nginx-selfsigned.key" ]; then
5268
sudo rm /etc/ssl/private/nodeyez-nginx-selfsigned.key
69+
DELETED_SELFCERT=1
5370
fi
5471

5572

@@ -73,12 +90,27 @@ fi
7390
# show summary
7491
echo "================================================"
7592
echo "SUMMARY:"
76-
echo "Remaining services"
77-
sudo systemctl list-units --type=service --state=active | grep nodeyez | awk '{print "(active) " $1}'
78-
sudo systemctl list-units --type=service --state=failed | grep nodeyez | awk '{print "(failed) " $2}'
93+
if [ $DELETED_SERVICES -ge 1 ]; then
94+
echo "Nodeyez services removed"
95+
fi
96+
if [ $(sudo systemctl list-units --type=service | grep nodeyez | wc -l) -ge 1 ]; then
97+
echo "Remaining services"
98+
sudo systemctl list-units --type=service --state=active | grep nodeyez | awk '{print "(active) " $1}'
99+
sudo systemctl list-units --type=service --state=failed | grep nodeyez | awk '{print "(failed) " $2}'
100+
fi
101+
if [ $DELETED_ENV -ge 1 ]; then
102+
echo "Nodeyez environment variables for services removed"
103+
fi
79104
if [ $DELETED_WEBSITE -ge 1 ]; then
80105
echo "Website deleted"
81106
fi
107+
if [ $DELETED_UFWRULES -ge 1 ]; then
108+
echo "Uncomplicated Firewall Rules for Nodeyez removed"
109+
fi
110+
if [ $DELETED_SELFCERT -ge 1 ]; then
111+
echo "Nodeyez self-signed certificates removed"
112+
fi
82113
if [ $DELETED_USER -ge 1 ]; then
83114
echo "Nodeyez user deleted"
84115
fi
116+
echo "Uninstallation complete"

0 commit comments

Comments
 (0)