Dateien nach "/" hochladen
This commit is contained in:
280
RIS_Storj_autoinstall.sh
Normal file
280
RIS_Storj_autoinstall.sh
Normal file
@@ -0,0 +1,280 @@
|
||||
#!/bin/bash
|
||||
#################################
|
||||
# #
|
||||
# W12 Storj Auto Install Script #
|
||||
# by RIS #
|
||||
# #
|
||||
#################################
|
||||
ESC_SEQ="\x1b["
|
||||
COL_RESET=$ESC_SEQ"39;49;00m"
|
||||
RED=$ESC_SEQ"31;01m"
|
||||
GREEN=$ESC_SEQ"32;01m"
|
||||
YELLOW=$ESC_SEQ"33;01m"
|
||||
BLUE=$ESC_SEQ"34;01m"
|
||||
MAGENTA=$ESC_SEQ"35;01m"
|
||||
CYAN=$ESC_SEQ"36;01m"
|
||||
function spinner {
|
||||
local pid=$!
|
||||
local delay=0.75
|
||||
local spinstr='W12'
|
||||
#local charwidth=3
|
||||
while [ "$(ps a | awk '{print $1}' | grep $pid)" ]; do
|
||||
local temp=${spinstr#?}
|
||||
printf " [%c] " "$spinstr"
|
||||
local spinstr=$temp${spinstr%"$temp"}
|
||||
sleep $delay
|
||||
printf "\b\b\b\b\b\b"
|
||||
done
|
||||
printf " \b\b\b\b"
|
||||
}
|
||||
|
||||
|
||||
function hide_output {
|
||||
OUTPUT=$(mktemp)
|
||||
$@ &> $OUTPUT & spinner
|
||||
E=$?
|
||||
if [ $E != 0 ]; then
|
||||
echo
|
||||
echo FAILED: $@
|
||||
echo -----------------------------------------
|
||||
cat $OUTPUT
|
||||
echo -----------------------------------------
|
||||
exit $E
|
||||
fi
|
||||
|
||||
rm -f $OUTPUT
|
||||
}
|
||||
|
||||
function apt_install {
|
||||
PACKAGES=$@
|
||||
apt_get_quiet install $PACKAGES
|
||||
}
|
||||
|
||||
function restart_service {
|
||||
hide_output sudo service $1 restart
|
||||
}
|
||||
|
||||
function message_box {
|
||||
dialog --title "$1" --msgbox "$2" 0 0
|
||||
}
|
||||
|
||||
function input_box {
|
||||
declare -n result=$4
|
||||
declare -n result_code=$4_EXITCODE
|
||||
result=$(dialog --stdout --title "$1" --inputbox "$2" 0 0 "$3")
|
||||
result_code=$?
|
||||
}
|
||||
|
||||
function input_menu {
|
||||
declare -n result=$4
|
||||
declare -n result_code=$4_EXITCODE
|
||||
local IFS=^$'\n'
|
||||
result=$(dialog --stdout --title "$1" --menu "$2" 0 0 0 $3)
|
||||
result_code=$?
|
||||
}
|
||||
whiptail --title "RIS Storj Install" --msgbox "Storj Installation wird nun gestartet" 10 50 3>&1 1>&2 2>&3
|
||||
clear
|
||||
echo
|
||||
echo
|
||||
hide_output sudo apt install screen ufw
|
||||
hide_output sudo ufw enable
|
||||
hide_output sudo ufw allow `cat ~/.config/ssh.txt` # SSH für Ref User
|
||||
hide_output sudo ufw allow 28967/tcp
|
||||
hide_output sudo ufw allow 14002
|
||||
hide_output sudo ufw allow 45278 # vnc für Ref User
|
||||
hide_output sudo ufw allow 28967/udp
|
||||
if whiptail --title "RIS Storj Install" --yes-button "ok" --no-button "abrechen" --yesno "Achtung! Die Festplatte wird nun gelöscht" 8 78
|
||||
then
|
||||
{
|
||||
clear
|
||||
echo
|
||||
echo 25
|
||||
sleep 2
|
||||
sudo umount /dev/sda1 2>/dev/null
|
||||
hide_output sudo fdisk /dev/sda <<EOF
|
||||
hide_output d
|
||||
hide_output n
|
||||
hide_output p
|
||||
hide_output 1
|
||||
hide_output
|
||||
hide_output
|
||||
hide_output y
|
||||
hide_output w
|
||||
EOF
|
||||
hide_output sudo mkfs.ext4 /dev/sda1 <<EOF
|
||||
hide_output y
|
||||
hide_output
|
||||
EOF
|
||||
clear
|
||||
echo 50
|
||||
sleep 2
|
||||
sleep 15m
|
||||
sudo blkid -o value -s UUID /dev/sda1 > ID
|
||||
sleep 3
|
||||
sudo su <<HERE
|
||||
echo "UUID=`cat /home/ubuntu/ID` /mnt/storagenode ext4 defaults,nofail 0 2" >> /etc/fstab
|
||||
HERE
|
||||
sleep 6
|
||||
echo
|
||||
echo 75
|
||||
sleep 2
|
||||
hide_output sudo mkdir /mnt/storagenode
|
||||
hide_output sudo chown -R ubuntu:ubuntu /mnt/storagenode
|
||||
hide_output sudo chmod -R 775 /mnt/storagenode
|
||||
sleep 2
|
||||
sudo su <<HERE
|
||||
sudo mount -a
|
||||
HERE
|
||||
echo 100
|
||||
sleep 3
|
||||
} | whiptail --title "RIS Storj Install" --gauge "Festplatte wird gelöscht, Dauer ca. 15min..." 6 50 0
|
||||
echo
|
||||
else
|
||||
{
|
||||
echo 25
|
||||
sleep 1
|
||||
echo 50
|
||||
sleep 1
|
||||
echo 75
|
||||
sleep 2
|
||||
echo 100
|
||||
echo "lade Menü... Bitte Nochmal Ausführen"
|
||||
} | whiptail --gauge "lade Menü...Bitte Nochmal Ausführen" 6 60 0
|
||||
M3
|
||||
fi
|
||||
echo
|
||||
echo -e "$YELLOW warte... $COL_RESET"
|
||||
echo
|
||||
sudo su <<HERE
|
||||
echo "dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=LABEL=writable rootfstype=ext4 elevator=deadline rootwait fixrtc quiet splash cgroup_enabenable=memory cgroup_memory=1 swapaccount=1" > /boot/firmware/cmdline.txt
|
||||
HERE
|
||||
hide_output curl -L https://github.com/storj/storj/releases/latest/download/identity_linux_arm64.zip -o identity_linux_arm64.zip
|
||||
hide_output unzip -o identity_linux_arm64.zip
|
||||
chmod +x identity
|
||||
sudo mv identity /usr/local/bin/identity
|
||||
identity create storagenode
|
||||
hide_output sudo rm -fr ~/storjt
|
||||
storjt=$(whiptail --title "Storj token Eingabe" --inputbox "bitte token so eingeben -> email:auth_token <-" 20 50 3>&1 1>&2 2>&3)
|
||||
clear;
|
||||
echo
|
||||
echo -e "$RED dein Storj token=$COL_RESET" $storjt
|
||||
sleep 6
|
||||
identity authorize storagenode $storjt
|
||||
echo
|
||||
grep -c BEGIN ~/.local/share/storj/identity/storagenode/ca.cert
|
||||
grep -c BEGIN ~/.local/share/storj/identity/storagenode/identity.cert
|
||||
echo
|
||||
echo
|
||||
#fi
|
||||
whiptail --title "RIS Storj Install" --msgbox "Storj wird eingerichtet" 10 50 3>&1 1>&2 2>&3
|
||||
echo
|
||||
clear;
|
||||
echo
|
||||
echo -e "$YELLOW warte... $COL_RESET"
|
||||
echo
|
||||
hide_output sudo apt-get update 2>/dev/null
|
||||
hide_output sudo apt-get install ca-certificates curl gnupg lsb-release -y 2>/dev/null
|
||||
sudo rm -fr /usr/share/keyrings/docker-archive-keyring.gpg 2>/dev/null
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
||||
echo \
|
||||
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
|
||||
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
hide_output sudo apt-get update -y 2>/dev/null
|
||||
hide_output sudo apt-get install docker-ce docker-ce-cli containerd.io -y 2>/dev/null
|
||||
hide_output sudo systemctl enable docker.service 2>/dev/null
|
||||
hide_output sudo usermod -aG docker ubuntu 2>/dev/null
|
||||
sleep 15
|
||||
hide_output sudo docker pull storjlabs/storagenode:latest
|
||||
echo
|
||||
hide_output sudo rm ~/storjsetup.sh 2>/dev/null
|
||||
echo
|
||||
touch ~/storjsetup.sh
|
||||
cat << "CONFIG" >> ~/storjsetup.sh
|
||||
sudo docker run --rm -e SETUP="true" \
|
||||
--mount type=bind,source=/home/ubuntu/.local/share/storj/identity/storagenode,destination=/app/identity \
|
||||
--mount type=bind,source=/mnt/storagenode,destination=/app/config \
|
||||
--name storagenode storjlabs/storagenode:latest
|
||||
CONFIG
|
||||
echo
|
||||
sleep 2
|
||||
bash storjsetup.sh
|
||||
sleep 5
|
||||
hide_output rm ~/storjsetup.sh
|
||||
echo
|
||||
echo -e "$YELLOW warte... $COL_RESET"
|
||||
echo
|
||||
clear
|
||||
hide_output rm ~/storj.sh
|
||||
echo
|
||||
touch ~/storj.sh
|
||||
cat << "CONFIG" >> ~/storj.sh
|
||||
sudo docker run -d --restart always --stop-timeout 300 \
|
||||
-p 28967:28967/tcp \
|
||||
-p 28967:28967/udp \
|
||||
-p 14002:14002 \
|
||||
CONFIG
|
||||
echo
|
||||
eth=$(whiptail --inputbox "Bitte deine ETH Wallet Addy eingeben!" 10 50 3>&1 1>&2 2>&3)
|
||||
clear;
|
||||
echo
|
||||
echo -e "$RED deine ETH Addy=$COL_RESET" $eth
|
||||
sleep 5
|
||||
echo
|
||||
echo '-e WALLET='""$eth"" '\' >> ~/storj.sh
|
||||
echo
|
||||
mail=$(whiptail --inputbox "Bitte deine E-mail Adresse eingeben!" 10 40 3>&1 1>&2 2>&3)
|
||||
clear;
|
||||
echo
|
||||
echo -e "$RED deine E-mail Addy=$COL_RESET" $mail
|
||||
sleep 5
|
||||
clear;
|
||||
echo '-e EMAIL='""$mail"" '\' >> ~/storj.sh
|
||||
echo
|
||||
sdyn=$(whiptail --inputbox "Bitte deine dyndns Adresse eingeben!" 10 40 3>&1 1>&2 2>&3)
|
||||
clear;
|
||||
echo
|
||||
echo -e "$RED deine dyndns Addy=$COL_RESET" $sdyn
|
||||
sleep 5
|
||||
clear;
|
||||
echo '-e ADDRESS='""$sdyn:28967"" '\' >> ~/storj.sh
|
||||
echo
|
||||
sfest=$(whiptail --inputbox "Festplatten Grösse in TB - 10% Speicherabzug eingeben! TB mitangeben z.b. 4.5TB" 10 50 3>&1 1>&2 2>&3)
|
||||
clear;
|
||||
echo
|
||||
echo -e "$RED dein Festplattenspeicher=$COL_RESET" $sfest
|
||||
sleep 5
|
||||
clear;
|
||||
echo
|
||||
echo '-e STORAGE='""$sfest"" '\'>> ~/storj.sh
|
||||
echo
|
||||
cat << "CONFIG" >> ~/storj.sh
|
||||
--memory=800m \
|
||||
--log-opt max-size=50m \
|
||||
--log-opt max-file=10 \
|
||||
--mount type=bind,source=/home/ubuntu/.local/share/storj/identity/storagenode,destination=/app/identity \
|
||||
--mount type=bind,source=/mnt/storagenode,destination=/app/config \
|
||||
--name storagenode storjlabs/storagenode:latest
|
||||
CONFIG
|
||||
echo
|
||||
hide_output sudo chmod +x ~/storj.sh
|
||||
hide_output sh ~/storj.sh
|
||||
sleep 5
|
||||
hide_output sudo docker pull storjlabs/watchtower
|
||||
sleep 5
|
||||
hide_output sudo docker run -d --restart=always --name watchtower -v /var/run/docker.sock:/var/run/docker.sock storjlabs/watchtower storagenode watchtower --stop-timeout 300s --interval 21600
|
||||
echo
|
||||
clear;
|
||||
echo
|
||||
echo -e "$GREEN [done] $COL_RESET"
|
||||
echo
|
||||
echo -e "$GREEN Dashboard unter deineIP:14002 im Browser erreichbar $COL_RESET"
|
||||
echo
|
||||
echo -e "$GREEN Storj Stoppen -> sudo docker stop storagenode $COL_RESET"
|
||||
echo
|
||||
echo -e "$GREEN Storj löschen -> sudo docker rm storagenode$COL_RESET"
|
||||
echo
|
||||
echo -e "$GREEN Storj neu starten -> sh ~/storj.sh$COL_RESET"
|
||||
echo
|
||||
sleep 10
|
||||
exit
|
||||
|
||||
Reference in New Issue
Block a user