mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-09-07 09:51:57 +00:00
111 lines
3.4 KiB
Bash
111 lines
3.4 KiB
Bash
# install.sh is generated by ./extra/install.batsh, do not modify it directly.
|
|
# "npm run compile-install-script" to compile install.sh
|
|
# The command is working on Windows PowerShell and Docker for Windows only.
|
|
"echo" "-e" "====================="
|
|
"echo" "-e" "Uptime Kuma Installer"
|
|
"echo" "-e" "====================="
|
|
"echo" "-e" ""
|
|
"echo" "-e" "---------------------------------------"
|
|
"echo" "-e" "This script is designed for Linux and basic usage."
|
|
"echo" "-e" "Tested with CentOS 7/8"
|
|
"echo" "-e" "For advanced usage, please go to https://github.com/louislam/uptime-kuma/wiki/Installation"
|
|
"echo" "-e" "---------------------------------------"
|
|
"echo" "-e" ""
|
|
"echo" "-e" "Local - Install Uptime Kuma in your current machine with git, Node.js 14 and pm2"
|
|
"echo" "-e" "Docker - Install Uptime Kuma Docker container"
|
|
"echo" "-e" ""
|
|
if [ "$1" != "" ]; then
|
|
type="$1"
|
|
else
|
|
"read" "-p" "Which installation method do you prefer? [DOCKER/local]: " "type"
|
|
fi
|
|
if [ "$type" == "local" ]; then
|
|
defaultPort="3001"
|
|
defaultInstallPath="/opt/uptime-kuma"
|
|
if [ -e "/etc/redhat-release" ]; then
|
|
os=$("cat" "/etc/redhat-release")
|
|
distribution="rhel"
|
|
else
|
|
if [ -e "/etc/issue" ]; then
|
|
os=$(head -n1 /etc/issue | cut -f 1 -d ' ')
|
|
if [ "$os" == "Ubuntu" ]; then
|
|
distribution="ubuntu"
|
|
fi
|
|
fi
|
|
fi
|
|
arch=$(uname -i)
|
|
"echo" "-e" "Your OS: ""$os"
|
|
"echo" "-e" "Distribution: ""$distribution"
|
|
"echo" "-e" "Arch: ""$arch"
|
|
if [ "$3" != "" ]; then
|
|
port="$3"
|
|
else
|
|
"read" "-p" "Listening Port [$port]: " "port"
|
|
if [ "$port" == "" ]; then
|
|
port="$defaultPort"
|
|
fi
|
|
fi
|
|
if [ "$2" != "" ]; then
|
|
installPath="$2"
|
|
else
|
|
"read" "-p" "Installation Path [$installPath]: " "installPath"
|
|
if [ "$installPath" == "" ]; then
|
|
installPath="$defaultInstallPath"
|
|
fi
|
|
fi
|
|
if [ "$distribution" == "rhel" ]; then
|
|
nodeCheck=$(node -v)
|
|
if [ "$nodeCheck" != "" ]; then
|
|
nodeVersion=$(node -e 'console.log(process.versions.node.split(`.`)[0])')
|
|
"echo" "-e" "Node Version: ""$nodeVersion"
|
|
_0="12"
|
|
if [ $(($nodeVersion < $_0)) == 1 ]; then
|
|
"echo" "-e" "Error: Required Node.js 14"
|
|
"exit" "1"
|
|
fi
|
|
if [ "$nodeVersion" == "12" ]; then
|
|
"echo" "-e" "Warning: NodeJS ""$nodeVersion"" is not tested."
|
|
fi
|
|
else
|
|
curlCheck=$(curl --version)
|
|
if [ "$curlCheck" == "" ]; then
|
|
"echo" "-e" "Installing Curl"
|
|
yum -y -q install curl
|
|
fi
|
|
"echo" "-e" "Installing Node.js 14"
|
|
curl -sL https://rpm.nodesource.com/setup_14.x | bash - > log.txt
|
|
yum install -y -q nodejs
|
|
node -v
|
|
nodeCheckAgain=$(node -v)
|
|
if [ "$nodeCheckAgain" == "" ]; then
|
|
"echo" "-e" "Error during Node.js installation"
|
|
exit 1
|
|
fi
|
|
fi
|
|
check=$(git --version)
|
|
if [ "$check" == "" ]; then
|
|
"echo" "-e" "Installing Git"
|
|
yum -y -q install git
|
|
fi
|
|
check=$(pm2 --version)
|
|
if [ "$check" == "" ]; then
|
|
"echo" "-e" "Installing PM2"
|
|
npm install pm2 -g
|
|
pm2 startup
|
|
fi
|
|
mkdir -p $installPath
|
|
cd $installPath
|
|
git clone https://github.com/louislam/uptime-kuma.git .
|
|
npm run setup
|
|
pm2 start npm --name uptime-kuma -- run start-server -- --port=$port
|
|
pm2 list
|
|
fi
|
|
if [ "$distribution" == "ubuntu" ]; then
|
|
"echo" "-e" "TODO"
|
|
# TODO
|
|
fi
|
|
else
|
|
"read" "-p" "Expose Port [3001]: " "port"
|
|
"read" "-p" "Volume Name [uptime-kuma]: " "volume"
|
|
fi
|