From 9bf7f503d9d68f1024e64aa87cc7f23239e2ba0e Mon Sep 17 00:00:00 2001 From: Dennis Reimann Date: Tue, 30 Jun 2020 11:13:11 +0200 Subject: [PATCH] Add bonus script: kindle-display Added my [Bitcoin Status Display](https://github.com/dennisreimann/kindle-display). Let me know if this needs more documentation or integration. --- README.md | 1 + home.admin/_bootstrap.provision.sh | 9 + .../config.scripts/bonus.kindle-display.sh | 162 ++++++++++++++++++ 3 files changed, 172 insertions(+) create mode 100755 home.admin/config.scripts/bonus.kindle-display.sh diff --git a/README.md b/README.md index a3754e26d..fc926abf4 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,7 @@ There are further Services that can be switched on: * **ThunderHub** (Lightning Node Manager WebUI) [details](https://www.thunderhub.io/) * **Faraday** (Channel Analysis & Recommendations CLI) [details](https://github.com/lightninglabs/faraday/blob/master/README.md) * **Balance Of Satoshis** (Commands for working with LND balances) [details](https://github.com/alexbosworth/balanceofsatoshis/blob/master/README.md) +* **Kindle Display** (Bitcoin Status Display made with a jailbroken Kindle) [details](https://github.com/dennisreimann/kindle-display) You can connect the following Wallet-Apps to your RaspiBlitz: diff --git a/home.admin/_bootstrap.provision.sh b/home.admin/_bootstrap.provision.sh index bebfb9cc2..ce477c946 100644 --- a/home.admin/_bootstrap.provision.sh +++ b/home.admin/_bootstrap.provision.sh @@ -453,6 +453,15 @@ else echo "Provisioning letsencrypt - keep default" >> ${logFile} fi +# kindle-display +if [ "${kindleDisplay}" = "on" ]; then + echo "Provisioning kindle-display - run config script" >> ${logFile} + sudo sed -i "s/^message=.*/message='Setup kindle-display'/g" ${infoFile} + sudo -u admin /home/admin/config.scripts/bonus.kindle-display.sh on >> ${logFile} 2>&1 +else + echo "Provisioning kindle-display - keep default" >> ${logFile} +fi + # replay backup LND conf & tlscerts diff --git a/home.admin/config.scripts/bonus.kindle-display.sh b/home.admin/config.scripts/bonus.kindle-display.sh new file mode 100755 index 000000000..b8041386b --- /dev/null +++ b/home.admin/config.scripts/bonus.kindle-display.sh @@ -0,0 +1,162 @@ +#!/bin/bash + +# https://github.com/dennisreimann/kindle-display + +USERNAME=kindledisplay +SERVER_PORT=3030 +APP_DATA_DIR=/mnt/hdd/app-data/kindle-display +HOME_DIR=/home/$USERNAME +CONFIG_FILE=$APP_DATA_DIR/.env +APP_ROOT_DIR=$HOME_DIR/kindle-display +APP_SERVER_DIR=$APP_ROOT_DIR/server +CRON_FILE=$APP_SERVER_DIR/cron.sh + +# command info +if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then + echo "small config script to switch kindle-display on or off" + echo "bonus.kindle-display.sh [on|off]" + exit 1 +fi + +source /mnt/hdd/raspiblitz.conf + +# switch on +if [ "$1" = "1" ] || [ "$1" = "on" ]; then + echo "*** INSTALL KINDLE-DISPLAY ***" + + isInstalled=$(sudo ls $HOME_DIR 2>/dev/null | grep -c 'kindle-display') + if [ ${isInstalled} -eq 0 ]; then + # install dependencies + sudo apt install -y firefox-esr pngcrush jo + + # install nodeJS + /home/admin/config.scripts/bonus.nodejs.sh + + # add user + sudo adduser --disabled-password --gecos "" $USERNAME + + # install kindle-display + cd $HOME_DIR + sudo -u $USERNAME git clone https://github.com/dennisreimann/kindle-display.git + cd kindle-display/server + sudo -u $USERNAME npm install + + # setup kindle-display config + RPC_USER=$(sudo cat /mnt/hdd/${network}/${network}.conf | grep rpcuser | cut -c 9-) + RPC_PASS=$(sudo cat /mnt/hdd/${network}/${network}.conf | grep rpcpassword | cut -c 13-) + + sudo mkdir $APP_DATA_DIR + sudo chown $USERNAME:$USERNAME $APP_DATA_DIR + + configFile=/home/admin/kindle-display.env + touch $configFile + sudo chmod 600 $configFile || exit 1 + cat > $configFile < Access Tokens > Legacy API Keys +BTCPAY_API_TOKEN="myBtcPayLegacyApiKey" +EOF + sudo mv $configFile $CONFIG_FILE + sudo chown $USERNAME:$USERNAME $CONFIG_FILE + sudo -u $USERNAME ln -s $CONFIG_FILE $APP_SERVER_DIR/.env + + # generate initial data + sudo -u $USERNAME $APP_SERVER_DIR/data.sh + + # open firewall + sudo ufw allow $SERVER_PORT comment 'kindle-display HTTP' + + # install service + cat > /home/admin/kindle-display.service </dev/null | grep -c 'kindle-display') + + if [ ${isInstalled} -eq 1 ]; then + echo "*** REMOVING KINDLE-DISPLAY ***" + + # setting value in raspi blitz config + sudo sed -i "s/^kindleDisplay=.*/kindleDisplay=off/g" /mnt/hdd/raspiblitz.conf + + # uninstall service + sudo systemctl disable kindle-display + sudo rm /etc/systemd/system/kindle-display.service + + # close port on firewall + sudo ufw deny $SERVER_PORT + + # remove config + sudo rm -rf $APP_DATA_DIR + + # delete user and home directory + sudo userdel -rf $USERNAME + + echo "OK KINDLE-DISPLAY removed." + else + echo "KINDLE-DISPLAY is not installed." + fi + + exit 0 +fi + +echo "FAIL - Unknown Parameter $1" +exit 1