From c9802cb9afdb21f497d60c12c9e60e46c1e45d1f Mon Sep 17 00:00:00 2001 From: openoms Date: Sat, 28 May 2022 19:48:45 +0100 Subject: [PATCH] btcpay default to v1.5.4, improve update and off --- .../config.scripts/bonus.btcpayserver.sh | 188 ++++++++++-------- 1 file changed, 103 insertions(+), 85 deletions(-) diff --git a/home.admin/config.scripts/bonus.btcpayserver.sh b/home.admin/config.scripts/bonus.btcpayserver.sh index 96fed80f..c08962d8 100755 --- a/home.admin/config.scripts/bonus.btcpayserver.sh +++ b/home.admin/config.scripts/bonus.btcpayserver.sh @@ -5,11 +5,7 @@ # https://github.com/dgarage/NBXplorer/tags NBXplorerVersion="v2.2.20" # https://github.com/btcpayserver/btcpayserver/releases -BTCPayVersion="v1.4.4" - -PGPsigner="nicolasdorier" -PGPpubkeyLink="https://keybase.io/nicolasdorier/pgp_keys.asc" -PGPpubkeyFingerprint="AB4CFA9895ACA0DBE27F6B346618763EF09186FE" +BTCPayVersion="v1.5.4" # command info if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then @@ -38,7 +34,11 @@ if [ "$1" = "status" ]; then localIP=$(hostname -I | awk '{print $1}') echo "localIP='${localIP}'" + echo "httpPort='23000'" echo "httpsPort='23001'" + echo "httpsForced='1'" + echo "httpsSelfsigned='1'" # TODO: change later if IP2Tor+LetsEncrypt is active + echo "authMethod='userdefined'" echo "publicIP='${publicIP}'" # check for LetsEncryptDomain for DynDns @@ -336,6 +336,11 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then cd NBXplorer || exit 1 sudo -u btcpay git reset --hard $NBXplorerVersion # PGP verify + + PGPsigner="nicolasdorier" + PGPpubkeyLink="https://keybase.io/nicolasdorier/pgp_keys.asc" + PGPpubkeyFingerprint="AB4CFA9895ACA0DBE27F6B346618763EF09186FE" + sudo -u btcpay /home/admin/config.scripts/blitz.git-verify.sh \ "${PGPsigner}" "${PGPpubkeyLink}" "${PGPpubkeyFingerprint}" || exit 1 echo "# Build NBXplorer ..." @@ -429,9 +434,13 @@ btc.rpc.password=$PASSWORD_B sudo -u btcpay git clone https://github.com/btcpayserver/btcpayserver.git 2>/dev/null cd btcpayserver sudo -u btcpay git reset --hard $BTCPayVersion - + # sudo -u btcpay /home/admin/config.scripts/blitz.git-verify.sh \ # "web-flow" "https://github.com/web-flow.gpg" "4AEE18F83AFDEB23" || exit 1 + PGPsigner="Kukks" + PGPpubkeyLink="https://github.com/${PGPsigner}.gpg" + PGPpubkeyFingerprint="8E5530D9D1C93097" + sudo -u btcpay /home/admin/config.scripts/blitz.git-verify.sh \ "${PGPsigner}" "${PGPpubkeyLink}" "${PGPpubkeyFingerprint}" || exit 1 @@ -476,11 +485,11 @@ WantedBy=multi-user.target sudo systemctl start btcpayserver echo "# Checking for btcpayserver config" while [ ! -f "/home/btcpay/.btcpayserver/Main/settings.config" ]; do - echo "# Waiting for btcpayserver to start - CTRL+C to abort" - sleep 10 + echo "# Waiting for btcpayserver to start - CTRL+C to abort .." + sleep 30 hasFailed=$(sudo systemctl status btcpayserver | grep -c "Active: failed") if [ ${hasFailed} -eq 1 ]; then - echo "# seems like starting btcpayserver service has failed - see: systemctl status btcpayserver" + echo "# seems like starting btcpayserver service has failed - see: systemctl status btcpayserver" echo "# maybe report here: https://github.com/rootzoll/raspiblitz/issues/214" fi done @@ -503,6 +512,9 @@ WantedBy=multi-user.target # setting value in raspi blitz config /home/admin/config.scripts/blitz.conf.sh set BTCPayServer "on" + + # needed for API/WebUI as signal that install ran thru + echo "result='OK'" exit 0 fi @@ -540,88 +552,94 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then sudo systemctl stop btcpayserver sudo systemctl disable btcpayserver sudo rm /etc/systemd/system/btcpayserver.service - # nbxplorer - sudo systemctl stop nbxplorer - sudo systemctl disable nbxplorer - sudo rm /etc/systemd/system/nbxplorer.service - # clear dotnet cache - /home/btcpay/dotnet/dotnet nuget locals all --clear - sudo rm -rf /tmp/NuGetScratch - # remove dotnet - sudo rm -rf /usr/share/dotnet - # clear app config (not user data) - sudo rm -f /home/btcpay/.nbxplorer/Main/settings.config - sudo rm -f /home/btcpay/.btcpayserver/Main/settings.config - # clear nginx config (from btcpaysetdomain) - sudo rm -f /etc/nginx/sites-enabled/btcpayserver - sudo rm -f /etc/nginx/sites-available/btcpayserver - # remove nginx symlinks - sudo rm -f /etc/nginx/sites-enabled/btcpay_ssl.conf - sudo rm -f /etc/nginx/sites-enabled/btcpay_tor.conf - sudo rm -f /etc/nginx/sites-enabled/btcpay_tor_ssl.conf - sudo rm -f /etc/nginx/sites-available/btcpay_ssl.conf - sudo rm -f /etc/nginx/sites-available/btcpay_tor.conf - sudo rm -f /etc/nginx/sites-available/btcpay_tor_ssl.conf - sudo nginx -t - sudo systemctl reload nginx - # nuke user - sudo userdel -rf btcpay 2>/dev/null - if [ ${deleteData} -eq 1 ]; then - echo "# deleting data" - sudo rm -R /mnt/hdd/app-data/.btcpayserver/ - else - echo "# keeping data" - fi - echo "# OK BTCPayServer removed." else - echo "# BTCPayServer is not installed." + echo "# The btcpayserver.service is not installed." fi + + # nbxplorer + sudo systemctl stop nbxplorer + sudo systemctl disable nbxplorer + sudo rm /etc/systemd/system/nbxplorer.service + # clear dotnet cache + /home/btcpay/dotnet/dotnet nuget locals all --clear + sudo rm -rf /tmp/NuGetScratch + # remove dotnet + sudo rm -rf /usr/share/dotnet + # clear app config (not user data) + sudo rm -f /home/btcpay/.nbxplorer/Main/settings.config + sudo rm -f /home/btcpay/.btcpayserver/Main/settings.config + # clear nginx config (from btcpaysetdomain) + sudo rm -f /etc/nginx/sites-enabled/btcpayserver + sudo rm -f /etc/nginx/sites-available/btcpayserver + # remove nginx symlinks + sudo rm -f /etc/nginx/sites-enabled/btcpay_ssl.conf + sudo rm -f /etc/nginx/sites-enabled/btcpay_tor.conf + sudo rm -f /etc/nginx/sites-enabled/btcpay_tor_ssl.conf + sudo rm -f /etc/nginx/sites-available/btcpay_ssl.conf + sudo rm -f /etc/nginx/sites-available/btcpay_tor.conf + sudo rm -f /etc/nginx/sites-available/btcpay_tor_ssl.conf + sudo nginx -t + sudo systemctl reload nginx + # nuke user + sudo userdel -rf btcpay 2>/dev/null + if [ ${deleteData} -eq 1 ]; then + echo "# deleting data" + sudo rm -R /mnt/hdd/app-data/.btcpayserver/ + else + echo "# keeping data" + fi + echo "# OK BTCPayServer removed." + + # needed for API/WebUI as signal that install ran thru + echo "result='OK'" + exit 0 fi if [ "$1" = "update" ]; then - echo "# Update NBXplorer" - cd /home/btcpay || exit 1 - cd NBXplorer || exit 1 - # fetch latest master - if [ "$(sudo -u btcpay git fetch 2>&1 | grep -c "Please tell me who you are")" -gt 0 ]; then - sudo -u btcpay git config user.email "you@example.com" - sudo -u btcpay git config user.name "Your Name" - fi - sudo -u btcpay git fetch - # unset $1 - set -- - UPSTREAM=${1:-'@{u}'} - LOCAL=$(git rev-parse @) - REMOTE=$(git rev-parse "$UPSTREAM") - - if [ $LOCAL = $REMOTE ]; then - TAG=$(git tag | sort -V | tail -1) - echo "# Up-to-date on version $TAG" - else - echo "# Pulling latest changes..." - sudo -u btcpay git pull -p - TAG=$(git tag | sort -V | tail -1) - echo "# Reset to the latest release tag: $TAG" - sudo -u btcpay git reset --hard $TAG - sudo -u btcpay /home/admin/config.scripts/blitz.git-verify.sh \ - "${PGPsigner}" "${PGPpubkeyLink}" "${PGPpubkeyFingerprint}" || exit 1 - echo "# Build NBXplorer ..." - # from the build.sh with path - sudo systemctl stop nbxplorer - sudo -u btcpay /home/btcpay/dotnet/dotnet build -c Release NBXplorer/NBXplorer.csproj - - # whitelist localhost in bitcoind - if ! sudo grep -Eq "^whitelist=127.0.0.1" /mnt/hdd/bitcoin/bitcoin.conf;then - echo "whitelist=127.0.0.1" | sudo tee -a /mnt/hdd/bitcoin/bitcoin.conf - echo "# Restarting bitcoind" - sudo systemctl restart bitcoind - fi - - sudo systemctl start nbxplorer - echo "# Updated NBXplorer to $TAG" - fi +## don't update NBXplorer until https://github.com/rootzoll/raspiblitz/issues/3055 is solved +# echo "# Update NBXplorer" +# cd /home/btcpay || exit 1 +# cd NBXplorer || exit 1 +# # fetch latest master +# if [ "$(sudo -u btcpay git fetch 2>&1 | grep -c "Please tell me who you are")" -gt 0 ]; then +# sudo -u btcpay git config user.email "you@example.com" +# sudo -u btcpay git config user.name "Your Name" +# fi +# sudo -u btcpay git fetch +# # unset $1 +# set -- +# UPSTREAM=${1:-'@{u}'} +# LOCAL=$(git rev-parse @) +# REMOTE=$(git rev-parse "$UPSTREAM") +# +# if [ $LOCAL = $REMOTE ]; then +# TAG=$(git tag | sort -V | tail -1) +# echo "# Up-to-date on version $TAG" +# else +# echo "# Pulling latest changes..." +# sudo -u btcpay git pull -p +# TAG=$(git tag | sort -V | tail -1) +# echo "# Reset to the latest release tag: $TAG" +# sudo -u btcpay git reset --hard $TAG +# sudo -u btcpay /home/admin/config.scripts/blitz.git-verify.sh \ +# "${PGPsigner}" "${PGPpubkeyLink}" "${PGPpubkeyFingerprint}" || exit 1 +# echo "# Build NBXplorer ..." +# # from the build.sh with path +# sudo systemctl stop nbxplorer +# sudo -u btcpay /home/btcpay/dotnet/dotnet build -c Release NBXplorer/NBXplorer.csproj +# +# # whitelist localhost in bitcoind +# if ! sudo grep -Eq "^whitelist=127.0.0.1" /mnt/hdd/bitcoin/bitcoin.conf;then +# echo "whitelist=127.0.0.1" | sudo tee -a /mnt/hdd/bitcoin/bitcoin.conf +# echo "# Restarting bitcoind" +# sudo systemctl restart bitcoind +# fi +# +# sudo systemctl start nbxplorer +# echo "# Updated NBXplorer to $TAG" +# fi echo "# Update BTCPayServer" cd /home/btcpay || exit 1 @@ -637,7 +655,7 @@ if [ "$1" = "update" ]; then UPSTREAM=${1:-'@{u}'} LOCAL=$(git rev-parse @) REMOTE=$(git rev-parse "$UPSTREAM") - + if [ $LOCAL = $REMOTE ]; then TAG=$(git tag | grep v1 | sort -V | tail -1) echo "# Up-to-date on version $TAG"