#!/bin/bash # links: # https://github.com/JoinMarket-Org/joinmarket-clientserver#quickstart---recommended-installation-method-linux-only # https://github.com/openoms/bitcoin-tutorials/tree/master/joinmarket # https://github.com/openoms/joininbox # command info if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then echo "JoinMarket install script to switch JoinMarket on or off" echo "sudo /home/admin/config.scrips/bonus.joinmarket.sh on|off" exit 1 fi # check if sudo if [ "$EUID" -ne 0 ] then echo "Please run as root (with sudo)" exit fi source /mnt/hdd/raspiblitz.conf # add default value to raspi config if needed if ! grep -Eq "^joinmarket=" /mnt/hdd/raspiblitz.conf; then echo "joinmarket=off" >> /mnt/hdd/raspiblitz.conf fi # show info menu if [ "$1" = "menu" ]; then whiptail --title " JoinMarket info " --msgbox "Usage: https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/USAGE.md\n Start to use by logging in to the 'joinmarket' user with: 'sudo su - joinmarket' \n Can log in directly with the 'joinmarket' user via ssh. The user password is the PASSWORD_B. " 14 87 exit 0 fi # switch on if [ "$1" = "1" ] || [ "$1" = "on" ]; then echo "*** INSTALL JOINMARKET ***" # check if running Tor if [ ${runBehindTor} = on ]; then echo "OK, running behind Tor." else echo "Not running Tor" echo "Activate Tor from the SERVICES menu before installing JoinMarket." exit 1 fi # make sure the Bitcoin Core wallet is on /home/admin/config.scripts/network.wallet.sh on if [ ! -f "/home/joinmarket/joinmarket-clientserver/jmvenv/bin/activate" ] ; then echo "*** Add the 'joinmarket' user ***" adduser --disabled-password --gecos "" joinmarket echo "*** setting PASSWORD_B as the password for the 'joinmarket' user ***" PASSWORD_B=$(sudo cat /mnt/hdd/${network}/${network}.conf | grep rpcpassword | cut -c 13-) echo "joinmarket:$PASSWORD_B" | sudo chpasswd # add to sudo group (required for installation) adduser joinmarket sudo # configure sudo for usage without password entry for the joinmarket user echo 'joinmarket ALL=(ALL) NOPASSWD:ALL' | EDITOR='tee -a' visudo # make a folder for authorized keys sudo -u joinmarket mkdir -p /home/joinmarket/.ssh chmod -R 700 /home/joinmarket/.ssh # install the command-line fuzzy finder (https://github.com/junegunn/fzf) bash -c "echo 'source /usr/share/doc/fzf/examples/key-bindings.bash' >> /home/joinmarket/.bashrc" # store JoinMarket data on HDD mkdir /mnt/hdd/app-data/.joinmarket 2>/dev/null # copy old JoinMarket data to app-data cp -rf /mnt/admin/joinmarket-clientserver/scripst/wallets /mnt/hdd/app-data/.joinmarket/ 2>/dev/null chown -R joinmarket:joinmarket /mnt/hdd/app-data/.joinmarket ln -s /mnt/hdd/app-data/.joinmarket /home/joinmarket/ 2>/dev/null chown -R joinmarket:joinmarket /home/joinmarket/.joinmarket # install joinmarket cd /home/joinmarket sudo -u joinmarket git clone https://github.com/JoinMarket-Org/joinmarket-clientserver.git cd joinmarket-clientserver # latest release: https://github.com/JoinMarket-Orgjoinmarket-clientserver/releases # commits: https://github.com/JoinMarket-Org/joinmarket-clientserver/commits/master sudo -u joinmarket git checkout 35034b4c3b6fa38a0c4d94c0e884be0749ec9799 # make apt-get install work without user interaction sudo apt-get -y install rpl sudo rpl "sudo apt-get install" "sudo apt-get -y install" /home/joinmarket/joinmarket-clientserver/install.sh # install joinmarket server sudo -u joinmarket ./install.sh --without-qt # autostart for joinmarket if [ $(sudo cat /home/joinmarket/.bashrc | grep -c "bash startup.sh") -eq 0 ]; then sudo bash -c "echo 'bash startup.sh' >> /home/joinmarket/.bashrc" fi if [ $(sudo cat /home/joinmarket/.bashrc | grep -c ". /home/joinmarket/joinmarket-clientserver/jmvenv/bin/activate") -eq 0 ]; then sudo bash -c "echo '. /home/joinmarket/joinmarket-clientserver/jmvenv/bin/activate' >> /home/joinmarket/.bashrc" fi if [ $(sudo cat /home/joinmarket/.bashrc | grep -c "cd /home/joinmarket/joinmarket-clientserver/scripts/") -eq 0 ]; then sudo bash -c "echo 'cd /home/joinmarket/joinmarket-clientserver/scripts/' >> /home/joinmarket/.bashrc" fi cat > /home/admin/startup.sh </dev/null echo "OK JoinMarket removed" else echo "JoinMarket is not installed." fi exit 0 fi echo "FAIL - Unknown Parameter $1" echo "may need reboot to run exit 1