mirror of
https://github.com/rootzoll/raspiblitz.git
synced 2024-11-20 18:22:01 +01:00
315 lines
12 KiB
Bash
Executable File
315 lines
12 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# get raspiblitz config
|
|
source /home/admin/raspiblitz.info
|
|
source /mnt/hdd/raspiblitz.conf
|
|
|
|
justLocal=1
|
|
aks4IP2TOR=0
|
|
|
|
# if TOR is activated then outside reach is possible (no notice)
|
|
if [ "${runBehindTor}" = "on" ]; then
|
|
echo "# runBehindTor ON"
|
|
justLocal=0
|
|
aks4IP2TOR=1
|
|
fi
|
|
|
|
# if dynDomain is set connect from outside is possible (no notice)
|
|
if [ ${#dynDomain} -gt 0 ]; then
|
|
echo "# dynDomain ON"
|
|
justLocal=0
|
|
aks4IP2TOR=0
|
|
fi
|
|
|
|
# if sshtunnel to 10009/8080 then outside reach is possible (no notice)
|
|
isForwarded=$(echo ${sshtunnel} | grep -c "10009<")
|
|
if [ ${isForwarded} -gt 0 ]; then
|
|
echo "# forward 10009 ON"
|
|
justLocal=0
|
|
aks4IP2TOR=0
|
|
fi
|
|
isForwarded=$(echo ${sshtunnel} | grep -c "8080<")
|
|
if [ ${isForwarded} -gt 0 ]; then
|
|
echo "# forward 8080 ON"
|
|
justLocal=0
|
|
aks4IP2TOR=0
|
|
fi
|
|
|
|
# echo "# justLocal(${justLocal})"
|
|
# echo "# aks4IP2TOR(${aks4IP2TOR})"
|
|
# read key
|
|
|
|
# check if dynamic domain is set
|
|
if [ ${justLocal} -eq 1 ]; then
|
|
whiptail --title " Just Local Network? " --yesno "If you want to connect with your RaspiBlitz
|
|
also from outside your local network you need to
|
|
activate 'Services' -> 'DynamicDNS' FIRST.
|
|
OR use SSH tunnel forwarding for port 10009
|
|
OR have TOR activated.
|
|
|
|
Do you JUST want to connect with your mobile
|
|
when your are on the same LOCAL NETWORK?
|
|
" 15 54
|
|
response=$?
|
|
case $response in
|
|
1) exit ;;
|
|
esac
|
|
fi
|
|
|
|
if [ "${chain}" == "test" ]; then
|
|
whiptail --title " Testnet Notice " --msgbox "You are running your node in testnet.
|
|
Not all mobile Apps may support running in testnet.
|
|
For full support switch to mainnet.
|
|
" 9 55
|
|
fi
|
|
|
|
# fuction to call for wallets that support TOR
|
|
connect="ip"
|
|
choose_IP_or_TOR()
|
|
{
|
|
whiptail --title " How to Connect? " \
|
|
--yes-button "TOR" \
|
|
--no-button "IP/Domain" \
|
|
--yesno "The mobile wallet you selected supports TOR.\nDo you want to connect over TOR to your RaspiBlitz or fallback to Domain/IP?" 9 60
|
|
if [ $? -eq 0 ]; then
|
|
echo "# yes-button -> TOR"
|
|
connect="tor"
|
|
else
|
|
echo "# no-button -> IP"
|
|
connect="ip"
|
|
fi
|
|
}
|
|
|
|
# fuction to if already activated or user wants to activate IP2TOR
|
|
# needs parameter: #1 "LND-REST-API" or "LND-GRPC-API"
|
|
ip2tor=""
|
|
checkIP2TOR()
|
|
{
|
|
|
|
# check if IP2TOR service is already available
|
|
error=""
|
|
ip2tor=""
|
|
source <(/home/admin/config.scripts/blitz.subscriptions.ip2tor.py subscription-by-service $1)
|
|
if [ ${#error} -eq 0 ]; then
|
|
ip2tor="$1"
|
|
fi
|
|
|
|
#echo "# ip2tor(${ip2tor})"
|
|
#echo "# aks4IP2TOR(${aks4IP2TOR})"
|
|
#read key
|
|
|
|
# if IP2TOR is not already available:
|
|
# and the checks from avove showed there is SSH forwarding / dynDNS
|
|
# then ask user if IP2TOR subscription is wanted
|
|
if [ ${#ip2tor} -eq 0 ] && [ ${aks4IP2TOR} -eq 1 ]; then
|
|
whiptail --title " Want to use a IP2TOR Bridge? " --yes-button "Go To Shop" --no-button "No Thanks" --yesno "It can be hard to connect to your RaspiBlitz when away from home.\n\nDo you like to subscribe to a IP2TOR bridge service (that will give you a public IP while hidden behind TOR) and make it more easy to connect your mobile wallet?" 12 60
|
|
if [ $? -eq 0 ]; then
|
|
echo "# yes-button -> Send To Shop"
|
|
port="10009"
|
|
toraddress=$(sudo cat /mnt/hdd/tor/lndrpc10009/hostname)
|
|
if [ "$1" == "LND-REST-API" ]; then
|
|
port="8080"
|
|
toraddress=$(sudo cat /mnt/hdd/tor/lndrest8080/hostname)
|
|
fi
|
|
|
|
userHasActiveChannels=$(sudo -u bitcoin lncli listchannels | grep -c '"active": true')
|
|
if [ ${userHasActiveChannels} -gt 0 ]; then
|
|
sudo -u admin /home/admin/config.scripts/blitz.subscriptions.ip2tor.py create-ssh-dialog "$1" "$toraddress" "$port"
|
|
else
|
|
whiptail --title " Lightning not Ready " --msgbox "\nYou need at least one active Lightning channel.\n\nPlease make sure that your node is funded and\nyou have a confirmed and active channel running.\nThen try again to connect the mobile wallet." 13 52
|
|
exit 0
|
|
fi
|
|
clear
|
|
fi
|
|
fi
|
|
|
|
# check again if IP2TOR service is now already available
|
|
error=""
|
|
source <(/home/admin/config.scripts/blitz.subscriptions.ip2tor.py subscription-by-service "$1")
|
|
if [ ${#error} -eq 0 ]; then
|
|
ip2tor="$1"
|
|
fi
|
|
}
|
|
|
|
# Also Zap-Android deactivated for now - see: https://github.com/rootzoll/raspiblitz/issues/2198#issuecomment-822808428
|
|
#OPTIONS=(ZAP_ANDROID "Zap Wallet (Android)" \
|
|
# ZAP_IOS "Zap Wallet (iOS)" \
|
|
OPTIONS=(ZEUS_IOS "Zeus Wallet (iOS)" \
|
|
ZEUS_ANDROID "Zeus Wallet (Android)" \
|
|
SPHINX "Sphinx Chat (Android or iOS)"
|
|
)
|
|
|
|
# add SEND MANY APP
|
|
OPTIONS+=(SENDMANY_ANDROID "SendMany (Android)")
|
|
|
|
# Additinal Options with TOR
|
|
if [ "${runBehindTor}" = "on" ]; then
|
|
OPTIONS+=(FULLY_NODED "Fully Noded (iOS+Tor)")
|
|
fi
|
|
|
|
CHOICE=$(whiptail --clear --title "Choose Mobile Wallet" --menu "" 14 50 8 "${OPTIONS[@]}" 2>&1 >/dev/tty)
|
|
|
|
/home/admin/config.scripts/blitz.display.sh hide
|
|
|
|
clear
|
|
echo "creating install info ..."
|
|
case $CHOICE in
|
|
CLOSE)
|
|
exit 0;
|
|
;;
|
|
SPHINX)
|
|
if [ "${sphinxrelay}" != "on" ]; then
|
|
whiptail --title " Install Sphinx Relay Server? " \
|
|
--yes-button "Install" \
|
|
--no-button "Cancel" \
|
|
--yesno "To use the Sphinx Chat App you need to install the Sphinx Relay Server on your RaspiBlitz. If you want to deinstall the relay later on, just switch it off under MENU > SERVICES.\n\nDo you want to install the Sphinx Relay Server now?" 14 60
|
|
if [ "$?" = "0" ]; then
|
|
/home/admin/config.scripts/bonus.sphinxrelay.sh on
|
|
else
|
|
echo "No install ... returning to main menu."
|
|
sleep 2
|
|
exit 0
|
|
fi
|
|
fi
|
|
# make pairing thru sphinx relay script
|
|
/home/admin/config.scripts/bonus.sphinxrelay.sh menu
|
|
exit 0;
|
|
;;
|
|
ZAP_IOS)
|
|
appstoreLink="https://apps.apple.com/us/app/zap-bitcoin-lightning-wallet/id1406311960"
|
|
#/home/admin/config.scripts/blitz.display.sh qr ${appstoreLink}
|
|
#whiptail --title "Install Testflight and Zap on your iOS device" \
|
|
# --yes-button "continue" \
|
|
# --no-button "link as QR code" \
|
|
# --yesno "Search for 'Zap Bitcoin' in Apple Appstore for basic version\nOr join public beta test for latest features:\n${appstoreLink}\n\nJoin testing and follow ALL instructions.\n\nWhen installed and started -> continue" 11 65
|
|
# if [ $? -eq 1 ]; then
|
|
# /home/admin/config.scripts/blitz.display.sh qr-console ${appstoreLink}
|
|
#fi
|
|
|
|
/home/admin/config.scripts/blitz.display.sh image /home/admin/raspiblitz/pictures/app_zap.png
|
|
whiptail --title "Install Fully Noded on your iOS device" \
|
|
--yes-button "Continue" \
|
|
--no-button "StoreLink" \
|
|
--yesno "Open the Apple App Store on your mobile phone.\n\nSearch for --> 'Zap Bitcoin'\n\nCheck that logo is like on LCD & author: Zap Technologies LLC\nWhen app is installed and started --> Continue." 12 65
|
|
if [ $? -eq 1 ]; then
|
|
/home/admin/config.scripts/blitz.display.sh qr ${appstoreLink}
|
|
whiptail --title " App Store Link " --msgbox "\
|
|
To install app open the following link:\n
|
|
${appstoreLink}\n
|
|
Or scan the qr code on the LCD with your mobile phone.
|
|
" 11 70
|
|
fi
|
|
/home/admin/config.scripts/blitz.display.sh hide
|
|
checkIP2TOR LND-GRPC-API
|
|
see https://github.com/rootzoll/raspiblitz/issues/1001#issuecomment-634580257
|
|
if [ ${#ip2tor} -eq 0 ]; then
|
|
choose_IP_or_TOR
|
|
fi
|
|
/home/admin/config.scripts/bonus.lndconnect.sh zap-ios ${connect}
|
|
exit 0;
|
|
;;
|
|
ZAP_ANDROID)
|
|
appstoreLink="https://play.google.com/store/apps/details?id=zapsolutions.zap"
|
|
/home/admin/config.scripts/blitz.display.sh image /home/admin/raspiblitz/pictures/app_zap.png
|
|
whiptail --title "Install Zap on your Android Phone" \
|
|
--yes-button "Continue" \
|
|
--no-button "StoreLink" \
|
|
--yesno "Open the Android Play Store on your mobile phone.\n\nSearch for --> 'zap bitcoin app'\n\nCheck that logo is like on LCD and author is: Zap\nWhen app is installed and started --> Continue." 12 65
|
|
if [ $? -eq 1 ]; then
|
|
/home/admin/config.scripts/blitz.display.sh qr ${appstoreLink}
|
|
whiptail --title " App Store Link " --msgbox "\
|
|
To install app open the following link:\n
|
|
${appstoreLink}\n
|
|
Or scan the qr code on the LCD with your mobile phone.
|
|
" 11 70
|
|
fi
|
|
/home/admin/config.scripts/blitz.display.sh hide
|
|
checkIP2TOR LND-GRPC-API
|
|
if [ ${#ip2tor} -eq 0 ]; then
|
|
choose_IP_or_TOR
|
|
fi
|
|
/home/admin/config.scripts/bonus.lndconnect.sh zap-android ${connect}
|
|
exit 0;
|
|
;;
|
|
SENDMANY_ANDROID)
|
|
|
|
# check if keysend is activated first
|
|
source <(/home/admin/config.scripts/lnd.keysend.sh status)
|
|
if [ "${keysendOn}" == "0" ]; then
|
|
whiptail --title " KEYSEND NEEDED " --msgbox "
|
|
To use the chat feature of the SendMany app, you need to activate the Keysend feature first.
|
|
|
|
Please go to MAINMENU > SERVICES and activate KEYSEND first.
|
|
" 12 65
|
|
exit 0
|
|
fi
|
|
|
|
appstoreLink="https://github.com/fusion44/sendmany/releases"
|
|
whiptail --title "Install SendMany APK from GithubReleases" \
|
|
--yes-button "Continue" \
|
|
--no-button "Link as QR code" \
|
|
--yesno "Download & install the SendMany APK (armeabi-v7) from GitHub:\n\n${appstoreLink}\n\nEasiest way to scan QR code on LCD and download/install.\n\nWhen installed and started -> continue." 13 65
|
|
if [ $? -eq 1 ]; then
|
|
/home/admin/config.scripts/blitz.display.sh qr ${appstoreLink}
|
|
/home/admin/config.scripts/blitz.display.sh qr-console ${appstoreLink}
|
|
fi
|
|
/home/admin/config.scripts/blitz.display.sh hide
|
|
checkIP2TOR LND-GRPC-API
|
|
/home/admin/config.scripts/bonus.lndconnect.sh sendmany-android ${connect}
|
|
exit 0;
|
|
;;
|
|
ZEUS_IOS)
|
|
appstoreLink="https://apps.apple.com/us/app/zeus-ln/id1456038895"
|
|
/home/admin/config.scripts/blitz.display.sh image /home/admin/raspiblitz/pictures/app_zeus.png
|
|
whiptail --title "Install Zeus on your iOS device" \
|
|
--yes-button "Continue" \
|
|
--no-button "Link as QRcode" \
|
|
--yesno "Open the Apple App Store on your mobile phone.\n\nSearch for --> 'zeus ln'\n\nCheck that logo is like on LCD and author is: Zeus LN LLC\nWhen the app is installed and started --> Continue." 12 65
|
|
if [ $? -eq 1 ]; then
|
|
/home/admin/config.scripts/blitz.display.sh qr ${appstoreLink}
|
|
/home/admin/config.scripts/blitz.display.sh qr-console ${appstoreLink}
|
|
fi
|
|
/home/admin/config.scripts/blitz.display.sh hide
|
|
/home/admin/config.scripts/bonus.lndconnect.sh zeus-ios tor
|
|
exit 0;
|
|
;;
|
|
ZEUS_ANDROID)
|
|
appstoreLink="https://play.google.com/store/apps/details?id=app.zeusln.zeus"
|
|
/home/admin/config.scripts/blitz.display.sh image /home/admin/raspiblitz/pictures/app_zeus.png
|
|
whiptail --title "Install Zeus on your Android Phone" \
|
|
--yes-button "Continue" \
|
|
--no-button "StoreLink" \
|
|
--yesno "Open the Android Play Store on your mobile phone.\n\nSearch for --> 'zeus bitcoin app'\n\nCheck that logo is like on LCD and author is: Evan Kaloudis\nWhen app is installed and started --> Continue." 12 65
|
|
if [ $? -eq 1 ]; then
|
|
/home/admin/config.scripts/blitz.display.sh qr ${appstoreLink}
|
|
whiptail --title " App Store Link " --msgbox "\
|
|
To install app open the following link:\n
|
|
${appstoreLink}\n
|
|
Or scan the qr code on the LCD with your mobile phone.
|
|
" 11 70
|
|
fi
|
|
/home/admin/config.scripts/blitz.display.sh hide
|
|
/home/admin/config.scripts/bonus.lndconnect.sh zeus-android tor
|
|
exit 0;
|
|
;;
|
|
FULLY_NODED)
|
|
appstoreLink="https://apps.apple.com/us/app/fully-noded/id1436425586"
|
|
/home/admin/config.scripts/blitz.display.sh image /home/admin/raspiblitz/pictures/app_fullynoded.png
|
|
whiptail --title "Install Fully Noded on your iOS device" \
|
|
--yes-button "Continue" \
|
|
--no-button "StoreLink" \
|
|
--yesno "Open the Apple App Store on your mobile phone.\n\nSearch for --> 'fully noded'\n\nCheck that logo is like on LCD and author is: Denton LLC\nWhen app is installed and started --> Continue." 12 65
|
|
if [ $? -eq 1 ]; then
|
|
/home/admin/config.scripts/blitz.display.sh qr ${appstoreLink}
|
|
whiptail --title " App Store Link " --msgbox "\
|
|
To install app open the following link:\n
|
|
${appstoreLink}\n
|
|
Or scan the qr code on the LCD with your mobile phone.
|
|
" 11 70
|
|
fi
|
|
/home/admin/config.scripts/blitz.display.sh hide
|
|
/home/admin/config.scripts/bonus.fullynoded.sh
|
|
exit 0;
|
|
;;
|
|
esac
|