raspiblitz/home.admin/config.scripts/internet.dyndomain.sh

136 lines
3.7 KiB
Bash
Raw Normal View History

2018-12-20 14:13:42 +01:00
#!/bin/bash
# command info
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
echo "small config script to set a dynamic domain like freeDNS"
echo "internet.dyndomain.sh [on|off] [?domainName] [?updateURL]"
exit 1
fi
# 1. parameter [on|off]
turn="off"
if [ "$1" = "1" ] || [ "$1" = "on" ]; then turn="on"; fi
2019-02-18 17:23:38 +01:00
echo "number of args($#)"
2018-12-20 14:13:42 +01:00
# 2. parameter [?domainName]
2019-02-18 17:23:38 +01:00
if [ $# > 1 ]; then
dynDomain=$2
fi
2018-12-20 14:13:42 +01:00
# 3. parameter [?domainName]
2019-02-18 17:23:38 +01:00
if [ $# > 2 ]; then
dynUpdateUrl=$3
fi
2018-12-20 14:13:42 +01:00
# run interactive if 'turn on' && no further parameters
2018-12-20 23:26:13 +01:00
if [ "${turn}" = "on" ] && [ ${#dynDomain} -eq 0 ]; then
2018-12-20 14:13:42 +01:00
2019-02-18 17:25:43 +01:00
# make sure dialog file is writeable
sudo touch ./.tmp
2019-02-18 17:25:43 +01:00
sudo chmod 777 ./.tmp
2018-12-20 14:13:42 +01:00
dialog --backtitle "DynamicDNS" --inputbox "ENTER the Dynamic Domain Name:
For more details see chapter in GitHub README
2018-12-21 01:26:23 +01:00
'Public Domain with DynamicDNS'
2018-12-20 14:13:42 +01:00
https://github.com/rootzoll/raspiblitz
example: freedns.afraid.org
" 13 52 2>./.tmp
dynDomain=$( cat ./.tmp )
if [ ${#dynDomain} -eq 0 ]; then
echo "FAIL input cannot be empty"
exit 1
fi
dialog --backtitle "DynamicDNS" --inputbox "OPTIONAL Public IP Update URL:
The RaspiBlitz will call this URL regularly.
4 service freedns.afraid.org use 'DirectURL'
" 10 52 2>./.tmp
dynUpdateUrl=$( cat ./.tmp )
shred -u ./.tmp
2018-12-20 14:13:42 +01:00
fi
# config file
configFile="/mnt/hdd/raspiblitz.conf"
# lnd conf file
lndConfig="/mnt/hdd/lnd/lnd.conf"
# check if config file exists
configExists=$(ls ${configFile} | grep -c '.conf')
if [ ${configExists} -eq 0 ]; then
echo "FAIL - missing ${configFile}"
exit 1
fi
# make sure entry line for 'dynDomain' exists
entryExists=$(cat ${configFile} | grep -c 'dynDomain=')
2018-12-20 23:26:13 +01:00
if [ ${entryExists} -eq 0 ]; then
2018-12-20 14:13:42 +01:00
echo "dynDomain=" >> ${configFile}
fi
2018-12-20 23:59:18 +01:00
# make sure entry line for 'dynUpdateUrl' exists
entryExists=$(cat ${configFile} | grep -c 'dynUpdateUrl')
2018-12-20 23:26:13 +01:00
if [ ${entryExists} -eq 0 ]; then
2018-12-20 23:59:18 +01:00
echo "dynUpdateUrl=" >> ${configFile}
2018-12-20 14:13:42 +01:00
fi
# stop services
echo "making sure services are not running"
sudo systemctl stop lnd 2>/dev/null
# switch on
if [ "$1" = "1" ] || [ "$1" = "on" ]; then
2020-07-14 23:30:36 +02:00
echo "# switching the DynamicDNS ON"
echo "# dynDomain(${dynDomain})"
echo "# dynUpdateUrl(${dynUpdateUrl})"
2018-12-20 14:13:42 +01:00
# setting value in raspi blitz config
sudo sed -i "s/^dynDomain=.*/dynDomain='${dynDomain}'/g" /mnt/hdd/raspiblitz.conf
2019-02-18 17:35:34 +01:00
2019-04-09 23:32:14 +01:00
# setting dynUpdateUrl is a bit complicated because value can contain chars that break sed replacement
2019-02-18 17:35:34 +01:00
# so first remove dynUpdateUrl from config and then add fresh as new line at the end
2019-02-18 17:43:24 +01:00
grep -v "dynUpdateUrl" /mnt/hdd/raspiblitz.conf > ./raspiblitz.conf.new
echo "dynUpdateUrl='${dynUpdateUrl}'" >> ./raspiblitz.conf.new
2019-02-18 17:41:48 +01:00
sudo rm /mnt/hdd/raspiblitz.conf
2019-02-18 17:43:24 +01:00
sudo mv ./raspiblitz.conf.new /mnt/hdd/raspiblitz.conf
2019-02-18 17:41:48 +01:00
sudo chmod 777 /mnt/hdd/raspiblitz.conf
2019-02-18 17:35:34 +01:00
#sudo sed -i "s/^dynUpdateUrl=.*/dynUpdateUrl='${dynUpdateUrl}'/g" /mnt/hdd/raspiblitz.conf
2018-12-20 14:13:42 +01:00
2020-07-14 23:30:36 +02:00
echo "# changing lnd.conf"
2018-12-20 23:52:50 +01:00
2018-12-20 14:13:42 +01:00
# lnd.conf: uncomment tlsextradomain (just if it is still uncommented)
2018-12-20 23:48:25 +01:00
sudo sed -i "s/^#tlsextradomain=.*/tlsextradomain=/g" /mnt/hdd/lnd/lnd.conf
2018-12-20 14:13:42 +01:00
# lnd.conf: domain value
2018-12-20 23:48:25 +01:00
sudo sed -i "s/^tlsextradomain=.*/tlsextradomain=${dynDomain}/g" /mnt/hdd/lnd/lnd.conf
2018-12-20 14:13:42 +01:00
2020-07-14 23:30:36 +02:00
echo "# DynamicDNS is now ON"
2018-12-20 14:13:42 +01:00
fi
# switch off
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
2020-07-14 23:30:36 +02:00
echo "# switching DynamicDNS OFF"
2018-12-20 14:13:42 +01:00
# setting value in raspi blitz config
sudo sed -i "s/^dynDomain=.*/dynDomain=/g" /mnt/hdd/raspiblitz.conf
sudo sed -i "s/^dynUpdateUrl=.*/dynUpdateUrl=/g" /mnt/hdd/raspiblitz.conf
2020-07-14 23:30:36 +02:00
echo "# changing lnd.conf"
2018-12-20 23:52:50 +01:00
2018-12-20 14:13:42 +01:00
# lnd.conf: comment tlsextradomain out
2018-12-20 23:52:50 +01:00
sudo sed -i "s/^tlsextradomain=.*/#tlsextradomain=/g" /mnt/hdd/lnd/lnd.conf
2018-12-20 14:13:42 +01:00
2020-07-14 23:30:36 +02:00
echo "# DynamicDNS is now OFF"
2018-12-20 14:13:42 +01:00
fi
2018-12-23 15:20:42 +01:00
# refresh TLS cert
2020-05-28 14:54:09 +02:00
sudo /home/admin/config.scripts/lnd.tlscert.sh refresh
2018-12-20 14:13:42 +01:00
2020-07-14 23:30:36 +02:00
echo "# may needs reboot to run normal again"
exit 0