From 9bf7f503d9d68f1024e64aa87cc7f23239e2ba0e Mon Sep 17 00:00:00 2001 From: Dennis Reimann Date: Tue, 30 Jun 2020 11:13:11 +0200 Subject: [PATCH 1/4] 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 From 0eaf27f4d2c097e9108006fc07f1e467c99c42ac Mon Sep 17 00:00:00 2001 From: Dennis Reimann Date: Wed, 1 Jul 2020 07:34:33 +0200 Subject: [PATCH 2/4] Kindle Display: No cron email --- home.admin/config.scripts/bonus.kindle-display.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home.admin/config.scripts/bonus.kindle-display.sh b/home.admin/config.scripts/bonus.kindle-display.sh index b8041386b..d4ae2eea8 100755 --- a/home.admin/config.scripts/bonus.kindle-display.sh +++ b/home.admin/config.scripts/bonus.kindle-display.sh @@ -120,7 +120,7 @@ EOF echo "" echo "SHELL=/bin/bash" echo "PATH=/bin:/usr/bin:/usr/local/bin" - echo "*/5 * * * * /bin/bash $CRON_FILE" + echo "*/5 * * * * /bin/bash $CRON_FILE > /dev/null 2>&1 || true" fi exit 0 From 1dd74b5c757281a72f56126f23e36b13c32f9c6d Mon Sep 17 00:00:00 2001 From: Dennis Reimann Date: Wed, 1 Jul 2020 14:41:19 +0200 Subject: [PATCH 3/4] Kindle Display: Finetuning --- .../config.scripts/bonus.kindle-display.sh | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/home.admin/config.scripts/bonus.kindle-display.sh b/home.admin/config.scripts/bonus.kindle-display.sh index d4ae2eea8..fd21b1ac4 100755 --- a/home.admin/config.scripts/bonus.kindle-display.sh +++ b/home.admin/config.scripts/bonus.kindle-display.sh @@ -10,6 +10,7 @@ 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 +APP_VERSION=0.2.0 # command info if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then @@ -30,14 +31,17 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then sudo apt install -y firefox-esr pngcrush jo # install nodeJS - /home/admin/config.scripts/bonus.nodejs.sh + /home/admin/config.scripts/bonus.nodejs.sh on # 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 + sudo -u $USERNAME wget https://github.com/dennisreimann/kindle-display/archive/v$APP_VERSION.tar.gz + sudo -u $USERNAME tar -xzf v$APP_VERSION.tar.gz kindle-display-$APP_VERSION/server + sudo -u $USERNAME mv kindle-display{-$APP_VERSION,} + sudo -u $USERNAME rm v$APP_VERSION.tar.gz cd kindle-display/server sudo -u $USERNAME npm install @@ -45,24 +49,29 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then 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 mkdir -p $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 < $configFile < Access Tokens > Legacy API Keys -BTCPAY_API_TOKEN="myBtcPayLegacyApiKey" +# BTCPAY_HOST="https://my.btcpayserver.com" +# BTCPAY_API_TOKEN="myBtcPayLegacyApiKey" EOF - sudo mv $configFile $CONFIG_FILE + sudo mv $configFile $CONFIG_FILE + fi + sudo chown $USERNAME:$USERNAME $CONFIG_FILE + + # link config to app sudo -u $USERNAME ln -s $CONFIG_FILE $APP_SERVER_DIR/.env # generate initial data From 46bb6bc06ddc66c6077654256e51f186c67a292c Mon Sep 17 00:00:00 2001 From: Dennis Reimann Date: Sat, 4 Jul 2020 13:49:40 +0200 Subject: [PATCH 4/4] Kindle Display: Use v0.2.1 --- home.admin/config.scripts/bonus.kindle-display.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home.admin/config.scripts/bonus.kindle-display.sh b/home.admin/config.scripts/bonus.kindle-display.sh index fd21b1ac4..261a5e0b0 100755 --- a/home.admin/config.scripts/bonus.kindle-display.sh +++ b/home.admin/config.scripts/bonus.kindle-display.sh @@ -10,7 +10,7 @@ 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 -APP_VERSION=0.2.0 +APP_VERSION=0.2.1 # command info if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then