Merge pull request #2217 from Emzy/ops/pats-dialog
Add options for components to be installed in prod install script
This commit is contained in:
		
						commit
						63a22082bc
					
				| @ -668,129 +668,131 @@ ext4CreateDir() | ||||
| 
 | ||||
| # does bitcoin exist? | ||||
| 
 | ||||
| ########### | ||||
| ## dialog # | ||||
| ########### | ||||
| # | ||||
| #: ${DIALOG=dialog} | ||||
| # | ||||
| #: ${DIALOG_OK=0} | ||||
| #: ${DIALOG_CANCEL=1} | ||||
| #: ${DIALOG_HELP=2} | ||||
| #: ${DIALOG_EXTRA=3} | ||||
| #: ${DIALOG_ITEM_HELP=4} | ||||
| #: ${DIALOG_ESC=255} | ||||
| # | ||||
| #: ${SIG_OFFNE=0} | ||||
| #: ${SIG_HUP=1} | ||||
| #: ${SIG_INT=2} | ||||
| #: ${SIG_QUIT=3} | ||||
| #: ${SIG_KILL=9} | ||||
| #: ${SIG_TERM=15} | ||||
| # | ||||
| #input=`tempfile 2>/dev/null` || input=/tmp/input$$ | ||||
| #output=`tempfile 2>/dev/null` || output=/tmp/test$$ | ||||
| #trap "rm -f $input $output" $SIG_OFFNE $SIG_HUP $SIG_INT $SIG_TRAP $SIG_TERM | ||||
| # | ||||
| #DIALOG_ERROR=254 | ||||
| #export DIALOG_ERROR | ||||
| # | ||||
| #backtitle="Mempool Fullnode Installer" | ||||
| #title="Mempool Fullnode Installer" | ||||
| #returncode=0 | ||||
| # | ||||
| ################## | ||||
| ## dialog part 1 # | ||||
| ################## | ||||
| # | ||||
| #$CUT >$input <<-EOF | ||||
| #Tor:Enable Tor v3 HS Onion:ON | ||||
| #Certbot:Enable HTTPS using Certbot:ON | ||||
| #Mainnet:Enable Bitcoin Mainnet:ON | ||||
| #Mainnet-Minfee:Enable Bitcoin Mainnet Minfee: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 Mainnet-Minfee $tempfile >/dev/null 2>&1;then | ||||
| #    BITCOIN_MAINNET_MINFEE_ENABLE=ON | ||||
| #else | ||||
| #    BITCOIN_MAINNET_MINFEE_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 # | ||||
| ########## | ||||
| 
 | ||||
| : ${DIALOG=dialog} | ||||
| 
 | ||||
| : ${DIALOG_OK=0} | ||||
| : ${DIALOG_CANCEL=1} | ||||
| : ${DIALOG_HELP=2} | ||||
| : ${DIALOG_EXTRA=3} | ||||
| : ${DIALOG_ITEM_HELP=4} | ||||
| : ${DIALOG_ESC=255} | ||||
| 
 | ||||
| : ${SIG_OFFNE=0} | ||||
| : ${SIG_HUP=1} | ||||
| : ${SIG_INT=2} | ||||
| : ${SIG_QUIT=3} | ||||
| : ${SIG_KILL=9} | ||||
| : ${SIG_TERM=15} | ||||
| 
 | ||||
| input=`tempfile 2>/dev/null` || input=/tmp/input$$ | ||||
| output=`tempfile 2>/dev/null` || output=/tmp/test$$ | ||||
| trap "rm -f $input $output" $SIG_OFFNE $SIG_HUP $SIG_INT $SIG_TRAP $SIG_TERM | ||||
| 
 | ||||
| DIALOG_ERROR=254 | ||||
| export DIALOG_ERROR | ||||
| 
 | ||||
| backtitle="Mempool Fullnode Installer" | ||||
| title="Mempool Fullnode Installer" | ||||
| returncode=0 | ||||
| 
 | ||||
| ################# | ||||
| # dialog part 1 # | ||||
| ################# | ||||
| 
 | ||||
| $CUT >$input <<-EOF | ||||
| Tor:Enable Tor v3 HS Onion:ON | ||||
| Mainnet:Enable Bitcoin Mainnet:ON | ||||
| Mainnet-Minfee:Enable Bitcoin Mainnet Minfee:ON | ||||
| Testnet:Enable Bitcoin Testnet:ON | ||||
| Signet:Enable Bitcoin Signet:ON | ||||
| Liquid:Enable Elements Liquid:ON | ||||
| Liquidtestnet:Enable Elements Liquidtestnet:ON | ||||
| Bisq:Enable Bisq: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 Mainnet $tempfile >/dev/null 2>&1;then | ||||
|     BITCOIN_MAINNET_ENABLE=ON | ||||
| else | ||||
|     BITCOIN_MAINNET_ENABLE=OFF | ||||
| fi | ||||
| 
 | ||||
| if grep Mainnet-Minfee $tempfile >/dev/null 2>&1;then | ||||
|     BITCOIN_MAINNET_MINFEE_ENABLE=ON | ||||
| else | ||||
|     BITCOIN_MAINNET_MINFEE_ENABLE=OFF | ||||
| fi | ||||
| 
 | ||||
| if grep Testnet $tempfile >/dev/null 2>&1;then | ||||
|     BITCOIN_TESTNET_ENABLE=ON | ||||
| else | ||||
|     BITCOIN_TESTNET_ENABLE=OFF | ||||
| fi | ||||
| 
 | ||||
| if grep Signet $tempfile >/dev/null 2>&1;then | ||||
|     BITCOIN_SIGNET_ENABLE=ON | ||||
| else | ||||
|     BITCOIN_SIGNET_ENABLE=OFF | ||||
| fi | ||||
| 
 | ||||
| if [ "${BITCOIN_MAINNET_ENABLE}" = ON -o "${BITCOIN_MAINNET_MINFEE_ENABLE}" = ON -o "${BITCOIN_TESTNET_ENABLE}" = ON -o "${BITCOIN_SIGNET_ENABLE}" = ON ];then | ||||
|     BITCOIN_INSTALL=ON | ||||
| else | ||||
|     BITCOIN_INSTALL=OFF | ||||
| fi | ||||
| 
 | ||||
| if grep Liquid $tempfile >/dev/null 2>&1;then | ||||
|     ELEMENTS_LIQUID_ENABLE=ON | ||||
| else | ||||
|     ELEMENTS_LIQUID_ENABLE=OFF | ||||
| fi | ||||
| 
 | ||||
| if grep Liquidtestnet $tempfile >/dev/null 2>&1;then | ||||
|     ELEMENTS_LIQUIDTESTNET_ENABLE=ON | ||||
| else | ||||
|     ELEMENTS_LIQUIDTESTNET_ENABLE=OFF | ||||
| fi | ||||
| 
 | ||||
| if [ "${ELEMENTS_LIQUID_ENABLE}" = ON -o "${ELEMENTS_LIQUIDTESTNET_ENABLE}" = ON ];then | ||||
|     ELEMENTS_INSTALL=ON | ||||
| else | ||||
|     ELEMENTS_INSTALL=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 | ||||
| 
 | ||||
| ################## | ||||
| ## dialog part 2 # | ||||
| ################## | ||||
| @ -969,12 +971,20 @@ if [ "${BITCOIN_INSTALL}" = ON ];then | ||||
| 
 | ||||
|     echo "[*] Creating Bitcoin user with Tor access" | ||||
|     osGroupCreate "${BITCOIN_GROUP}" | ||||
|     if [ "${TOR_INSTALL}" = ON ];then | ||||
|         osUserCreate "${BITCOIN_USER}" "${BITCOIN_HOME}" "${BITCOIN_GROUP}" "${TOR_GROUP}" | ||||
|     else | ||||
|         osUserCreate "${BITCOIN_USER}" "${BITCOIN_HOME}" "${BITCOIN_GROUP}" | ||||
|     fi | ||||
|     osSudo "${ROOT_USER}" chsh -s `which zsh` "${BITCOIN_USER}" | ||||
| 
 | ||||
|     echo "[*] Creating Bitcoin minfee user with Tor access" | ||||
|     osGroupCreate "${MINFEE_GROUP}" | ||||
|     if [ "${TOR_INSTALL}" = ON ];then | ||||
|         osUserCreate "${MINFEE_USER}" "${MINFEE_HOME}" "${MINFEE_GROUP}" "${TOR_GROUP}" | ||||
|     else | ||||
|         osUserCreate "${MINFEE_USER}" "${MINFEE_HOME}" "${MINFEE_GROUP}" | ||||
|     fi | ||||
|     osSudo "${ROOT_USER}" chown -R "${MINFEE_USER}:${MINFEE_GROUP}" "${MINFEE_HOME}" | ||||
|     osSudo "${ROOT_USER}" chsh -s `which zsh` "${MINFEE_USER}" | ||||
|     osSudo "${MINFEE_USER}" touch "${MINFEE_HOME}/.zshrc" | ||||
| @ -1022,7 +1032,11 @@ if [ "${ELEMENTS_INSTALL}" = ON ];then | ||||
| 
 | ||||
|     echo "[*] Creating Elements user with Tor access" | ||||
|     osGroupCreate "${ELEMENTS_GROUP}" | ||||
|     if [ "${TOR_INSTALL}" = ON ];then | ||||
|         osUserCreate "${ELEMENTS_USER}" "${ELEMENTS_HOME}" "${ELEMENTS_GROUP}" "${TOR_GROUP}" | ||||
|     else | ||||
|         osUserCreate "${ELEMENTS_USER}" "${ELEMENTS_HOME}" "${ELEMENTS_GROUP}" | ||||
|     fi | ||||
|     osSudo "${ROOT_USER}" chsh -s `which zsh` "${ELEMENTS_USER}" | ||||
| 
 | ||||
|     echo "[*] Creating Elements data folder" | ||||
| @ -1063,9 +1077,15 @@ fi | ||||
| echo "[*] Creating Bitcoin Electrs data folder" | ||||
| osSudo "${ROOT_USER}" mkdir -p "${BITCOIN_ELECTRS_HOME}" | ||||
| osSudo "${ROOT_USER}" chown -R "${BITCOIN_USER}:${BITCOIN_GROUP}" "${BITCOIN_ELECTRS_HOME}" | ||||
| if [ "${BITCOIN_MAINNET_ENABLE}" = ON ];then  | ||||
|     osSudo "${ROOT_USER}" chown -R "${BITCOIN_USER}:${BITCOIN_GROUP}" "${ELECTRS_MAINNET_DATA}" | ||||
| fi | ||||
| if [ "${BITCOIN_TESTNET_ENABLE}" = ON ];then  | ||||
|     osSudo "${ROOT_USER}" chown -R "${BITCOIN_USER}:${BITCOIN_GROUP}" "${ELECTRS_TESTNET_DATA}" | ||||
| fi | ||||
| if [ "${BITCOIN_SIGNET_ENABLE}" = ON ];then  | ||||
|     osSudo "${ROOT_USER}" chown -R "${BITCOIN_USER}:${BITCOIN_GROUP}" "${ELECTRS_SIGNET_DATA}" | ||||
| fi | ||||
| 
 | ||||
| echo "[*] Cloning Bitcoin Electrs repo from ${BITCOIN_ELECTRS_REPO_URL}" | ||||
| osSudo "${BITCOIN_USER}" git config --global advice.detachedHead false | ||||
| @ -1105,6 +1125,8 @@ osSudo "${BITCOIN_USER}" sh -c "cd ${BITCOIN_ELECTRS_HOME} && cargo run --releas | ||||
| # Liquid -> Electrs installation # | ||||
| ################################## | ||||
| 
 | ||||
| if [ "${ELEMENTS_INSTALL}" = ON ;then | ||||
| 
 | ||||
|     echo "[*] Creating Liquid Electrs data folder" | ||||
|     osSudo "${ROOT_USER}" mkdir -p "${ELEMENTS_ELECTRS_HOME}" | ||||
|     osSudo "${ROOT_USER}" chown -R "${ELEMENTS_USER}:${ELEMENTS_GROUP}" "${ELEMENTS_HOME}" | ||||
| @ -1141,6 +1163,7 @@ esac | ||||
|      | ||||
|     echo "[*] Building Liquid Electrs release binary" | ||||
|     osSudo "${ELEMENTS_USER}" sh -c "cd ${ELEMENTS_ELECTRS_HOME} && cargo run --release --features liquid --bin electrs -- --network liquid --version" || true | ||||
| fi | ||||
|      | ||||
| ##################### | ||||
| # Bisq installation # | ||||
| @ -1150,7 +1173,11 @@ if [ "${BISQ_INSTALL}" = ON ];then | ||||
| 
 | ||||
|     echo "[*] Creating Bisq user with Tor access" | ||||
|     osGroupCreate "${BISQ_GROUP}" | ||||
|     if [ "${TOR_INSTALL}" = ON ];then | ||||
|         osUserCreate "${BISQ_USER}" "${BISQ_HOME}" "${BISQ_GROUP}" "${TOR_GROUP}" | ||||
|     else | ||||
|         osUserCreate "${BISQ_USER}" "${BISQ_HOME}" "${BISQ_GROUP}" | ||||
|     fi | ||||
|     osSudo "${ROOT_USER}" chsh -s `which zsh` "${BISQ_USER}" | ||||
| 
 | ||||
|     echo "[*] Creating Bisq data folder" | ||||
| @ -1435,7 +1462,9 @@ case $OS in | ||||
|             echo "[*] Installing Electrs Signet Cronjob" | ||||
|             crontab_bitcoin+="@reboot sleep 90 ; screen -dmS signet /bitcoin/electrs/electrs-start-signet\n" | ||||
|         fi | ||||
|         if [ "${BITCOIN_MAINNET_ENABLE}" = ON -o "${BITCOIN_TESTNET_ENABLE}" = ON -o "${BITCOIN_SIGNET_ENABLE}" = ON ];then | ||||
|             echo "${crontab_bitcoin}" | crontab -u "${BITCOIN_USER}" - | ||||
|         fi | ||||
| 
 | ||||
|         crontab_elements=() | ||||
|         if [ "${ELEMENTS_LIQUID_ENABLE}" = ON ];then | ||||
| @ -1446,7 +1475,9 @@ case $OS in | ||||
|             echo "[*] Installing Liquid Asset Testnet Cronjob" | ||||
|             crontab_elements+="6 * * * * cd $HOME/asset_registry_testnet_db && git pull origin master >/dev/null 2>&1\n" | ||||
|         fi | ||||
|         if [ "${ELEMENTS_LIQUID_ENABLE}" = ON -o "${ELEMENTS_LIQUIDTESTNET_ENABLE}" = ON ];then | ||||
|             echo "${crontab_elements}" | crontab -u "${ELEMENTS_USER}" - | ||||
|         fi | ||||
|     ;; | ||||
| esac | ||||
| 
 | ||||
| @ -1459,7 +1490,7 @@ fi | ||||
| 
 | ||||
| ##### Mempool -> Bitcoin Mainnet instance | ||||
| 
 | ||||
| if [ "${BITCOIN_MAINNET_ENABLE}" = ON ];then | ||||
| if [ "${BITCOIN_MAINNET_ENABLE}" = ON -o "${BITCOIN_TESTNET_ENABLE}" = ON -o "${BITCOIN_SIGNET_ENABLE}" = ON ];then | ||||
|     echo "[*] Creating Mempool instance for Bitcoin Mainnet" | ||||
|     osSudo "${MEMPOOL_USER}" git config --global advice.detachedHead false | ||||
|     osSudo "${MEMPOOL_USER}" git clone --branch "${MEMPOOL_REPO_BRANCH}" "${MEMPOOL_REPO_URL}" "${MEMPOOL_HOME}/mainnet" | ||||
| @ -1564,12 +1595,6 @@ _EOF_ | ||||
| 
 | ||||
| ##### nginx | ||||
| 
 | ||||
| 
 | ||||
| echo "[*] Read tor v3 onion hostnames" | ||||
| NGINX_MEMPOOL_ONION=$(cat "${TOR_RESOURCES}/mempool/hostname") | ||||
| NGINX_BISQ_ONION=$(cat "${TOR_RESOURCES}/bisq/hostname") | ||||
| NGINX_LIQUID_ONION=$(cat "${TOR_RESOURCES}/liquid/hostname") | ||||
| 
 | ||||
| echo "[*] Adding Nginx configuration" | ||||
| osSudo "${ROOT_USER}" install -c -o "${ROOT_USER}" -g "${ROOT_GROUP}" -m 644 "${MEMPOOL_HOME}/${MEMPOOL_REPO_NAME}/production/nginx/nginx.conf" "${NGINX_CONFIGURATION}" | ||||
| mkdir -p /var/cache/nginx/services /var/cache/nginx/api | ||||
| @ -1577,9 +1602,15 @@ chown ${NGINX_USER}: /var/cache/nginx/services /var/cache/nginx/api | ||||
| ln -s /mempool/mempool /etc/nginx/mempool | ||||
| osSudo "${ROOT_USER}" sed -i.orig "s!__NGINX_USER__!${NGINX_USER}!" "${NGINX_CONFIGURATION}" | ||||
| osSudo "${ROOT_USER}" sed -i.orig "s!__NGINX_ETC_FOLDER__!${NGINX_ETC_FOLDER}!" "${NGINX_CONFIGURATION}" | ||||
| if [ "${TOR_INSTALL}" = ON ];then | ||||
| echo "[*] Read tor v3 onion hostnames" | ||||
|     NGINX_MEMPOOL_ONION=$(cat "${TOR_RESOURCES}/mempool/hostname") | ||||
|     NGINX_BISQ_ONION=$(cat "${TOR_RESOURCES}/bisq/hostname") | ||||
|     NGINX_LIQUID_ONION=$(cat "${TOR_RESOURCES}/liquid/hostname") | ||||
|     osSudo "${ROOT_USER}" sed -i.orig "s!__NGINX_MEMPOOL_ONION__!${NGINX_MEMPOOL_ONION%.onion}!" "${NGINX_CONFIGURATION}" | ||||
|     osSudo "${ROOT_USER}" sed -i.orig "s!__NGINX_BISQ_ONION__!${NGINX_BISQ_ONION%.onion}!" "${NGINX_CONFIGURATION}" | ||||
|     osSudo "${ROOT_USER}" sed -i.orig "s!__NGINX_LIQUID_ONION__!${NGINX_LIQUID_ONIONi%.onion}!" "${NGINX_CONFIGURATION}" | ||||
| fi | ||||
| echo "[*] Restarting Nginx" | ||||
| osSudo "${ROOT_USER}" service nginx restart | ||||
| 
 | ||||
| @ -1642,7 +1673,7 @@ esac | ||||
| ##### Build Mempool | ||||
| 
 | ||||
| echo "[*] Build Mempool" | ||||
| osSudo "${MEMPOOL_USER}" sh -c "cd ${MEMPOOL_HOME} && ./upgrade" | ||||
| osSudo "${MEMPOOL_USER}" sh -c "cd ${MEMPOOL_HOME} && ./upgrade" || true | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @ -1727,10 +1758,12 @@ case $OS in | ||||
|     ;; | ||||
| 
 | ||||
|     Debian) | ||||
|         if [ "${TOR_INSTALL}" = ON ];then | ||||
|             echo "This are the generated Tor addresses:" | ||||
|             echo "${NGINX_MEMPOOL_ONION}" | ||||
|             echo "${NGINX_BISQ_ONION}" | ||||
|             echo "${NGINX_LIQUID_ONION}" | ||||
|         fi | ||||
|     ;; | ||||
| esac | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user