More WIP on new installer

This commit is contained in:
wiz 2020-09-10 14:04:27 +09:00
parent 976a58d15c
commit ea0572384b
No known key found for this signature in database
GPG Key ID: A394E332255A6173

397
install
View File

@ -25,28 +25,28 @@ esac
######################################## ########################################
# tor onion and clearnet hostname # tor onion and clearnet hostname
TOR_INSTALL=true TOR_INSTALL=ON
CERTBOT_INSTALL=true CERTBOT_INSTALL=ON
# install 3 network daemons # install 3 network daemons
BITCOIN_INSTALL=true BITCOIN_INSTALL=ON
BISQ_INSTALL=true BISQ_INSTALL=ON
ELEMENTS_INSTALL=true ELEMENTS_INSTALL=ON
# configure 4 network instances # configure 4 network instances
BITCOIN_MAINNET_ENABLE=true BITCOIN_MAINNET_ENABLE=ON
BITCOIN_TESTNET_ENABLE=true BITCOIN_TESTNET_ENABLE=ON
BISQ_MAINNET_ENABLE=true BISQ_MAINNET_ENABLE=ON
ELEMENTS_LIQUID_ENABLE=true ELEMENTS_LIQUID_ENABLE=ON
# enable lightmode and disable compaction to fit on 1TB SSD drive # enable lightmode and disable compaction to fit on 1TB SSD drive
BITCOIN_ELECTRS_LIGHT_MODE=true BITCOIN_ELECTRS_LIGHT_MODE=ON
BITCOIN_ELECTRS_COMPACTION=false BITCOIN_ELECTRS_COMPACTION=OFF
ELEMENTS_ELECTRS_LIGHT_MODE=true ELEMENTS_ELECTRS_LIGHT_MODE=ON
ELEMENTS_ELECTRS_COMPACTION=false ELEMENTS_ELECTRS_COMPACTION=OFF
# automaitcally configure firewall # automaitcally configure firewall
FIREWALL_CONFIGURE=true FIREWALL_CONFIGURE=ON
############ ############
# probe OS # # probe OS #
@ -383,7 +383,7 @@ zfsCreateFilesystems()
zfs create -o "mountpoint=${BITCOIN_ELECTRS_HOME}" "${ZPOOL}/bitcoin/electrs" zfs create -o "mountpoint=${BITCOIN_ELECTRS_HOME}" "${ZPOOL}/bitcoin/electrs"
# electrs mainnet data # electrs mainnet data
if [ "${BITCOIN_MAINNET_ENABLE}" = true ];then if [ "${BITCOIN_MAINNET_ENABLE}" = ON ];then
zfs create -o "mountpoint=${ELECTRS_MAINNET_DATA}" "${ELECTRS_MAINNET_ZPOOL}/electrs/mainnet" zfs create -o "mountpoint=${ELECTRS_MAINNET_DATA}" "${ELECTRS_MAINNET_ZPOOL}/electrs/mainnet"
for folder in cache history txstore for folder in cache history txstore
do do
@ -392,7 +392,7 @@ zfsCreateFilesystems()
fi fi
# electrs testnet data # electrs testnet data
if [ "${BITCOIN_TESTNET_ENABLE}" = true ];then if [ "${BITCOIN_TESTNET_ENABLE}" = ON ];then
zfs create -o "mountpoint=${ELECTRS_TESTNET_DATA}" "${ELECTRS_TESTNET_ZPOOL}/electrs/testnet" zfs create -o "mountpoint=${ELECTRS_TESTNET_DATA}" "${ELECTRS_TESTNET_ZPOOL}/electrs/testnet"
for folder in cache history txstore for folder in cache history txstore
do do
@ -401,7 +401,7 @@ zfsCreateFilesystems()
fi fi
# electrs liquid data # electrs liquid data
if [ "${ELEMENTS_LIQUID_ENABLE}" = true ];then if [ "${ELEMENTS_LIQUID_ENABLE}" = ON ];then
zfs create -o "mountpoint=${ELECTRS_LIQUID_DATA}" "${ELECTRS_LIQUID_ZPOOL}/electrs/liquid" zfs create -o "mountpoint=${ELECTRS_LIQUID_DATA}" "${ELECTRS_LIQUID_ZPOOL}/electrs/liquid"
for folder in cache history txstore for folder in cache history txstore
do do
@ -409,7 +409,7 @@ zfsCreateFilesystems()
done done
fi fi
if [ "${BISQ_INSTALL}" = true ];then if [ "${BISQ_INSTALL}" = ON ];then
zfs create -o "mountpoint=${BISQ_HOME}" "${ZPOOL}/bisq" zfs create -o "mountpoint=${BISQ_HOME}" "${ZPOOL}/bisq"
fi fi
@ -428,7 +428,9 @@ zfsCreateFilesystems()
# does bitcoin exist? # does bitcoin exist?
# dialog ##########
# dialog #
##########
: ${DIALOG=dialog} : ${DIALOG=dialog}
@ -439,7 +441,7 @@ zfsCreateFilesystems()
: ${DIALOG_ITEM_HELP=4} : ${DIALOG_ITEM_HELP=4}
: ${DIALOG_ESC=255} : ${DIALOG_ESC=255}
: ${SIG_NONE=0} : ${SIG_OFFNE=0}
: ${SIG_HUP=1} : ${SIG_HUP=1}
: ${SIG_INT=2} : ${SIG_INT=2}
: ${SIG_QUIT=3} : ${SIG_QUIT=3}
@ -448,126 +450,222 @@ zfsCreateFilesystems()
input=`tempfile 2>/dev/null` || input=/tmp/input$$ input=`tempfile 2>/dev/null` || input=/tmp/input$$
output=`tempfile 2>/dev/null` || output=/tmp/test$$ output=`tempfile 2>/dev/null` || output=/tmp/test$$
trap "rm -f $input $output" $SIG_NONE $SIG_HUP $SIG_INT $SIG_TRAP $SIG_TERM trap "rm -f $input $output" $SIG_OFFNE $SIG_HUP $SIG_INT $SIG_TRAP $SIG_TERM
case "x$DIALOGOPTS" in
*--no-items*|*--noitem*)
CUT="cut -d: -f1,3"
;;
*)
CUT="cat"
;;
esac
$CUT >$input <<-EOF
Apple:It's an apple.:off
Dog:No, that's not my dog.:ON
Orange:Yeah, that's juicy.:off
Chicken:Normally not a pet.:off
Cat:No, never put a dog and a cat together!:oN
Fish:Cats like fish.:On
Lemon:You know how it tastes.:on
EOF
cat $input | sed -e 's/^/"/' -e 's/:/" "/g' -e 's/$/"/' >$output
cat $output >$input
$DIALOG --backtitle "No Such Organization" \
--title "CHECKLIST BOX" "$@" \
--checklist "Hi, this is a checklist box. You can use this to \n\
present a list of choices which can be turned on or \n\
off. If there are more items than can fit on the \n\
screen, the list will be scrolled. You can use the \n\
UP/DOWN arrow keys, the first letter of the choice as a \n\
hot key, or the number keys 1-9 to choose an option. \n\
Press SPACE to toggle an option on/off. \n\n\
Which of the following are fruits?" 20 61 5 \
--file $input 2> $output
retval=$?
tempfile=$output
case $retval in
$DIALOG_OK)
echo "Result: `cat $tempfile`";;
$DIALOG_CANCEL)
echo "Cancel pressed.";;
$DIALOG_HELP)
echo "Help pressed: `cat $tempfile`";;
$DIALOG_EXTRA)
echo "Extra button pressed.";;
$DIALOG_ITEM_HELP)
echo "Item-help button pressed: `cat $tempfile`";;
$DIALOG_ESC)
if test -s $tempfile ; then
cat $tempfile
else
echo "ESC pressed."
fi
;;
esac
DIALOG_ERROR=254 DIALOG_ERROR=254
export DIALOG_ERROR export DIALOG_ERROR
backtitle="Mempool Fullnode Installer" backtitle="Mempool Fullnode Installer"
title="Mempool Fullnode Installer"
returncode=0 returncode=0
while test $returncode != 1 && test $returncode != 250 #################
do # dialog part 1 #
exec 3>&1 #################
value=`$DIALOG --ok-label "Submit" \
$CUT >$input <<-EOF
Tor:Enable Tor v3 HS Onion:ON
Certbot:Enable HTTPS using Certbot:ON
Mainnet:Enable Bitcoin Mainnet:ON
Testnet:Enable Bitcoin Testnet:ON
Liquid:Enable Elements Liquid:ON
Bisq:Enable Bisq:ON
Lightmode:Enable Electrs Lightmode to save disk space:ON
Smalldisk:Disable Electrs Compaction to save disk space:ON
Firewall:Enable Firewall:ON
EOF
cat $input | sed -e 's/^/"/' -e 's/:/" "/g' -e 's/$/"/' >$output
cat $output >$input
$DIALOG --backtitle "${backtitle}" \
--title "${title}" "$@" \
--checklist "Toggle the features below to configure your fullnode:\n" \
20 80 10 \
--file $input 2> $output
retval=$?
tempfile=$output
if [ $retval != $DIALOG_OK ];then
echo "Installation aborted."
exit 1
fi
if grep Tor $tempfile >/dev/null 2>&1;then
TOR_INSTALL=ON
else
TOR_INSTALL=OFF
fi
if grep Certbot $tempfile >/dev/null 2>&1;then
CERTBOT_INSTALL=ON
else
CERTBOT_INSTALL=OFF
fi
if grep Mainnet $tempfile >/dev/null 2>&1;then
BITCOIN_MAINNET_ENABLE=ON
else
BITCOIN_MAINNET_ENABLE=OFF
fi
if grep Testnet $tempfile >/dev/null 2>&1;then
BITCOIN_TESTNET_ENABLE=ON
else
BITCOIN_TESTNET_ENABLE=OFF
fi
if grep Liquid $tempfile >/dev/null 2>&1;then
ELEMENTS_INSTALL=ON
ELEMENTS_LIQUID_ENABLE=ON
else
ELEMENTS_INSTALL=OFF
ELEMENTS_LIQUID_ENABLE=OFF
fi
if grep Bisq $tempfile >/dev/null 2>&1;then
BISQ_INSTALL=ON
BISQ_MAINNET_ENABLE=ON
else
BISQ_INSTALL=OFF
BISQ_MAINNET_ENABLE=OFF
fi
if grep Lightmode $tempfile >/dev/null 2>&1;then
BITCOIN_ELECTRS_LIGHT_MODE=ON
else
BITCOIN_ELECTRS_LIGHT_MODE=OFF
fi
if grep Smalldisk $tempfile >/dev/null 2>&1;then
BITCOIN_ELECTRS_LIGHT_MODE=ON
else
BITCOIN_ELECTRS_LIGHT_MODE=OFF
fi
#################
# dialog part 2 #
#################
$DIALOG --cr-wrap \
--title "INPUT BOX" --clear \
--inputbox "$@" \
"Enter the FQDN hostname for obtaining an SSL certificate using Certbot:" 0 0 "${HOSTNAME}" 2> $tempfile
HOSTNAME=$(cat $tempfile)
#################
# dialog part 3 #
#################
# --form text height width formheight
# [ label y x item y x flen ilen ]
#"BISQ_BLOCKNOTIFY_HOST" 0 1 "${BISQ_BLOCKNOTIFY_HOST}" 0 30 0 0 \
$DIALOG --ok-label "Submit" \
--backtitle "$backtitle" "$@" \ --backtitle "$backtitle" "$@" \
--form "Your fullnode will be installed as follows:" \ --form "Your fullnode will be installed as follows:" 30 70 0 \
20 60 0 \ "BISQ_BLOCKNOTIFY_PORT" 1 1 "${BISQ_BLOCKNOTIFY_PORT}" 1 35 35 0 \
"Hostname:" 1 1 "$HOSTNAME" 1 10 40 0 \ "BISQ_GROUP" 2 1 "${BISQ_GROUP}" 2 35 35 0 \
"UID:" 2 1 "$uid" 2 10 8 0 \ "BISQ_HOME" 3 1 "${BISQ_HOME}" 3 35 35 0 \
"GID:" 3 1 "$gid" 3 10 8 0 \ "BISQ_INSTALL" 4 1 "${BISQ_INSTALL}" 4 35 35 0 \
"HOME:" 4 1 "$home" 4 10 40 0 \ "BISQ_LATEST_RELEASE" 5 1 "${BISQ_LATEST_RELEASE}" 5 35 35 0 \
2>&1 1>&3` "BISQ_MAINNET_ENABLE" 6 1 "${BISQ_MAINNET_ENABLE}" 6 35 35 0 \
returncode=$? "BISQ_REPO_BRANCH" 7 1 "${BISQ_REPO_BRANCH}" 7 35 35 0 \
exec 3>&- "BISQ_REPO_NAME" 8 1 "${BISQ_REPO_NAME}" 8 35 35 0 \
"BISQ_REPO_URL" 9 1 "${BISQ_REPO_URL}" 9 35 35 0 \
show=`echo "$value" |sed -e 's/^/ /'` "BISQ_USER" 10 1 "${BISQ_USER}" 10 35 35 0 \
"BITCOIN_ELECTRS_COMPACTION" 11 1 "${BITCOIN_ELECTRS_COMPACTION}" 11 35 35 0 \
case $returncode in "BITCOIN_ELECTRS_HOME" 12 1 "${BITCOIN_ELECTRS_HOME}" 12 35 35 0 \
$DIALOG_CANCEL) "BITCOIN_ELECTRS_LATEST_RELEASE" 13 1 "${BITCOIN_ELECTRS_LATEST_RELEASE}" 13 35 35 0 \
"$DIALOG" \ "BITCOIN_ELECTRS_LIGHT_MODE" 14 1 "${BITCOIN_ELECTRS_LIGHT_MODE}" 14 35 35 0 \
--clear \ "BITCOIN_ELECTRS_REPO_BRANCH" 15 1 "${BITCOIN_ELECTRS_REPO_BRANCH}" 15 35 35 0 \
--backtitle "$backtitle" \ "BITCOIN_ELECTRS_REPO_NAME" 16 1 "${BITCOIN_ELECTRS_REPO_NAME}" 16 35 35 0 \
--yesno "Really quit?" 10 30 "BITCOIN_ELECTRS_REPO_URL" 17 1 "${BITCOIN_ELECTRS_REPO_URL}" 17 35 35 0 \
case $? in "BITCOIN_GROUP" 18 1 "${BITCOIN_GROUP}" 18 35 35 0 \
$DIALOG_OK) "BITCOIN_HOME" 19 1 "${BITCOIN_HOME}" 19 35 35 0 \
break "BITCOIN_INSTALL" 20 1 "${BITCOIN_INSTALL}" 20 35 35 0 \
;; "BITCOIN_LATEST_RELEASE" 21 1 "${BITCOIN_LATEST_RELEASE}" 21 35 35 0 \
$DIALOG_CANCEL) "BITCOIN_MAINNET_ENABLE" 22 1 "${BITCOIN_MAINNET_ENABLE}" 22 35 35 0 \
returncode=99 "BITCOIN_MAINNET_P2P_HOST" 23 1 "${BITCOIN_MAINNET_P2P_HOST}" 23 35 35 0 \
;; "BITCOIN_MAINNET_P2P_PORT" 24 1 "${BITCOIN_MAINNET_P2P_PORT}" 24 35 35 0 \
esac "BITCOIN_MAINNET_RPC_HOST" 25 1 "${BITCOIN_MAINNET_RPC_HOST}" 25 35 35 0 \
;; "BITCOIN_MAINNET_RPC_PASS" 26 1 "${BITCOIN_MAINNET_RPC_PASS}" 26 35 35 0 \
$DIALOG_OK) "BITCOIN_MAINNET_RPC_PORT" 27 1 "${BITCOIN_MAINNET_RPC_PORT}" 27 35 35 0 \
"$DIALOG" \ "BITCOIN_MAINNET_RPC_USER" 28 1 "${BITCOIN_MAINNET_RPC_USER}" 28 35 35 0 \
--clear \ "BITCOIN_REPO_BRANCH" 29 1 "${BITCOIN_REPO_BRANCH}" 29 35 35 0 \
--backtitle "$backtitle" --no-collapse --cr-wrap \ "BITCOIN_REPO_NAME" 30 1 "${BITCOIN_REPO_NAME}" 30 35 35 0 \
--msgbox "Resulting data:\n\ "BITCOIN_REPO_URL" 31 1 "${BITCOIN_REPO_URL}" 31 35 35 0 \
$show" 10 40 "BITCOIN_TESTNET_DATA" 32 1 "${BITCOIN_TESTNET_DATA}" 32 35 35 0 \
;; "BITCOIN_TESTNET_ENABLE" 33 1 "${BITCOIN_TESTNET_ENABLE}" 33 35 35 0 \
$DIALOG_ERROR) "BITCOIN_TESTNET_P2P_HOST" 34 1 "${BITCOIN_TESTNET_P2P_HOST}" 34 35 35 0 \
echo "ERROR!$value" "BITCOIN_TESTNET_P2P_PORT" 35 1 "${BITCOIN_TESTNET_P2P_PORT}" 35 35 35 0 \
exit "BITCOIN_TESTNET_RPC_HOST" 36 1 "${BITCOIN_TESTNET_RPC_HOST}" 36 35 35 0 \
;; "BITCOIN_TESTNET_RPC_PASS" 37 1 "${BITCOIN_TESTNET_RPC_PASS}" 37 35 35 0 \
$DIALOG_ESC) "BITCOIN_TESTNET_RPC_PORT" 38 1 "${BITCOIN_TESTNET_RPC_PORT}" 38 35 35 0 \
echo "ESC pressed." "BITCOIN_TESTNET_RPC_USER" 39 1 "${BITCOIN_TESTNET_RPC_USER}" 39 35 35 0 \
exit "BITCOIN_USER" 40 1 "${BITCOIN_USER}" 40 35 35 0 \
;; "ELECTRS_DATA_ROOT" 41 1 "${ELECTRS_DATA_ROOT}" 41 35 35 0 \
*) "ELECTRS_LIQUID_DATA" 42 1 "${ELECTRS_LIQUID_DATA}" 42 35 35 0 \
echo "Return code was $returncode" "ELECTRS_LIQUID_HTTP_HOST" 43 1 "${ELECTRS_LIQUID_HTTP_HOST}" 43 35 35 0 \
exit "ELECTRS_LIQUID_HTTP_PORT" 44 1 "${ELECTRS_LIQUID_HTTP_PORT}" 44 35 35 0 \
;; "ELECTRS_LIQUID_ZPOOL" 45 1 "${ELECTRS_LIQUID_ZPOOL}" 45 35 35 0 \
esac "ELECTRS_MAINNET_DATA" 46 1 "${ELECTRS_MAINNET_DATA}" 46 35 35 0 \
done "ELECTRS_MAINNET_HTTP_HOST" 47 1 "${ELECTRS_MAINNET_HTTP_HOST}" 47 35 35 0 \
"ELECTRS_MAINNET_HTTP_PORT" 48 1 "${ELECTRS_MAINNET_HTTP_PORT}" 48 35 35 0 \
"ELECTRS_MAINNET_ZPOOL" 49 1 "${ELECTRS_MAINNET_ZPOOL}" 49 35 35 0 \
"ELECTRS_TESTNET_DATA" 50 1 "${ELECTRS_TESTNET_DATA}" 50 35 35 0 \
"ELECTRS_TESTNET_HTTP_HOST" 51 1 "${ELECTRS_TESTNET_HTTP_HOST}" 51 35 35 0 \
"ELECTRS_TESTNET_HTTP_PORT" 52 1 "${ELECTRS_TESTNET_HTTP_PORT}" 52 35 35 0 \
"ELECTRS_TESTNET_ZPOOL" 53 1 "${ELECTRS_TESTNET_ZPOOL}" 53 35 35 0 \
"ELEMENTS_ELECTRS_COMPACTION" 54 1 "${ELEMENTS_ELECTRS_COMPACTION}" 54 35 35 0 \
"ELEMENTS_ELECTRS_HOME" 55 1 "${ELEMENTS_ELECTRS_HOME}" 55 35 35 0 \
"ELEMENTS_ELECTRS_LATEST_RELEASE" 56 1 "${ELEMENTS_ELECTRS_LATEST_RELEASE}" 56 35 35 0 \
"ELEMENTS_ELECTRS_LIGHT_MODE" 57 1 "${ELEMENTS_ELECTRS_LIGHT_MODE}" 57 35 35 0 \
"ELEMENTS_ELECTRS_REPO_BRANCH" 58 1 "${ELEMENTS_ELECTRS_REPO_BRANCH}" 58 35 35 0 \
"ELEMENTS_ELECTRS_REPO_NAME" 59 1 "${ELEMENTS_ELECTRS_REPO_NAME}" 59 35 35 0 \
"ELEMENTS_ELECTRS_REPO_URL" 60 1 "${ELEMENTS_ELECTRS_REPO_URL}" 60 35 35 0 \
"ELEMENTS_GROUP" 61 1 "${ELEMENTS_GROUP}" 61 35 35 0 \
"ELEMENTS_HOME" 62 1 "${ELEMENTS_HOME}" 62 35 35 0 \
"ELEMENTS_INSTALL" 63 1 "${ELEMENTS_INSTALL}" 63 35 35 0 \
"ELEMENTS_LATEST_RELEASE" 64 1 "${ELEMENTS_LATEST_RELEASE}" 64 35 35 0 \
"ELEMENTS_LIQUID_ENABLE" 65 1 "${ELEMENTS_LIQUID_ENABLE}" 65 35 35 0 \
"ELEMENTS_LIQUID_P2P_HOST" 66 1 "${ELEMENTS_LIQUID_P2P_HOST}" 66 35 35 0 \
"ELEMENTS_LIQUID_P2P_PORT" 67 1 "${ELEMENTS_LIQUID_P2P_PORT}" 67 35 35 0 \
"ELEMENTS_LIQUID_RPC_HOST" 68 1 "${ELEMENTS_LIQUID_RPC_HOST}" 68 35 35 0 \
"ELEMENTS_LIQUID_RPC_PASS" 69 1 "${ELEMENTS_LIQUID_RPC_PASS}" 69 35 35 0 \
"ELEMENTS_LIQUID_RPC_PORT" 70 1 "${ELEMENTS_LIQUID_RPC_PORT}" 70 35 35 0 \
"ELEMENTS_LIQUID_RPC_USER" 71 1 "${ELEMENTS_LIQUID_RPC_USER}" 71 35 35 0 \
"ELEMENTS_REPO_BRANCH" 72 1 "${ELEMENTS_REPO_BRANCH}" 72 35 35 0 \
"ELEMENTS_REPO_NAME" 73 1 "${ELEMENTS_REPO_NAME}" 73 35 35 0 \
"ELEMENTS_REPO_URL" 74 1 "${ELEMENTS_REPO_URL}" 74 35 35 0 \
"ELEMENTS_USER" 75 1 "${ELEMENTS_USER}" 75 35 35 0 \
"MEMPOOL_BISQ_HTTP_HOST" 76 1 "${MEMPOOL_BISQ_HTTP_HOST}" 76 35 35 0 \
"MEMPOOL_BISQ_HTTP_PORT" 77 1 "${MEMPOOL_BISQ_HTTP_PORT}" 77 35 35 0 \
"MEMPOOL_GROUP" 78 1 "${MEMPOOL_GROUP}" 78 35 35 0 \
"MEMPOOL_HOME" 79 1 "${MEMPOOL_HOME}" 79 35 35 0 \
"MEMPOOL_LATEST_RELEASE" 80 1 "${MEMPOOL_LATEST_RELEASE}" 80 35 35 0 \
"MEMPOOL_LIQUID_HTTP_HOST" 81 1 "${MEMPOOL_LIQUID_HTTP_HOST}" 81 35 35 0 \
"MEMPOOL_LIQUID_HTTP_PORT" 82 1 "${MEMPOOL_LIQUID_HTTP_PORT}" 82 35 35 0 \
"MEMPOOL_MAINNET_HTTP_HOST" 83 1 "${MEMPOOL_MAINNET_HTTP_HOST}" 83 35 35 0 \
"MEMPOOL_MAINNET_HTTP_PORT" 84 1 "${MEMPOOL_MAINNET_HTTP_PORT}" 84 35 35 0 \
"MEMPOOL_REPO_BRANCH" 85 1 "${MEMPOOL_REPO_BRANCH}" 85 35 35 0 \
"MEMPOOL_REPO_NAME" 86 1 "${MEMPOOL_REPO_NAME}" 86 35 35 0 \
"MEMPOOL_REPO_URL" 87 1 "${MEMPOOL_REPO_URL}" 87 35 35 0 \
"MEMPOOL_TESTNET_HTTP_HOST" 88 1 "${MEMPOOL_TESTNET_HTTP_HOST}" 88 35 35 0 \
"MEMPOOL_TESTNET_HTTP_PORT" 89 1 "${MEMPOOL_TESTNET_HTTP_PORT}" 89 35 35 0 \
"MEMPOOL_TOR_HS" 90 1 "${MEMPOOL_TOR_HS}" 90 35 35 0 \
"MEMPOOL_USER" 91 1 "${MEMPOOL_USER}" 91 35 35 0 \
"HOSTNAME" 92 1 "${HOSTNAME}" 92 35 35 0 \
"TOR_INSTALL" 93 1 "${TOR_INSTALL}" 93 35 35 0 \
"CERTBOT_INSTALL" 94 1 "${CERTBOT_INSTALL}" 94 35 35 0 \
retval=$?
if [ $retval != $DIALOG_OK ];then
echo "Installation aborted."
exit 1
fi
############################ ############################
# START DOING ACTUAL STUFF # # START DOING ACTUAL STUFF #
@ -576,7 +674,6 @@ done
date date
echo "[*] Mempool installation script for ${OS}" echo "[*] Mempool installation script for ${OS}"
set
exit 0 exit 0
################################### ###################################
@ -609,7 +706,7 @@ osSudo "${MEMPOOL_USER}" git clone --branch "${MEMPOOL_REPO_BRANCH}" "${MEMPOOL_
# Tor installation # # Tor installation #
#################### ####################
if [ "${TOR_INSTALL}" = true ];then if [ "${TOR_INSTALL}" = ON ];then
echo "[*] Installing Tor package" echo "[*] Installing Tor package"
osPackageInstall "${TOR_PKG}" osPackageInstall "${TOR_PKG}"
@ -633,7 +730,7 @@ fi
# Bitcoin installation # # Bitcoin installation #
######################## ########################
if [ "${BITCOIN_INSTALL}" = true ];then if [ "${BITCOIN_INSTALL}" = ON ];then
echo "[*] Creating Bitcoin user with Tor access" echo "[*] Creating Bitcoin user with Tor access"
osSudo "${ROOT_USER}" useradd -d "${BITCOIN_HOME}" -G "${TOR_GROUP}" "${BITCOIN_USER}" osSudo "${ROOT_USER}" useradd -d "${BITCOIN_HOME}" -G "${TOR_GROUP}" "${BITCOIN_USER}"
@ -658,7 +755,7 @@ fi
# Elements installation # # Elements installation #
######################### #########################
if [ "${ELEMENTS_INSTALL}" = true ];then if [ "${ELEMENTS_INSTALL}" = ON ];then
echo "[*] Creating Elements user with Tor access" echo "[*] Creating Elements user with Tor access"
osSudo "${ROOT_USER}" useradd -d "${ELEMENTS_HOME}" -G "${TOR_GROUP}" "${ELEMENTS_USER}" osSudo "${ROOT_USER}" useradd -d "${ELEMENTS_HOME}" -G "${TOR_GROUP}" "${ELEMENTS_USER}"
@ -719,7 +816,7 @@ osSudo "${ELEMENTS_USER}" sh -c "cd ${ELEMENTS_ELECTRS_HOME} && cargo run --rele
# Bisq installation # # Bisq installation #
##################### #####################
if [ "${BISQ_INSTALL}" = true ];then if [ "${BISQ_INSTALL}" = ON ];then
echo "[*] Creating Bisq user with Tor access" echo "[*] Creating Bisq user with Tor access"
osSudo "${BISQ_USER}" useradd -d "${BISQ_HOME}" -G "${TOR_GROUP}" "${BISQ_USER}" osSudo "${BISQ_USER}" useradd -d "${BISQ_HOME}" -G "${TOR_GROUP}" "${BISQ_USER}"
@ -739,7 +836,7 @@ fi
# Bitcoin instance for Mainnet # # Bitcoin instance for Mainnet #
################################ ################################
if [ "${BITCOIN_MAINNET_ENABLE}" = true ];then if [ "${BITCOIN_MAINNET_ENABLE}" = ON ];then
echo "[*] Installing Bitcoin Mainnet RPC credentials" echo "[*] Installing Bitcoin Mainnet RPC credentials"
osSudo "${ROOT_USER}" sed -i -e "s/__BITCOIN_MAINNET_RPC_USER__/${BITCOIN_MAINNET_RPC_USER}/" "${BITCOIN_HOME}/bitcoin.conf" osSudo "${ROOT_USER}" sed -i -e "s/__BITCOIN_MAINNET_RPC_USER__/${BITCOIN_MAINNET_RPC_USER}/" "${BITCOIN_HOME}/bitcoin.conf"
osSudo "${ROOT_USER}" sed -i -e "s/__BITCOIN_MAINNET_RPC_PASS__/${BITCOIN_MAINNET_RPC_PASS}/" "${BITCOIN_HOME}/bitcoin.conf" osSudo "${ROOT_USER}" sed -i -e "s/__BITCOIN_MAINNET_RPC_PASS__/${BITCOIN_MAINNET_RPC_PASS}/" "${BITCOIN_HOME}/bitcoin.conf"
@ -752,7 +849,7 @@ fi
# Bitcoin instance for Testnet # # Bitcoin instance for Testnet #
################################ ################################
if [ "${BITCOIN_TESTNET_ENABLE}" = true ];then if [ "${BITCOIN_TESTNET_ENABLE}" = ON ];then
echo "[*] Installing Bitcoin Testnet RPC credentials" echo "[*] Installing Bitcoin Testnet RPC credentials"
osSudo "${ROOT_USER}" sed -i -e "s/__BITCOIN_TESTNET_RPC_USER__/${BITCOIN_TESTNET_RPC_USER}/" "${BITCOIN_TESTNET_DATA}/bitcoin.conf" osSudo "${ROOT_USER}" sed -i -e "s/__BITCOIN_TESTNET_RPC_USER__/${BITCOIN_TESTNET_RPC_USER}/" "${BITCOIN_TESTNET_DATA}/bitcoin.conf"
osSudo "${ROOT_USER}" sed -i -e "s/__BITCOIN_TESTNET_RPC_PASS__/${BITCOIN_TESTNET_RPC_PASS}/" "${BITCOIN_TESTNET_DATA}/bitcoin.conf" osSudo "${ROOT_USER}" sed -i -e "s/__BITCOIN_TESTNET_RPC_PASS__/${BITCOIN_TESTNET_RPC_PASS}/" "${BITCOIN_TESTNET_DATA}/bitcoin.conf"
@ -765,28 +862,28 @@ fi
# Electrs instance for Bitcoin Mainnet # # Electrs instance for Bitcoin Mainnet #
######################################## ########################################
if [ "${BITCOIN_MAINNET_ENABLE}" = true ];then if [ "${BITCOIN_MAINNET_ENABLE}" = ON ];then
fi fi
######################################## ########################################
# Electrs instance for Bitcoin Testnet # # Electrs instance for Bitcoin Testnet #
######################################## ########################################
if [ "${BITCOIN_TESTNET_ENABLE}" = true ];then if [ "${BITCOIN_TESTNET_ENABLE}" = ON ];then
fi fi
######################################## ########################################
# Electrs instance for Elements Liquid # # Electrs instance for Elements Liquid #
######################################## ########################################
if [ "${ELEMENTS_LIQUID_ENABLE}" = true ];then if [ "${ELEMENTS_LIQUID_ENABLE}" = ON ];then
fi fi
##################################### #####################################
# Bisq instance for Bitcoin Mainnet # # Bisq instance for Bitcoin Mainnet #
##################################### #####################################
if [ "${BISQ_MAINNET_ENABLE}" = true ];then if [ "${BISQ_MAINNET_ENABLE}" = ON ];then
echo "[*] Installing Bisq service" echo "[*] Installing Bisq service"
osSudo "${ROOT_USER}" install -c -o "${ROOT_USER}" -g "${ROOT_GROUP}" -m 644 "${BISQ_HOME}/${BISQ_REPO_NAME}/seednode/bisq.service" "${DEBIAN_SERVICE_HOME}/bisq.service" osSudo "${ROOT_USER}" install -c -o "${ROOT_USER}" -g "${ROOT_GROUP}" -m 644 "${BISQ_HOME}/${BISQ_REPO_NAME}/seednode/bisq.service" "${DEBIAN_SERVICE_HOME}/bisq.service"
osSudo "${ROOT_USER}" sed -i -e "s/#Requires=bitcoin.service/Requires=bitcoin.service/" "${DEBIAN_SERVICE_HOME}/bisq.service" osSudo "${ROOT_USER}" sed -i -e "s/#Requires=bitcoin.service/Requires=bitcoin.service/" "${DEBIAN_SERVICE_HOME}/bisq.service"
@ -823,7 +920,7 @@ fi
##### Mempool -> Bitcoin Mainnet instance ##### Mempool -> Bitcoin Mainnet instance
if [ "${BITCOIN_MAINNET_ENABLE}" = true ];then if [ "${BITCOIN_MAINNET_ENABLE}" = ON ];then
echo "[*] Creating Mempool instance for Bitcoin Mainnet" echo "[*] Creating Mempool instance for Bitcoin Mainnet"
osSudo "${MEMPOOL_USER}" git config --global advice.detachedHead false osSudo "${MEMPOOL_USER}" git config --global advice.detachedHead false
osSudo "${MEMPOOL_USER}" git clone --branch "${MEMPOOL_REPO_BRANCH}" "${MEMPOOL_REPO_URL}" "${MEMPOOL_HOME}/mainnet" osSudo "${MEMPOOL_USER}" git clone --branch "${MEMPOOL_REPO_BRANCH}" "${MEMPOOL_REPO_URL}" "${MEMPOOL_HOME}/mainnet"
@ -841,24 +938,24 @@ osSudo "${ROOT_USER}" service nginx restart
echo "[*] Updating systemd daemon configuration" echo "[*] Updating systemd daemon configuration"
osSudo "${ROOT_USER}" systemctl daemon-reload osSudo "${ROOT_USER}" systemctl daemon-reload
if [ "${TOR_ENABLE}" = true ];then if [ "${TOR_ENABLE}" = ON ];then
osSudo "${ROOT_USER}" systemctl enable tor.service osSudo "${ROOT_USER}" systemctl enable tor.service
fi fi
if [ "${BITCOIN_MAINNET_ENABLE}" = true ];then if [ "${BITCOIN_MAINNET_ENABLE}" = ON ];then
osSudo "${ROOT_USER}" systemctl enable bitcoin.service osSudo "${ROOT_USER}" systemctl enable bitcoin.service
osSudo "${ROOT_USER}" systemctl enable electrs.service osSudo "${ROOT_USER}" systemctl enable electrs.service
osSudo "${ROOT_USER}" systemctl enable mempool.service osSudo "${ROOT_USER}" systemctl enable mempool.service
fi fi
if [ "${BITCOIN_TESTNET_ENABLE}" = true ];then if [ "${BITCOIN_TESTNET_ENABLE}" = ON ];then
osSudo "${ROOT_USER}" systemctl enable bitcoin-testnet.service osSudo "${ROOT_USER}" systemctl enable bitcoin-testnet.service
osSudo "${ROOT_USER}" systemctl enable electrs-testnet.service osSudo "${ROOT_USER}" systemctl enable electrs-testnet.service
osSudo "${ROOT_USER}" systemctl enable mempool-testnet.service osSudo "${ROOT_USER}" systemctl enable mempool-testnet.service
fi fi
if [ "${BISQ_MAINNET_ENABLE}" = true ];then if [ "${BISQ_MAINNET_ENABLE}" = ON ];then
osSudo "${ROOT_USER}" systemctl enable bisq.service osSudo "${ROOT_USER}" systemctl enable bisq.service
osSudo "${ROOT_USER}" systemctl enable mempool-bisq.service osSudo "${ROOT_USER}" systemctl enable mempool-bisq.service
fi fi
if [ "${ELEMENTS_LIQUID_ENABLE}" = true ];then if [ "${ELEMENTS_LIQUID_ENABLE}" = ON ];then
osSudo "${ROOT_USER}" systemctl enable liquid.service osSudo "${ROOT_USER}" systemctl enable liquid.service
osSudo "${ROOT_USER}" systemctl enable electrs-liquid.service osSudo "${ROOT_USER}" systemctl enable electrs-liquid.service
osSudo "${ROOT_USER}" systemctl enable mempool-liquid.service osSudo "${ROOT_USER}" systemctl enable mempool-liquid.service
@ -866,20 +963,20 @@ fi
##### OS services ##### OS services
if [ "${BITCOIN_MAINNET_ENABLE}" = true ];then if [ "${BITCOIN_MAINNET_ENABLE}" = ON ];then
echo "[*] Starting Bitcoin Mainnet" echo "[*] Starting Bitcoin Mainnet"
osSudo "${ROOT_USER}" systemctl start bitcoin osSudo "${ROOT_USER}" systemctl start bitcoin
osSudo "${ROOT_USER}" systemctl start electrs osSudo "${ROOT_USER}" systemctl start electrs
osSudo "${ROOT_USER}" journalctl --no-pager --unit bitcoin osSudo "${ROOT_USER}" journalctl --no-pager --unit bitcoin
fi fi
if [ "${BITCOIN_TESTNET_ENABLE}" = true ];then if [ "${BITCOIN_TESTNET_ENABLE}" = ON ];then
echo "[*] Starting Bitcoin Testnet" echo "[*] Starting Bitcoin Testnet"
osSudo "${ROOT_USER}" systemctl start bitcoin-testnet osSudo "${ROOT_USER}" systemctl start bitcoin-testnet
osSudo "${ROOT_USER}" systemctl start electrs-testnet osSudo "${ROOT_USER}" systemctl start electrs-testnet
osSudo "${ROOT_USER}" journalctl --no-pager --unit bitcoin-testnet osSudo "${ROOT_USER}" journalctl --no-pager --unit bitcoin-testnet
fi fi
if [ "${ELEMENTS_LIQUID_ENABLE}" = true ];then if [ "${ELEMENTS_LIQUID_ENABLE}" = ON ];then
echo "[*] Starting Elements Liquid" echo "[*] Starting Elements Liquid"
osSudo "${ROOT_USER}" systemctl start liquid osSudo "${ROOT_USER}" systemctl start liquid
osSudo "${ROOT_USER}" systemctl start electrs-liquid osSudo "${ROOT_USER}" systemctl start electrs-liquid