raspiblitz/home.admin/00settingsMenuServices.sh

318 lines
10 KiB
Bash
Raw Normal View History

#!/bin/bash
# get raspiblitz config
2019-01-18 23:38:36 +01:00
echo "get raspiblitz config"
2019-02-02 23:49:04 +01:00
source /home/admin/raspiblitz.info
source /mnt/hdd/raspiblitz.conf
2019-02-02 23:49:04 +01:00
2019-01-18 23:38:36 +01:00
echo "services default values"
2018-12-02 23:08:20 +01:00
if [ ${#autoPilot} -eq 0 ]; then autoPilot="off"; fi
2018-12-22 16:44:15 +01:00
if [ ${#autoUnlock} -eq 0 ]; then autoUnlock="off"; fi
2018-12-02 23:08:20 +01:00
if [ ${#runBehindTor} -eq 0 ]; then runBehindTor="off"; fi
if [ ${#rtlWebinterface} -eq 0 ]; then rtlWebinterface="off"; fi
if [ ${#chain} -eq 0 ]; then chain="main"; fi
2019-06-13 16:50:06 +02:00
if [ ${#autoNatDiscovery} -eq 0 ]; then autoNatDiscovery="off"; fi
2019-06-13 18:03:17 +02:00
if [ ${#networkUPnP} -eq 0 ]; then networkUPnP="off"; fi
2019-07-03 04:17:31 +02:00
if [ ${#touchscreen} -eq 0 ]; then touchscreen=0; fi
2018-12-02 23:08:20 +01:00
2019-01-18 23:38:36 +01:00
echo "map chain to on/off"
2018-12-02 23:08:20 +01:00
chainValue="off"
if [ "${chain}" = "test" ]; then chainValue="on"; fi
2019-01-18 23:38:36 +01:00
echo "map domain to on/off"
2018-12-20 14:13:42 +01:00
domainValue="off"
2018-12-21 01:28:42 +01:00
dynDomainMenu='DynamicDNS'
2018-12-21 00:47:46 +01:00
if [ ${#dynDomain} -gt 0 ]; then
domainValue="on"
2018-12-21 00:50:01 +01:00
dynDomainMenu="${dynDomain}"
2018-12-21 00:47:46 +01:00
fi
2018-12-20 14:13:42 +01:00
2019-07-03 04:03:40 +02:00
echo "map touchscreen to on/off"
tochscreenMenu='on'
if [ ${tochscreen} -gt 0 ]; then
tochscreenMenu='off'
fi
2019-01-21 21:47:16 +01:00
echo "check autopilot by lnd.conf"
lndAutoPilotOn=$(sudo cat /mnt/hdd/lnd/lnd.conf | grep -c 'autopilot.active=1')
if [ ${lndAutoPilotOn} -eq 1 ]; then
autoPilot="on"
else
autoPilot="off"
fi
# show select dialog
2019-01-18 23:38:36 +01:00
echo "run dialog ..."
2019-06-14 00:25:49 +02:00
if [ "${runBehindTor}" = "on" ]; then
CHOICES=$(dialog --title ' Additional Services ' --checklist ' use spacebar to activate/de-activate ' 15 45 8 \
1 'Channel Autopilot' ${autoPilot} \
2 'Testnet' ${chainValue} \
3 ${dynDomainMenu} ${domainValue} \
4 'Run behind TOR' ${runBehindTor} \
5 'RTL Webinterface' ${rtlWebinterface} \
6 'LND Auto-Unlock' ${autoUnlock} \
2019-07-03 04:03:40 +02:00
9 'Touchscreen' ${tochscreenMenu} \
2019-06-14 00:25:49 +02:00
2>&1 >/dev/tty)
else
2019-07-03 03:59:11 +02:00
CHOICES=$(dialog --title ' Additional Services ' --checklist ' use spacebar to activate/de-activate ' 16 45 9 \
2019-06-14 00:25:49 +02:00
1 'Channel Autopilot' ${autoPilot} \
2018-12-20 22:52:54 +01:00
2 'Testnet' ${chainValue} \
2019-01-10 18:17:03 +01:00
3 ${dynDomainMenu} ${domainValue} \
4 'Run behind TOR' ${runBehindTor} \
5 'RTL Webinterface' ${rtlWebinterface} \
6 'LND Auto-Unlock' ${autoUnlock} \
2019-06-14 00:33:46 +02:00
7 'BTC UPnP (AutoNAT)' ${networkUPnP} \
8 'LND UPnP (AutoNAT)' ${autoNatDiscovery} \
2019-07-03 04:03:40 +02:00
9 'Touchscreen' ${tochscreenMenu} \
2019-06-14 00:25:49 +02:00
2>&1 >/dev/tty)
2019-06-14 00:22:27 +02:00
fi
2019-06-14 00:25:49 +02:00
2018-10-16 00:04:20 +02:00
dialogcancel=$?
2019-01-18 23:38:36 +01:00
echo "done dialog"
clear
# check if user canceled dialog
2019-01-18 23:38:36 +01:00
echo "dialogcancel(${dialogcancel})"
2018-10-16 00:04:20 +02:00
if [ ${dialogcancel} -eq 1 ]; then
echo "user canceled"
exit 1
fi
2018-12-01 20:25:33 +01:00
needsReboot=0
2019-02-11 19:59:09 +01:00
anychange=0
2018-12-01 20:25:33 +01:00
# AUTOPILOT process choice
choice="off"; check=$(echo "${CHOICES}" | grep -c "1")
if [ ${check} -eq 1 ]; then choice="on"; fi
2018-11-27 04:19:57 +01:00
if [ "${autoPilot}" != "${choice}" ]; then
2018-12-02 19:52:01 +01:00
echo "Autopilot Setting changed .."
2019-02-11 19:59:09 +01:00
anychange=1
2018-11-27 04:19:57 +01:00
sudo /home/admin/config.scripts/lnd.autopilot.sh ${choice}
2018-12-01 20:25:33 +01:00
needsReboot=1
2018-11-27 04:19:57 +01:00
else
echo "Autopilot Setting unchanged."
2018-12-01 20:25:33 +01:00
fi
# TESTNET process choice
choice="main"; check=$(echo "${CHOICES}" | grep -c "2")
if [ ${check} -eq 1 ]; then choice="test"; fi
if [ "${chain}" != "${choice}" ]; then
if [ "${network}" = "litecoin" ] && [ "${choice}"="test" ]; then
dialog --title 'FAIL' --msgbox 'Litecoin-Testnet not available.' 5 25
else
2018-12-02 19:52:01 +01:00
echo "Testnet Setting changed .."
2019-02-11 19:59:09 +01:00
anychange=1
2018-12-01 20:25:33 +01:00
sudo /home/admin/config.scripts/network.chain.sh ${choice}net
2018-12-04 22:24:28 +01:00
walletExists=$(sudo ls /mnt/hdd/lnd/data/chain/${network}/${choice}net/wallet.db 2>/dev/null | grep -c 'wallet.db')
if [ ${walletExists} -eq 0 ]; then
2018-12-05 01:49:34 +01:00
echo "Need to creating a new wallet ... wait 20secs"
sudo systemctl start lnd
2018-12-05 01:49:34 +01:00
sleep 20
tryAgain=1
while [ ${tryAgain} -eq 1 ]
do
echo "****************************************************************************"
echo "Creating a new LND Wallet for ${network}/${choice}net"
echo "****************************************************************************"
echo "A) For 'Wallet Password' use your PASSWORD C --> !! minimum 8 characters !!"
echo "B) Answere 'n' because you dont have a 'cipher seed mnemonic' (24 words) yet"
echo "C) For 'passphrase' to encrypt your 'cipher seed' use PASSWORD D (optional)"
echo "****************************************************************************"
2018-12-20 20:11:02 +01:00
sudo -u bitcoin /usr/local/bin/lncli --chain=${network} --network=${chain}net create 2>error.out
error=`sudo cat error.out`
if [ ${#error} -eq 0 ]; then
2018-12-05 01:12:45 +01:00
sleep 2
2018-12-05 01:53:28 +01:00
# WIN
tryAgain=0
echo "!!! Make sure to write down the 24 words (cipher seed mnemonic) !!!"
echo "If you are ready. Press ENTER."
else
# FAIL
tryAgain=1
echo "!!! FAIL ---> SOMETHING WENT WRONG !!!"
echo "${error}"
echo "Press ENTER to retry ... or CTRL-c to EXIT"
fi
read key
done
2018-12-05 11:18:18 +01:00
echo "Check for Macaroon .. (10sec)"
sleep 10
2018-12-05 01:48:37 +01:00
macaroonExists=$(sudo ls /home/bitcoin/.lnd/data/chain/${network}/${choice}net/admin.macaroon | grep -c 'admin.macaroon')
if [ ${macaroonExists} -eq 0 ]; then
echo "*** PLEASE UNLOCK your wallet with PASSWORD C to create macaroon"
2018-12-05 11:18:18 +01:00
lncli unlock 2>/dev/null
2018-12-05 01:48:37 +01:00
sleep 6
fi
macaroonExists=$(sudo ls /home/bitcoin/.lnd/data/chain/${network}/${choice}net/admin.macaroon | grep -c 'admin.macaroon')
if [ ${macaroonExists} -eq 0 ]; then
echo "FAIL --> Was not able to create macaroon"
echo "Please report problem."
exit 1
fi
2018-12-05 00:58:44 +01:00
echo "stopping lnd again"
sleep 5
sudo systemctl stop lnd
fi
2018-12-05 01:48:37 +01:00
echo "Update Admin Macaroon"
2018-12-05 01:12:45 +01:00
sudo rm -r /home/admin/.lnd/data/chain/${network}/${choice}net 2>/dev/null
sudo mkdir /home/admin/.lnd/data/chain/${network}/${choice}net
sudo cp /home/bitcoin/.lnd/data/chain/${network}/${choice}net/admin.macaroon /home/admin/.lnd/data/chain/${network}/${choice}net
sudo chown -R admin:admin /home/admin/.lnd/
2018-12-05 01:48:37 +01:00
2018-12-01 20:25:33 +01:00
needsReboot=1
fi
else
echo "Testnet Setting unchanged."
fi
2018-12-20 14:13:42 +01:00
# Dynamic Domain
2019-01-10 18:17:03 +01:00
choice="off"; check=$(echo "${CHOICES}" | grep -c "3")
2018-12-02 19:52:01 +01:00
if [ ${check} -eq 1 ]; then choice="on"; fi
2018-12-20 14:13:42 +01:00
if [ "${domainValue}" != "${choice}" ]; then
echo "Dynamic Domain changed .."
2019-02-11 19:59:09 +01:00
anychange=1
2018-12-20 22:52:54 +01:00
sudo /home/admin/config.scripts/internet.dyndomain.sh ${choice}
needsReboot=1
2018-12-20 14:13:42 +01:00
else
echo "Dynamic Domain unchanged."
fi
2019-06-14 00:03:44 +02:00
# UPnP
choice="off"; check=$(echo "${CHOICES}" | grep -c "7")
if [ ${check} -eq 1 ]; then choice="on"; fi
if [ "${networkUPnP}" != "${choice}" ]; then
echo "BTC UPnP Setting changed .."
anychange=1
if [ "${choice}" = "on" ]; then
echo "Starting BTC UPNP ..."
/home/admin/config.scripts/network.upnp.sh on
networkUPnP="on"
needsReboot=1
else
echo "Stopping BTC UPNP ..."
/home/admin/config.scripts/network.upnp.sh off
networkUPnP="off"
needsReboot=1
fi
else
echo "BTC UPnP Setting unchanged."
fi
# AutoNAT
choice="off"; check=$(echo "${CHOICES}" | grep -c "8")
if [ ${check} -eq 1 ]; then choice="on"; fi
if [ "${autoNatDiscovery}" != "${choice}" ]; then
echo "AUTO NAT Setting changed .."
anychange=1
if [ "${choice}" = "on" ]; then
echo "Starting autoNAT ..."
/home/admin/config.scripts/lnd.autonat.sh on
autoNatDiscovery="on"
needsReboot=1
else
echo "Stopping autoNAT ..."
/home/admin/config.scripts/lnd.autonat.sh off
autoNatDiscovery="off"
needsReboot=1
fi
else
echo "LND AUTONAT Setting unchanged."
fi
2018-12-20 14:13:42 +01:00
# TOR process choice
2019-01-10 18:17:03 +01:00
choice="off"; check=$(echo "${CHOICES}" | grep -c "4")
2018-12-20 14:13:42 +01:00
if [ ${check} -eq 1 ]; then choice="on"; fi
2018-12-02 19:52:01 +01:00
if [ "${runBehindTor}" != "${choice}" ]; then
echo "TOR Setting changed .."
2019-06-14 00:03:44 +02:00
# make sure AutoNAT & UPnP is off
/home/admin/config.scripts/lnd.autonat.sh off
/home/admin/config.scripts/network.upnp.sh off
# change TOR
2019-02-11 19:59:09 +01:00
anychange=1
2018-12-02 19:52:01 +01:00
sudo /home/admin/config.scripts/internet.tor.sh ${choice}
needsReboot=1
2019-06-14 00:03:44 +02:00
2018-12-02 19:52:01 +01:00
else
echo "TOR Setting unchanged."
fi
# RTL process choice
2019-01-10 18:17:03 +01:00
choice="off"; check=$(echo "${CHOICES}" | grep -c "5")
2018-12-02 19:52:01 +01:00
if [ ${check} -eq 1 ]; then choice="on"; fi
if [ "${rtlWebinterface}" != "${choice}" ]; then
echo "RTL Webinterface Setting changed .."
2019-02-18 11:32:27 +01:00
anychange=1
2018-12-02 19:52:01 +01:00
sudo /home/admin/config.scripts/bonus.rtl.sh ${choice}
2019-03-13 18:13:49 +01:00
errorOnInstall=$?
2018-12-03 23:25:55 +01:00
if [ "${choice}" = "on" ]; then
2019-03-13 18:13:49 +01:00
if [ ${errorOnInstall} -eq 0 ]; then
localip=$(ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | cut -f1 -d'/')
2019-03-28 03:51:46 +01:00
l1="RTL web service will be ready AFTER NEXT REBOOT:"
l2="Try to open the following URL in your local web browser"
2019-03-13 18:13:49 +01:00
l3="and login with your PASSWORD B."
l4="---> http://${localip}:3000"
dialog --title 'OK' --msgbox "${l1}\n${l2}\n${l3}\n${l4}" 11 65
else
l1="!!! FAIL on RTL install !!!"
l2="Try manual install on terminal after rebootwith:"
l3="sudo /home/admin/config.scripts/bonus.rtl.sh on"
dialog --title 'FAIL' --msgbox "${l1}\n${l2}\n${l3}" 10 65
fi
2018-12-02 19:52:01 +01:00
fi
needsReboot=1
2018-12-02 23:50:14 +01:00
else
2018-12-02 19:52:01 +01:00
echo "RTL Webinterface Setting unchanged."
2018-12-01 22:24:32 +01:00
fi
2018-12-22 16:44:15 +01:00
# LND Auto-Unlock
2019-01-10 18:17:03 +01:00
choice="off"; check=$(echo "${CHOICES}" | grep -c "6")
2018-12-22 16:44:15 +01:00
if [ ${check} -eq 1 ]; then choice="on"; fi
if [ "${autoUnlock}" != "${choice}" ]; then
echo "LND Autounlock Setting changed .."
2019-02-11 19:59:09 +01:00
anychange=1
2018-12-22 16:44:15 +01:00
sudo /home/admin/config.scripts/lnd.autounlock.sh ${choice}
2019-01-18 03:34:20 +01:00
l1="AUTO-UNLOCK IS NOW OFF"
2019-01-18 03:12:26 +01:00
if [ "${choice}" = "on" ]; then
2019-01-18 03:34:20 +01:00
l1="AUTO-UNLOCK IS NOW ACTIVE"
fi
l2="-------------------------"
l3="mobile/external wallets may need reconnect"
l4="possible change in macaroon / TLS cert"
dialog --title 'OK' --msgbox "${l1}\n${l2}\n${l3}\n${l4}" 11 60
2018-12-22 16:44:15 +01:00
needsReboot=1
else
echo "LND Autounlock Setting unchanged."
fi
# touchscreen
choice="0"; check=$(echo "${CHOICES}" | grep -c "9")
if [ ${check} -eq 1 ]; then choice="1"; fi
if [ "${touchscreen}" != "${choice}" ]; then
echo "Touchscreen Setting changed .."
anychange=1
sudo /home/admin/config.scripts/blitz.touchscreen.sh ${choice}
needsReboot=1
else
echo "Touchscreen Setting unchanged."
fi
2019-02-11 20:06:19 +01:00
if [ ${anychange} -eq 0 ]; then
2019-02-11 20:09:52 +01:00
dialog --pause "Hint: Use Spacebar to check/uncheck services." 8 58 5
2019-02-11 20:06:19 +01:00
exit 0
2019-02-11 19:59:09 +01:00
fi
2018-12-01 20:25:33 +01:00
if [ ${needsReboot} -eq 1 ]; then
2018-12-02 19:52:01 +01:00
sleep 2
2018-12-24 14:57:47 +01:00
dialog --pause "OK. System will reboot to activate changes." 8 58 8
2019-01-17 23:12:30 +01:00
clear
2018-12-24 14:57:47 +01:00
echo "rebooting .. (please wait)"
2019-01-28 16:55:51 +01:00
# stop bitcoind
sudo -u bitcoin ${network}-cli stop
sleep 4
2018-12-01 20:25:33 +01:00
sudo shutdown -r now
2019-03-28 03:51:46 +01:00
fi