diff --git a/CHANGES.md b/CHANGES.md index f001432e0..1932c9917 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -4,14 +4,14 @@ - New: BTCPay Server PostgreSQL database backup and restore options [details](https://github.com/raspiblitz/raspiblitz/pull/4409) - New: Reset option for the self-signed TLS certificate [details](https://github.com/raspiblitz/raspiblitz/pull/4412) - New on WebUI: Electrum Connect Screen -- Update: RaspberryOS base image 2023-12-05 (Debian 12 Bookworm) +- Update: RaspberryOS arm64 base image 2024-03-15 (Debian 12 Bookworm) [details](https://downloads.raspberrypi.com/raspios_full_arm64/release_notes.txt) - Update: amd64 base image: debian-12.5.0-amd64-netinst.iso - Update: Bitcoin Core v26.0 [details](https://bitcoincore.org/en/releases/26.0/) - Update: LND v0.17.3-beta [details](https://github.com/lightningnetwork/lnd/releases/tag/v0.17.3-beta) -- Update: Core Lightning v23.11.2 [details](https://github.com/ElementsProject/lightning/releases/tag/v23.11.2) +- Update: Core Lightning v24.02.1 [details](https://github.com/ElementsProject/lightning/releases/tag/v24.02.1) - Update: C-lightningREST v0.10.7 [details](https://github.com/Ride-The-Lightning/c-lightning-REST/releases/tag/v0.10.7) -- Update: Electrum Server in Rust (electrs) v0.10.2 [details](https://github.com/romanz/electrs/blob/master/RELEASE-NOTES.md#0102-dec-31-2023) -- Update: Fulcrum Electrum server v1.9.8 (CLI install script) [details](https://github.com/cculianu/Fulcrum/releases/tag/v1.9.8) +- Update: Electrum Server in Rust (electrs) v0.10.4 [details](https://github.com/romanz/electrs/blob/master/RELEASE-NOTES.md#0104-mar-15-2024) +- Update: Fulcrum Electrum server v1.10.0 (CLI install script) [details](https://github.com/cculianu/Fulcrum/releases/tag/v1.10.0) - Update: BTC-RPC-Explorer v3.4.0 [details](https://github.com/janoside/btc-rpc-explorer/blob/master/CHANGELOG.md#v340) - Update: JoinMarket v0.9.11 [details](https://github.com/JoinMarket-Org/joinmarket-clientserver/releases/tag/v0.9.11) - Update: Jam (JoinMarket Web UI) v0.2.0 [details](https://github.com/joinmarket-webui/jam/releases/tag/v0.2.0) @@ -24,9 +24,10 @@ - Update: LNbits 0.11.3 [details](https://github.com/lnbits/lnbits/releases/tag/0.11.3) - Update: Circuitbreaker v0.5.1 [details](https://github.com/lightningequipment/circuitbreaker/blob/master/README.md) - Experimental: LNDK (runs on top of LND to help forward onion messages (BOLT 12)) [details](https://github.com/lndk-org/lndk) -- Fix: PyBlock 2.2.3 [details](https://github.com/curly60e/pyblock/blob/master/README.md) +- Fix: PyBlock 2.2.3 [details](https://github.com/curly60e/pyblock/blob/master/README.md) - Refactor: Wifi config with file on sd card - Deactivated for Repair: LNDg [details](https://github.com/raspiblitz/raspiblitz/issues/4418) +- Deactivated for Repair: lnproxy [details](https://github.com/raspiblitz/raspiblitz/issues/4122) - Deprecated: Homer Dashboard (remove from SSH menus, config script will stay with possible future removal) - Deprecated: Bitcoinminds (remove from SSH menus, config script will stay with possible future removal) - Remove: ItchySats (unmaintained project / in consent with dev) diff --git a/FAQ.dev.md b/FAQ.dev.md index cdce96fbe..d98d35e05 100644 --- a/FAQ.dev.md +++ b/FAQ.dev.md @@ -218,6 +218,10 @@ Now to sync your branch namend BRANCH on your forked repo with your RaspiBlitz, So your workflow can go like this: You write code on your local computer. Commit to your local repo, push it to your forked repo and use the sync-script above to get the code to your RaspiBlitz. +### How can I manual provision an image with updated code? + +To boot an already build sd card image with your updated raspiblitz code base you can use the `stop` file flag. This will make the `_bootstrap.sh` script stop basically before making any setup or recovery changes to the system. You can SSH in an use the `github` command to update the raspiblitz code and then use `release` command. To set the `stop` file flag. Insert a fresh written sd card into your PC and on the root of `bootfs` drive with a file manager place a empty file simply called `stop` (with no file extension). + ### How to add an app to the RaspiBlitz? To add your app you can fork the raspiblitz repo, follow the `/home.admin/config.scripts/bonus.template.sh` script [see code](https://github.com/raspiblitz/raspiblitz/blob/dev/home.admin/config.scripts/bonus.template.sh), copy/adapt it, test it on your RaspiBlitz and make a PR back to the main repo. diff --git a/build_sdcard.sh b/build_sdcard.sh index 0be62066e..5016305a2 100644 --- a/build_sdcard.sh +++ b/build_sdcard.sh @@ -2,8 +2,8 @@ ######################################################################### # Build your SD card image based on: 2023-12-05-raspios-bookworm-arm64.img.xz -# https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2023-12-06/ -# SHA256: 5c54f0572d61e443a32dfa80aa8d918049814bfc70ab977f2d545eef45f1658e +# https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2024-03-15/ +# SHA256: 7e53a46aab92051d523d7283c080532bebb52ce86758629bf1951be9b4b0560f # also change in: raspiblitz/ci/arm64-rpi/build.arm64-rpi.pkr.hcl # PGP fingerprint: 8738CD6B956F460C - to check signature: # curl -O https://www.raspberrypi.org/raspberrypi_downloads.gpg.key && gpg --import ./raspberrypi_downloads.gpg.key && gpg --verify *.sig diff --git a/ci/arm64-rpi/build.arm64-rpi.pkr.hcl b/ci/arm64-rpi/build.arm64-rpi.pkr.hcl index 96ab3a85d..5726087d3 100644 --- a/ci/arm64-rpi/build.arm64-rpi.pkr.hcl +++ b/ci/arm64-rpi/build.arm64-rpi.pkr.hcl @@ -1,8 +1,8 @@ variable "pack" { default = "lean" } variable "github_user" { default = "raspiblitz" } variable "branch" { default = "dev" } -variable "image_link" { default = "https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2023-12-06/2023-12-05-raspios-bookworm-arm64.img.xz" } -variable "image_checksum" { default = "5c54f0572d61e443a32dfa80aa8d918049814bfc70ab977f2d545eef45f1658e" } +variable "image_link" { default = "https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2024-03-15/2024-03-15-raspios-bookworm-arm64.img.xz" } +variable "image_checksum" { default = "7e53a46aab92051d523d7283c080532bebb52ce86758629bf1951be9b4b0560f" } source "arm" "raspiblitz-arm64-rpi" { file_checksum_type = "sha256" diff --git a/ci/arm64-rpi/build.raspiblitz.sh b/ci/arm64-rpi/build.raspiblitz.sh index 2605f01f0..33008edfd 100644 --- a/ci/arm64-rpi/build.raspiblitz.sh +++ b/ci/arm64-rpi/build.raspiblitz.sh @@ -5,12 +5,14 @@ wget https://raw.githubusercontent.com/${github_user}/raspiblitz/${branch}/build if [ "${pack}" = "fatpack" ]; then fatpack="1" + display="lcd" else fatpack="0" + display="headless" fi # make /dev/shm world writable for qemu sudo chmod 777 /dev/shm echo 'Build RaspiBlitz ...' -bash build_sdcard.sh -f ${fatpack} -u ${github_user} -b ${branch} -t false -w off -i false +bash build_sdcard.sh -f ${fatpack} -u ${github_user} -b ${branch} -t false -w off -i false -d ${display} diff --git a/ci/packer.sh b/ci/packer.sh index fcfe4e609..88dcab06d 100644 --- a/ci/packer.sh +++ b/ci/packer.sh @@ -126,15 +126,15 @@ echo "# Date: ${dateString}" if [ "${ARCH}" == "arm" ] && [ "${TYPE}" == "min" ]; then PACKERTARGET="arm64-rpi-lean-image" PACKERBUILDPATH="./raspiblitz/ci/arm64-rpi/packer-builder-arm/raspiblitz-arm64-rpi-lean.img" - PACKERFINALFILE="raspiblitz-min-${codeVersion}-${dateString}.img" + PACKERFINALFILE="raspiblitz-min-v${codeVersion}-${dateString}.img" elif [ "${ARCH}" == "arm" ] && [ "${TYPE}" == "fat" ]; then PACKERTARGET="arm64-rpi-fatpack-image" PACKERBUILDPATH="./raspiblitz/ci/arm64-rpi/packer-builder-arm/TODO" #TODO - PACKERFINALFILE="raspiblitz-fat-${codeVersion}-${dateString}.img" + PACKERFINALFILE="raspiblitz-fat-v${codeVersion}-${dateString}.img" elif [ "${ARCH}" == "x86" ] && [ "${TYPE}" == "min" ]; then PACKERTARGET="amd64-lean-server-legacyboot-image" PACKERBUILDPATH="./raspiblitz/ci/amd64/builds/raspiblitz-amd64-debian-lean-qemu/raspiblitz-amd64-debian-lean.qcow2" - PACKERFINALFILE="raspiblitz-amd64-min-${codeVersion}-${dateString}.qcow2" + PACKERFINALFILE="raspiblitz-amd64-min-v${codeVersion}-${dateString}.qcow2" else echo "error='$ARCH-$TYPE not supported'" exit 1 diff --git a/home.admin/00infoLCD.sh b/home.admin/00infoLCD.sh index dca4e89f9..85ecb0fcf 100755 --- a/home.admin/00infoLCD.sh +++ b/home.admin/00infoLCD.sh @@ -86,7 +86,6 @@ while : # get config info if already available (with state value) source ${infoFile} - source <(/home/admin/_cache.sh get state message) configExists=$(ls "${configFile}" 2>/dev/null | grep -c '.conf') if [ ${configExists} -eq 1 ]; then diff --git a/home.admin/00raspiblitz.sh b/home.admin/00raspiblitz.sh index 9e26526ae..fa47a2bcc 100755 --- a/home.admin/00raspiblitz.sh +++ b/home.admin/00raspiblitz.sh @@ -13,7 +13,6 @@ source /mnt/hdd/raspiblitz.conf 2>/dev/null # INFOFILE - state data from bootstrap infoFile="/home/admin/raspiblitz.info" source ${infoFile} -source <(/home/admin/_cache.sh get state message) # check that basic system phase/state information is available if [ "${setupPhase}" == "" ] || [ "${state}" == "" ]; then diff --git a/home.admin/_background.sh b/home.admin/_background.sh index c1b7970d7..9def40a1b 100755 --- a/home.admin/_background.sh +++ b/home.admin/_background.sh @@ -43,7 +43,6 @@ do # source info & config file fresh on every loop source ${infoFile} 2>/dev/null source ${configFile} 2>/dev/null - source <(/home/admin/_cache.sh get state setupPhase) #################################################### # SKIP BACKGROUND TASK LOOP ON CERTAIN SYSTEM STATES diff --git a/home.admin/_bootstrap.sh b/home.admin/_bootstrap.sh index a50de0558..f0673561c 100755 --- a/home.admin/_bootstrap.sh +++ b/home.admin/_bootstrap.sh @@ -90,15 +90,16 @@ ln_cl_signet_sync_initial_done=0 source ${infoFile} 2>/dev/null # write fresh raspiblitz.info file -echo "baseimage=${baseimage}" > $infoFile +echo "state=starting" > $infoFile +echo "message=starting" >> $infoFile +echo "setupPhase=${setupPhase}" >> $infoFile +echo "setupStep=${setupStep}" >> $infoFile +echo "baseimage=${baseimage}" >> $infoFile echo "cpu=${cpu}" >> $infoFile echo "blitzapi=${blitzapi}" >> $infoFile echo "displayClass=${displayClass}" >> $infoFile echo "displayType=${displayType}" >> $infoFile -echo "setupPhase=${setupPhase}" >> $infoFile -echo "setupStep=${setupStep}" >> $infoFile echo "fsexpanded=${fsexpanded}" >> $infoFile -echo "state=starting" >> $infoFile echo "btc_mainnet_sync_initial_done=${btc_mainnet_sync_initial_done}" >> $infoFile echo "btc_testnet_sync_initial_done=${btc_testnet_sync_initial_done}" >> $infoFile echo "btc_signet_sync_initial_done=${btc_signet_sync_initial_done}" >> $infoFile @@ -114,6 +115,22 @@ chmod 664 ${infoFile} # write content of raspiblitz.info to logs cat $infoFile >> $logFile +###################################### +# STOP file flag - for manual provision + +# when a file 'stop' is on the sd card bootfs partition root - stop for manual provision +flagExists=$(ls /boot/firmware/stop | grep -c 'stop') +if [ "${flagExists}" == "1" ]; then + # remove flag + rm /boot/firmware/stop + # set state info + /home/admin/_cache.sh set state "stop" + /home/admin/_cache.sh set message "stopped for manual provision" + # log info + echo "INFO: 'bootstrap stopped - run release after manual provison'" >> ${logFile} + exit 0 +fi + ######################### # INIT RaspiBlitz Cache ######################### @@ -155,16 +172,6 @@ source ${configFile} 2>/dev/null ###################################### # CHECK SD CARD STATE -# when a file 'stop' is on the sd card bootfs partition root - stop for manual provision -flagExists=$(ls /boot/firmware/stop | grep -c 'stop') -if [ "${flagExists}" == "1" ]; then - # remove flag - rm /boot/firmware/stop - # log info - echo "INFO: 'bootstrap stopped - run release after manual provison'" >> ${logFile} - exit 0 -fi - # wifi config by file on sd card wifiFileExists=$(ls /boot/firmware/wifi | grep -c 'wifi') wpaFileExists=$(ls /boot/firmware/wpa_supplicant.conf | grep -c 'wpa_supplicant.conf') diff --git a/home.admin/_cache.sh b/home.admin/_cache.sh index 25e115291..7547afe72 100755 --- a/home.admin/_cache.sh +++ b/home.admin/_cache.sh @@ -148,6 +148,23 @@ elif [ "$1" = "set" ] || [ "$1" = "init" ]; then exit 1 fi + # update certain values also in raspiblitz.info + if [ "${keystr}" = "state" ]; then + # change value in raspiblitz.info + sudo sed -i "s/^state=.*/state='${valuestr}'/g" ${infoFile} + fi + if [ "${keystr}" = "message" ]; then + # change value in raspiblitz.info + sudo sed -i "s/^message=.*/message='${valuestr}'/g" ${infoFile} + fi + if [ "${keystr}" = "setupPhase" ]; then + # change value in raspiblitz.info + sudo sed -i "s/^setupPhase=.*/setupPhase='${valuestr}'/g" ${infoFile} + fi + if [ "${keystr}" = "setupStep" ]; then + # change value in raspiblitz.info + sudo sed -i "s/^setupStep=.*/setupStep='${valuestr}'/g" ${infoFile} + fi NX="" if [ "$1" = "init" ]; then diff --git a/home.admin/_provision_.sh b/home.admin/_provision_.sh index 81ace2945..71b2d20cc 100755 --- a/home.admin/_provision_.sh +++ b/home.admin/_provision_.sh @@ -183,21 +183,25 @@ sed -i "s/^setupStep=.*/setupStep=100/g" /home/admin/raspiblitz.info ########################## # PROVISIONING SERVICES ########################## -/home/admin/_cache.sh set message "Installing Services" + +echo "### CHECKING BLITZ-API/FRONT STATUS ###" >> ${logFile} +blitzApiInstalled=$(systemctl status blitzapi | grep -c "loaded") +echo "# blitzapi(${blitzapi}) blitzApiInstalled(${blitzApiInstalled})" +if [ "${blitzapi}" != "on" ] && [ ${blitzApiInstalled} -gt 0 ]; then + /home/admin/_cache.sh set message "Deactivated API/WebUI (as in your config) - please use SSH for further setup" + sleep 10 +else + /home/admin/_cache.sh set message "Installing Services" +fi # BLITZ WEB SERVICE echo "Provisioning BLITZ WEB SERVICE - run config script" >> ${logFile} /home/admin/config.scripts/blitz.web.sh https-on >> ${logFile} 2>&1 -echo "### CHECKING BLITZ-API/FRONT STATUS ###" >> ${logFile} -blitzApiInstalled=$(systemctl status blitzapi | grep -c "loaded") -echo "# blitzapi(${blitzapi}) blitzApiInstalled(${blitzApiInstalled})" - # deinstall when not explizit 'on' when blitzapi is installed by fatpack # https://github.com/raspiblitz/raspiblitz/issues/4171#issuecomment-1728302628 if [ "${blitzapi}" != "on" ] && [ ${blitzApiInstalled} -gt 0 ]; then echo "blitz_api directory exists & blitzapi is not 'on' - deactivating blitz-api" >> ${logFile} - /home/admin/_cache.sh set message "Deactivate API/WebUI" /home/admin/config.scripts/blitz.web.api.sh off >> ${logFile} 2>&1 /home/admin/config.scripts/blitz.web.ui.sh off >> ${logFile} 2>&1 fi diff --git a/home.admin/_version.info b/home.admin/_version.info index a87d4c5f4..968c2e000 100644 --- a/home.admin/_version.info +++ b/home.admin/_version.info @@ -1,3 +1,3 @@ # RaspiBlitz Version - always [major].[main].[sub] (sub can be a string like '2rc1') -codeVersion="1.11.0rc4" +codeVersion="1.11.0rc5" # keep last line with comment ---> IF YOU HAVE A NEW VERSION BRANCH > EDIT ALSO build_sdcard.sh \ No newline at end of file diff --git a/home.admin/config.scripts/bonus.electrs.sh b/home.admin/config.scripts/bonus.electrs.sh index 9f77473f2..27fd799e4 100755 --- a/home.admin/config.scripts/bonus.electrs.sh +++ b/home.admin/config.scripts/bonus.electrs.sh @@ -1,17 +1,17 @@ #!/bin/bash # https://github.com/romanz/electrs/releases -ELECTRSVERSION="v0.10.2" +ELECTRSVERSION="v0.10.4" # command info if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then - echo "config script to switch the Electrum Rust Server on or off" - echo "bonus.electrs.sh status -> dont call in loops" - echo "bonus.electrs.sh status-sync" - echo "bonus.electrs.sh [on|off|menu|update]" - echo "bonus.electrs.sh [install|uninstall]" - echo "installs the version $ELECTRSVERSION" - exit 1 + echo "config script to switch the Electrum Rust Server on or off" + echo "bonus.electrs.sh status -> dont call in loops" + echo "bonus.electrs.sh status-sync" + echo "bonus.electrs.sh [on|off|menu|update]" + echo "bonus.electrs.sh [install|uninstall]" + echo "installs the version $ELECTRSVERSION" + exit 1 fi PGPsigner="romanz" @@ -55,7 +55,10 @@ if [ "$1" = "status" ]; then localPortRunning=$(sudo netstat -an | grep -c '0.0.0.0:50001') echo "localTCPPortActive=${localPortRunning}" - publicPortRunning=$(nc -z -w6 ${publicip} 50001 2>/dev/null; echo $?) + publicPortRunning=$( + nc -z -w6 ${publicip} 50001 2>/dev/null + echo $? + ) if [ "${publicPortRunning}" == "0" ]; then # OK looks good - but just means that something is answering on that port echo "publicTCPPortAnswering=1" @@ -66,7 +69,10 @@ if [ "$1" = "status" ]; then echo "portSSL='50002'" localPortRunning=$(sudo netstat -an | grep -c '0.0.0.0:50002') echo "localHTTPPortActive=${localPortRunning}" - publicPortRunning=$(nc -z -w6 ${publicip} 50002 2>/dev/null; echo $?) + publicPortRunning=$( + nc -z -w6 ${publicip} 50002 2>/dev/null + echo $? + ) if [ "${publicPortRunning}" == "0" ]; then # OK looks good - but just means that something is answering on that port echo "publicHTTPPortAnswering=1" @@ -177,7 +183,7 @@ This can take multiple hours. fi if [ ${nginxTest} -eq 0 ]; then - dialog --title "Testing nginx.conf has failed" --msgbox " + dialog --title "Testing nginx.conf has failed" --msgbox " Nginx is in a failed state. Will attempt to fix. Try connecting via port 50002 or Tor again once finished. Check 'sudo nginx -t' for a detailed error message. @@ -194,17 +200,17 @@ Check 'sudo nginx -t' for a detailed error message. fi # Options (available without TOR) - OPTIONS=( \ - CONNECT "How to Connect" \ - REINDEX "Delete&Rebuild Index" \ - STATUS "ElectRS Status Info" - ) + OPTIONS=( + CONNECT "How to Connect" + REINDEX "Delete&Rebuild Index" + STATUS "ElectRS Status Info" + ) CHOICE=$(whiptail --clear --title "Electrum Rust Server" --menu "menu" 10 50 4 "${OPTIONS[@]}" 2>&1 >/dev/tty) clear case $CHOICE in - CONNECT) + CONNECT) echo "######## How to Connect to Electrum Rust Server #######" echo echo "Install the Electrum Wallet App on your laptop from:" @@ -235,13 +241,13 @@ Check 'sudo nginx -t' for a detailed error message. read key sudo /home/admin/config.scripts/blitz.display.sh hide ;; - STATUS) + STATUS) sudo /home/admin/config.scripts/bonus.electrs.sh status echo echo "Press ENTER to get back to main menu." read key ;; - REINDEX) + REINDEX) echo "######## Delete/Rebuild Index ########" echo "# stopping service" sudo systemctl stop electrs @@ -264,15 +270,15 @@ fi echo "# Making sure services are not running" sudo systemctl stop electrs 2>/dev/null -# uninstall +# install if [ "$1" = "install" ]; then echo "# INSTALL ELECTRS" if id "electrs" &>/dev/null; then - echo "# user electrs exists already (codebase is installed)" + echo "# user electrs exists already (codebase is installed)" else echo "# Installing codebase" - + echo echo "# Creating the electrs user" echo @@ -284,7 +290,7 @@ if [ "$1" = "install" ]; then echo # https://github.com/romanz/electrs/blob/master/doc/usage.md#build-dependencies sudo -u electrs curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sudo -u electrs sh -s -- --default-toolchain none -y - sudo apt install -y clang cmake build-essential # for building 'rust-rocksdb' + sudo apt install -y clang cmake build-essential # for building 'rust-rocksdb' echo echo "# Downloading and building electrs $ELECTRSVERSION. This will take ~40 minutes" @@ -296,18 +302,11 @@ if [ "$1" = "install" ]; then # verify sudo -u electrs /home/admin/config.scripts/blitz.git-verify.sh \ - "${PGPsigner}" "${PGPpubkeyLink}" "${PGPpubkeyFingerprint}" || exit 1 + "${PGPsigner}" "${PGPpubkeyLink}" "${PGPpubkeyFingerprint}" || exit 1 # build sudo -u electrs /home/electrs/.cargo/bin/cargo build --locked --release || exit 1 - - echo - echo "# The electrs database will be built in /mnt/hdd/app-storage/electrs/db. Takes ~18 hours and ~50Gb diskspace" - echo - sudo mkdir /mnt/hdd/app-storage/electrs 2>/dev/null - sudo chown -R electrs:electrs /mnt/hdd/app-storage/electrs fi - exit 0 fi @@ -315,6 +314,16 @@ fi if [ "$1" = "1" ] || [ "$1" = "on" ]; then echo "# ACTIVATING ELECTRS" + # check and create storage dir + if ! sudo ls /mnt/hdd/app-storage/electrs 2>/dev/null; then + sudo mkdir /mnt/hdd/app-storage/electrs + echo + echo "# The electrs database will be built in /mnt/hdd/app-storage/electrs/db. Takes ~18 hours and ~50Gb diskspace" + echo + fi + # always fix user id + sudo chown -R electrs:electrs /mnt/hdd/app-storage/electrs + isInstalled=$(sudo ls /etc/systemd/system/electrs.service 2>/dev/null | grep -c 'electrs.service') if [ ${isInstalled} -eq 0 ]; then @@ -365,12 +374,11 @@ server_banner = \"Welcome to electrs $ELECTRSVERSION - the Electrum Rust Server echo echo "# Checking for config.toml" echo - if [ ! -f "/home/electrs/.electrs/config.toml" ] - then - echo "Failed to create config.toml" - exit 1 - else - echo "OK" + if [ ! -f "/home/electrs/.electrs/config.toml" ]; then + echo "Failed to create config.toml" + exit 1 + else + echo "OK" fi echo @@ -378,14 +386,14 @@ server_banner = \"Welcome to electrs $ELECTRSVERSION - the Electrum Rust Server echo isElectrs=$(sudo cat /etc/nginx/nginx.conf 2>/dev/null | grep -c 'upstream electrs') if [ ${isElectrs} -gt 0 ]; then - echo "electrs is already configured with Nginx. To edit manually run \`sudo nano /etc/nginx/nginx.conf\`" + echo "electrs is already configured with Nginx. To edit manually run \`sudo nano /etc/nginx/nginx.conf\`" elif [ ${isElectrs} -eq 0 ]; then - isStream=$(sudo cat /etc/nginx/nginx.conf 2>/dev/null | grep -c 'stream {') - if [ ${isStream} -eq 0 ]; then + isStream=$(sudo cat /etc/nginx/nginx.conf 2>/dev/null | grep -c 'stream {') + if [ ${isStream} -eq 0 ]; then - echo " + echo " stream { upstream electrs { server 127.0.0.1:50001; @@ -402,9 +410,9 @@ stream { } }" | sudo tee -a /etc/nginx/nginx.conf - elif [ ${isStream} -eq 1 ]; then - sudo truncate -s-2 /etc/nginx/nginx.conf - echo " + elif [ ${isStream} -eq 1 ]; then + sudo truncate -s-2 /etc/nginx/nginx.conf + echo " upstream electrs { server 127.0.0.1:50001; } @@ -420,10 +428,10 @@ stream { } }" | sudo tee -a /etc/nginx/nginx.conf - elif [ ${isStream} -gt 1 ]; then - echo " Too many \`stream\` commands in nginx.conf. Please edit manually: \`sudo nano /etc/nginx/nginx.conf\` and retry" - exit 1 - fi + elif [ ${isStream} -gt 1 ]; then + echo " Too many \`stream\` commands in nginx.conf. Please edit manually: \`sudo nano /etc/nginx/nginx.conf\` and retry" + exit 1 + fi fi echo @@ -477,7 +485,7 @@ WantedBy=multi-user.target fi # whitelist downloading to localhost from bitcoind - if ! sudo grep -Eq "^whitelist=download@127.0.0.1" /mnt/hdd/bitcoin/bitcoin.conf;then + if ! sudo grep -Eq "^whitelist=download@127.0.0.1" /mnt/hdd/bitcoin/bitcoin.conf; then echo "whitelist=download@127.0.0.1" | sudo tee -a /mnt/hdd/bitcoin/bitcoin.conf bitcoindRestart=yes fi @@ -569,7 +577,7 @@ if [ "$1" = "update" ]; then sudo -u electrs git fetch localVersion=$(/home/electrs/electrs/target/release/electrs --version) - updateVersion=$(curl --header "X-GitHub-Api-Version:2022-11-28" -s https://api.github.com/repos/romanz/electrs/releases/latest|grep tag_name|head -1|cut -d '"' -f4) + updateVersion=$(curl --header "X-GitHub-Api-Version:2022-11-28" -s https://api.github.com/repos/romanz/electrs/releases/latest | grep tag_name | head -1 | cut -d '"' -f4) if [ $localVersion = $updateVersion ]; then echo "# Up-to-date on version $localVersion" @@ -580,11 +588,11 @@ if [ "$1" = "update" ]; then sudo -u electrs git reset --hard $updateVersion sudo -u electrs /home/admin/config.scripts/blitz.git-verify.sh \ - "${PGPsigner}" "${PGPpubkeyLink}" "${PGPpubkeyFingerprint}" || exit 1 + "${PGPsigner}" "${PGPpubkeyLink}" "${PGPpubkeyFingerprint}" || exit 1 echo "# Installing build dependencies" sudo -u electrs curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sudo -u electrs sh -s -- --default-toolchain none -y - sudo apt install -y clang cmake build-essential # for building 'rust-rocksdb' + sudo apt install -y clang cmake build-essential # for building 'rust-rocksdb' echo echo "# Build Electrs ..." diff --git a/home.admin/config.scripts/bonus.fulcrum.sh b/home.admin/config.scripts/bonus.fulcrum.sh index ea1d8b065..9939fcfbc 100644 --- a/home.admin/config.scripts/bonus.fulcrum.sh +++ b/home.admin/config.scripts/bonus.fulcrum.sh @@ -1,7 +1,7 @@ #!/bin/bash # https://github.com/cculianu/Fulcrum/releases -fulcrumVersion="1.9.8" +fulcrumVersion="1.10.0" portTCP="50021" portSSL="50022" diff --git a/home.admin/config.scripts/bonus.lnproxy.sh b/home.admin/config.scripts/bonus.lnproxy.sh index 01f50f003..74f80fc25 100644 --- a/home.admin/config.scripts/bonus.lnproxy.sh +++ b/home.admin/config.scripts/bonus.lnproxy.sh @@ -1,10 +1,14 @@ #!/bin/bash +# Deactivated - see https://github.com/raspiblitz/raspiblitz/issues/4122 +# Needs comitted maintainer or will be removed in future versions + # https://github.com/lnproxy/lnproxy/commits/main LNPROXYVERSION="c1031bbe507623f8f196ff83aa5ea504cca05143" # command info if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then + echo "DEACTIVATED FOR REPAIR - see #4122" echo "config script to install or uninstall the lnproxy server" echo "bonus.lnproxy.sh [on|off|menu]" echo "installs the version $LNPROXYVERSION by default" @@ -83,7 +87,18 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then # build sudo -u lnproxy /usr/local/go/bin/go get lnproxy + if [ $? -ne 0 ]; then + echo "# FAIL -> go get lnproxy" + sudo userdel -rf lnproxy 2>/dev/null + exit 1 + fi + sudo -u lnproxy /usr/local/go/bin/go build + if [ $? -ne 0 ]; then + echo "# FAIL -> go build" + sudo userdel -rf lnproxy 2>/dev/null + exit 1 + fi # manual start (in tmux) # sudo -u lnproxy /home/lnproxy/lnproxy/lnproxy -lnd-cert /home/lnproxy/.lnd/tls.cert /home/lnproxy/lnproxy.macaroon diff --git a/home.admin/config.scripts/cl.install.sh b/home.admin/config.scripts/cl.install.sh index bd6cca2bc..2084ef0b6 100644 --- a/home.admin/config.scripts/cl.install.sh +++ b/home.admin/config.scripts/cl.install.sh @@ -2,7 +2,7 @@ # https://lightning.readthedocs.io/ # https://github.com/ElementsProject/lightning/releases -CLVERSION="v23.11.2" +CLVERSION="v24.02.1" # install the latest master by using the last commit id # https://github.com/ElementsProject/lightning/commit/master diff --git a/home.admin/setup.scripts/controlSetupDialog.sh b/home.admin/setup.scripts/controlSetupDialog.sh index c42f4b879..bbd292e98 100755 --- a/home.admin/setup.scripts/controlSetupDialog.sh +++ b/home.admin/setup.scripts/controlSetupDialog.sh @@ -17,7 +17,7 @@ echo "# RASPIBLITZ SETUP STATE" > $SETUPFILE sudo chown admin:admin $SETUPFILE sudo chmod 777 $SETUPFILE -source <(/home/admin/_cache.sh get setupPhase dnsworking) +source <(/home/admin/_cache.sh get dnsworking) # remember original setupphase orgSetupPhase="${setupPhase}" @@ -90,7 +90,8 @@ if [ "${setupPhase}" == "migration" ]; then fi -source <(/home/admin/_cache.sh get setupPhase) +# fresh import setup values +source /home/admin/raspiblitz.info ############################################ # DEFAULT: Basic Setup menu