mirror of
https://github.com/rootzoll/raspiblitz.git
synced 2025-02-28 16:58:03 +01:00
fulcrum update to v1.9.6, simple cli update option, new filenames (#4217)
This commit is contained in:
parent
3ca368fbbe
commit
041574a1ee
1 changed files with 80 additions and 50 deletions
|
@ -1,17 +1,69 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# https://github.com/cculianu/Fulcrum/releases
|
# https://github.com/cculianu/Fulcrum/releases
|
||||||
fulcrumVersion="1.9.1"
|
fulcrumVersion="1.9.6"
|
||||||
|
|
||||||
# command info
|
# command info
|
||||||
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
||||||
echo "config script to switch the Fulcrum electrum server on or off"
|
echo "config script to switch the Fulcrum electrum server on, off or update to the latest release"
|
||||||
# echo "bonus.fulcrum.sh status [?showAddress]"
|
# echo "bonus.fulcrum.sh status [?showAddress]"
|
||||||
echo "bonus.fulcrum.sh [on|off]"
|
echo "bonus.fulcrum.sh [on|off|update]"
|
||||||
echo "installs the version $fulcrumVersion"
|
echo "installs the version $fulcrumVersion"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
function downloadAndVerifyBinary() {
|
||||||
|
cd /home/fulcrum || exit 1
|
||||||
|
|
||||||
|
# download the prebuilt binary
|
||||||
|
sudo -u fulcrum wget https://github.com/cculianu/Fulcrum/releases/download/v${fulcrumVersion}/Fulcrum-${fulcrumVersion}-${build}.tar.gz || exit 1
|
||||||
|
sudo -u fulcrum wget https://github.com/cculianu/Fulcrum/releases/download/v${fulcrumVersion}/Fulcrum-${fulcrumVersion}-sha256sums.txt || exit 1
|
||||||
|
sudo -u fulcrum wget https://github.com/cculianu/Fulcrum/releases/download/v${fulcrumVersion}/Fulcrum-${fulcrumVersion}-sha256sums.txt.asc || exit 1
|
||||||
|
|
||||||
|
# Verify
|
||||||
|
# get the PGP key
|
||||||
|
curl https://raw.githubusercontent.com/Electron-Cash/keys-n-hashes/master/pubkeys/calinkey.txt | sudo -u fulcrum gpg --import
|
||||||
|
|
||||||
|
echo "# Look for 'Good signature'"
|
||||||
|
sudo -u fulcrum gpg --verify Fulcrum-${fulcrumVersion}-sha256sums.txt.asc || exit 1
|
||||||
|
|
||||||
|
echo "# Look for 'OK'"
|
||||||
|
sudo -u fulcrum sha256sum -c Fulcrum-${fulcrumVersion}-sha256sums.txt --ignore-missing || exit 1
|
||||||
|
|
||||||
|
echo "# Unpack"
|
||||||
|
sudo -u fulcrum tar -xvf Fulcrum-${fulcrumVersion}-${build}.tar.gz
|
||||||
|
}
|
||||||
|
|
||||||
|
function createSystemdService() {
|
||||||
|
echo "# Create a systemd service"
|
||||||
|
echo "\
|
||||||
|
[Unit]
|
||||||
|
Description=Fulcrum
|
||||||
|
After=network.target bitcoind.service
|
||||||
|
StartLimitBurst=2
|
||||||
|
StartLimitIntervalSec=20
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/home/fulcrum/Fulcrum-${fulcrumVersion}-${build}/Fulcrum /home/fulcrum/.fulcrum/fulcrum.conf
|
||||||
|
KillSignal=SIGINT
|
||||||
|
User=fulcrum
|
||||||
|
LimitNOFILE=8192
|
||||||
|
TimeoutStopSec=300
|
||||||
|
RestartSec=5
|
||||||
|
Restart=on-failure
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
" | sudo tee /etc/systemd/system/fulcrum.service
|
||||||
|
}
|
||||||
|
|
||||||
|
# set the platform
|
||||||
|
if [ $(uname -m) = "aarch64" ]; then
|
||||||
|
build="arm64-linux"
|
||||||
|
elif [ $(uname -m) = "x86_64" ]; then
|
||||||
|
build="x86_64-linux-ub16"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$1" = on ]; then
|
if [ "$1" = on ]; then
|
||||||
# ?wait until txindex finishes?
|
# ?wait until txindex finishes?
|
||||||
/home/admin/config.scripts/network.txindex.sh on
|
/home/admin/config.scripts/network.txindex.sh on
|
||||||
|
@ -31,34 +83,10 @@ if [ "$1" = on ]; then
|
||||||
|
|
||||||
# create a dedicated user
|
# create a dedicated user
|
||||||
sudo adduser --system --group --home /home/fulcrum fulcrum
|
sudo adduser --system --group --home /home/fulcrum fulcrum
|
||||||
cd /home/fulcrum || exit 1
|
|
||||||
|
|
||||||
sudo apt install -y libssl-dev # was needed on Debian Bullseye
|
sudo apt install -y libssl-dev # was needed on Debian Bullseye
|
||||||
|
|
||||||
# set the platform
|
downloadAndVerifyBinary
|
||||||
if [ $(uname -m) = "aarch64" ]; then
|
|
||||||
build="arm64-linux"
|
|
||||||
elif [ $(uname -m) = "x86_64" ]; then
|
|
||||||
build="x86_64-linux-ub16"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# download the prebuilt binary
|
|
||||||
sudo -u fulcrum wget https://github.com/cculianu/Fulcrum/releases/download/v${fulcrumVersion}/Fulcrum-${fulcrumVersion}-${build}.tar.gz
|
|
||||||
sudo -u fulcrum wget https://github.com/cculianu/Fulcrum/releases/download/v${fulcrumVersion}/Fulcrum-${fulcrumVersion}-${build}.tar.gz.asc
|
|
||||||
sudo -u fulcrum wget https://github.com/cculianu/Fulcrum/releases/download/v${fulcrumVersion}/Fulcrum-${fulcrumVersion}-${build}.tar.gz.sha256sum
|
|
||||||
|
|
||||||
# Verify
|
|
||||||
# get the PGP key
|
|
||||||
curl https://raw.githubusercontent.com/Electron-Cash/keys-n-hashes/master/pubkeys/calinkey.txt | sudo -u fulcrum gpg --import
|
|
||||||
|
|
||||||
echo "# Look for 'Good signature'"
|
|
||||||
sudo -u fulcrum gpg --verify Fulcrum-${fulcrumVersion}-${build}.tar.gz.asc || exit 1
|
|
||||||
|
|
||||||
echo "# Look for 'OK'"
|
|
||||||
sudo -u fulcrum sha256sum -c Fulcrum-${fulcrumVersion}-${build}.tar.gz.sha256sum --ignore-missing || exit 1
|
|
||||||
|
|
||||||
echo "# Unpack"
|
|
||||||
sudo -u fulcrum tar -xvf Fulcrum-${fulcrumVersion}-${build}.tar.gz
|
|
||||||
|
|
||||||
echo "# Create the database directory in /mnt/hdd/app-storage (on the disk)"
|
echo "# Create the database directory in /mnt/hdd/app-storage (on the disk)"
|
||||||
sudo mkdir -p /mnt/hdd/app-storage/fulcrum/db
|
sudo mkdir -p /mnt/hdd/app-storage/fulcrum/db
|
||||||
|
@ -95,26 +123,7 @@ tcp = 0.0.0.0:50021
|
||||||
# ssl via nginx
|
# ssl via nginx
|
||||||
" | sudo -u fulcrum tee /home/fulcrum/.fulcrum/fulcrum.conf
|
" | sudo -u fulcrum tee /home/fulcrum/.fulcrum/fulcrum.conf
|
||||||
|
|
||||||
echo "# Create a systemd service"
|
createSystemdService
|
||||||
echo "\
|
|
||||||
[Unit]
|
|
||||||
Description=Fulcrum
|
|
||||||
After=network.target bitcoind.service
|
|
||||||
StartLimitBurst=2
|
|
||||||
StartLimitIntervalSec=20
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
ExecStart=/home/fulcrum/Fulcrum-${fulcrumVersion}-${build}/Fulcrum /home/fulcrum/.fulcrum/fulcrum.conf
|
|
||||||
KillSignal=SIGINT
|
|
||||||
User=fulcrum
|
|
||||||
LimitNOFILE=8192
|
|
||||||
TimeoutStopSec=300
|
|
||||||
RestartSec=5
|
|
||||||
Restart=on-failure
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
" | sudo tee /etc/systemd/system/fulcrum.service
|
|
||||||
|
|
||||||
sudo systemctl enable fulcrum
|
sudo systemctl enable fulcrum
|
||||||
if [ "${state}" == "ready" ]; then
|
if [ "${state}" == "ready" ]; then
|
||||||
|
@ -186,9 +195,30 @@ stream {
|
||||||
echo "sudo journalctl -fu fulcrum"
|
echo "sudo journalctl -fu fulcrum"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$1" = update ]; then
|
||||||
|
# get the latest release from github without the leading 'v'
|
||||||
|
fulcrumVersion=$(curl --silent https://api.github.com/repos/cculianu/Fulcrum/releases/latest | jq -r '.tag_name | ltrimstr("v")')
|
||||||
|
echo "# The latest release is: $fulcrumVersion"
|
||||||
|
|
||||||
|
# check if the binary is already installed
|
||||||
|
if [ -f /home/fulcrum/Fulcrum-${fulcrumVersion}-${build}/Fulcrum ]; then
|
||||||
|
echo "# Fulcrum-${fulcrumVersion}-${build} is already installed"
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo "# Installing Fulcrum-${fulcrumVersion}-${build}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
downloadAndVerifyBinary
|
||||||
|
|
||||||
|
sudo systemctl disable --now fulcrum
|
||||||
|
|
||||||
|
createSystemdService
|
||||||
|
|
||||||
|
sudo systemctl enable --now fulcrum
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$1" = off ]; then
|
if [ "$1" = off ]; then
|
||||||
sudo systemctl disable fulcrum
|
sudo systemctl disable --now fulcrum
|
||||||
sudo systemctl stop fulcrum
|
|
||||||
sudo userdel -rf fulcrum
|
sudo userdel -rf fulcrum
|
||||||
# remove Tor service
|
# remove Tor service
|
||||||
/home/admin/config.scripts/tor.onion-service.sh off fulcrum
|
/home/admin/config.scripts/tor.onion-service.sh off fulcrum
|
||||||
|
|
Loading…
Add table
Reference in a new issue