diff --git a/Server/ServerUpdateKickstart.sh b/Server/ServerUpdateKickstart.sh new file mode 100644 index 0000000..7fa46fe --- /dev/null +++ b/Server/ServerUpdateKickstart.sh @@ -0,0 +1,44 @@ +##Build of a release tag (Provided by installer) +#RelVer= + +##Build of a release tag (Manual) +#RelVer=stable +##Build of a master branch, but config is vaidated +#RelVer=latest_Tested +##Build of a master branch +#RelVer=latest +RunKs=1 + +#Getting build build nubers +InstVer=$(cat/opt/ShellHub/build.ID) +CurVer=$(wget -q -O- https://git.bprieshof.nl/ci/Releases/ShellHub/$RelVer/build.ID) + +if (("$CurVer" < "$InstVer")); then + echo "The installed version is newer!" +fi + +if (("$CurVer" <= "$InstVer")); then + echo "No update avalible, Exiting" + exit +fi + +while true; do + read -p "Updating from build $InstVer to $CurVer, Do you want to Continue? (y/n)" yn + case $yn in + [Yy]* ) break;; + [Nn]* ) echo "Exiting";exit;; + * ) echo "Please answer yes or no.";; + esac +done + +echo "###############" +echo "# WARNING #" +echo "###############" +echo "Update tool wil NOT update openresty and mongodb" +echo "and might not (correctly) update their config files" +echo "The installation might brake" + +read -r -s -p $'Press enter to continue...' + +#Getting update script form git repo +bash <(curl -Ss "https://git.bprieshof.nl/Tools/ShellHubNative/raw/branch/main/Server/update.sh") \ No newline at end of file diff --git a/Server/install.sh b/Server/install.sh index 4f1ca48..405012f 100644 --- a/Server/install.sh +++ b/Server/install.sh @@ -72,8 +72,11 @@ wget https://git.bprieshof.nl/ci/Releases/ShellHub/"$RelVer"/.env -O /opt/ShellH wget https://git.bprieshof.nl/ci/Releases/ShellHub/"$RelVer"/BinServices/ShellHubSSH-amd64 -O /opt/ShellHub/ShellHubSSH wget https://git.bprieshof.nl/ci/Releases/ShellHub/"$RelVer"/BinServices/ShellHubAPI-amd64 -O /opt/ShellHub/ShellHubAPI wget https://git.bprieshof.nl/ci/Releases/ShellHub/"$RelVer"/BinAgent/ShellHubAgent-amd64 -O /opt/ShellHub/ui/agent-amd64 +wget https://git.bprieshof.nl/ci/Releases/ShellHub/"$RelVer"/build.ID -O /opt/ShellHub/build.ID wget https://git.bprieshof.nl/ci/Releases/ShellHub/"$RelVer"/BinServices/webui.tar.gz -O /tmp/webui.tar.gz mv ../Agent/Kickstart_template /opt/ShellHub/ui/kickstart.sh +mv ServerUpdateKickstart.sh /opt/ShellHub/UpdateKickstart.sh +sed -i "0,/RelVer=/ s/.*RelVer=.*/RelVer=$RelVer/g" /opt/ShellHub/UpdateKickstart.sh chmod +x /opt/ShellHub/ShellHubAPI chmod +x /opt/ShellHub/ShellHubSSH tar -zxf /tmp/webui.tar.gz -C /opt/ShellHub/ui diff --git a/Server/update.sh b/Server/update.sh new file mode 100644 index 0000000..fccceb0 --- /dev/null +++ b/Server/update.sh @@ -0,0 +1,42 @@ +#Run check +if [ -z ${RunKs+x} ]; then echo 'Update not started using UpdateKickstart.sh '; exit; fi + +#Stoping service +systemctl stop ShellHubAPI ShellHubSSH openresty + +#Moving existing binaries to other foler +[[ -d ~/ShellHubBackup ]] && rm -rf ~/ShellHubBackup +mkdir ~/ShellHubBackup +mv -t ~/ShellHubBackup /opt/ShellHub/nginx.env /opt/ShellHub/shellhub.env /opt/ShellHub/ShellHubSSH /opt/ShellHub/ShellHubAPI /opt/ShellHub/build.ID /opt/ShellHub/ui /opt/ShellHub/tools + +#Updating binaries +mkdir -p /opt/ShellHub/{ui,tools} +wget https://git.bprieshof.nl/ci/Releases/ShellHub/"$RelVer"/nginx.env -O /opt/ShellHub/nginx.env +wget https://git.bprieshof.nl/ci/Releases/ShellHub/"$RelVer"/.env -O /opt/ShellHub/shellhub.env +wget https://git.bprieshof.nl/ci/Releases/ShellHub/"$RelVer"/BinServices/ShellHubSSH-amd64 -O /opt/ShellHub/ShellHubSSH +wget https://git.bprieshof.nl/ci/Releases/ShellHub/"$RelVer"/BinServices/ShellHubAPI-amd64 -O /opt/ShellHub/ShellHubAPI +wget https://git.bprieshof.nl/ci/Releases/ShellHub/"$RelVer"/BinAgent/ShellHubAgent-amd64 -O /opt/ShellHub/ui/agent-amd64 +wget https://git.bprieshof.nl/ci/Releases/ShellHub/"$RelVer"/build.ID -O /opt/ShellHub/build.ID +#Updating Webui +wget https://git.bprieshof.nl/ci/Releases/ShellHub/"$RelVer"/BinServices/webui.tar.gz -O /tmp/SHR/webui.tar.gz +tar -zxf /tmp/SHR/webui.tar.gz -C /opt/ShellHub/ui +mv /tmp/SHR/Agent/Kickstart_template /opt/ShellHub/ui/kickstart.sh +#Setting Permissions +chmod +x /opt/ShellHub/ShellHubAPI +chmod +x /opt/ShellHub/ShellHubSSH + +#Updating tools +git clone https://git.bprieshof.nl/Tools/ShellHubNative /tmp/SHR +if [ "$RelVer" = "stable" ]; then + mv /tmp/SHR/Server/Tools/stable/* /opt/ShellHub/tools/ +elif [ "$RelVer" = "latest" ] || [ "$RelVer" = "latest_Tested" ]; then + mv /tmp/SHR/Server/Tools/latest/* /opt/ShellHub/tools/ +fi + +#Cleanup +rm -rf /tmp/SHR + +#Updating Relvar in next, to ensure its correct for next update +sed -i "0,/RelVer=/ s/.*RelVer=.*/RelVer=$RelVer/g" /opt/ShellHub/UpdateKickstart.sh +#starting services +systemctl start ShellHubAPI ShellHubSSH openresty \ No newline at end of file diff --git a/readme.md b/readme.md index 4988771..0f428a3 100644 --- a/readme.md +++ b/readme.md @@ -42,6 +42,10 @@ git clone https://git.bprieshof.nl/Tools/ShellHubNative bash ShellHubNative/Server/install.sh ``` +## Update + +run `bash /opt/ShellHub/UpdateKickstart.sh` + ## Notes Tools can be found in ` /opt/ShellHub/tools/`