Simple Linux Panel
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mdserver-web/scripts/install.sh

158 lines
4.3 KiB

7 years ago
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# LANG=en_US.UTF-8
7 years ago
is64bit=`getconf LONG_BIT`
7 years ago
{
5 years ago
if [ -f /etc/motd ];then
3 years ago
echo "welcome to mdserver-web panel" > /etc/motd
5 years ago
fi
7 years ago
startTime=`date +%s`
6 years ago
_os=`uname`
3 years ago
echo "use system: ${_os}"
3 years ago
if [ "$EUID" -ne 0 ]
then echo "Please run as root!"
exit
fi
if [ ${_os} == "Darwin" ]; then
3 years ago
OSNAME='macos'
3 years ago
elif grep -Eq "openSUSE" /etc/*-release; then
OSNAME='opensuse'
zypper refresh
2 years ago
zypper install cron wget curl zip unzip
3 years ago
elif grep -Eq "FreeBSD" /etc/*-release; then
OSNAME='freebsd'
2 years ago
elif grep -Eqi "CentOS" /etc/issue || grep -Eq "CentOS" /etc/*-release; then
2 years ago
OSNAME='rhel'
yum install -y wget curl zip unzip tar crontabs
elif grep -Eqi "Fedora" /etc/issue || grep -Eq "Fedora" /etc/*-release; then
OSNAME='fedora'
yum install -y wget curl zip unzip tar crontabs
2 years ago
elif grep -Eqi "Rocky" /etc/issue || grep -Eq "Rocky" /etc/*-release; then
2 years ago
OSNAME='rhel'
yum install -y wget curl zip unzip tar crontabs
2 years ago
elif grep -Eqi "AlmaLinux" /etc/issue || grep -Eq "AlmaLinux" /etc/*-release; then
OSNAME='rhel'
2 years ago
yum install -y wget curl zip unzip tar crontabs
2 years ago
elif grep -Eqi "Amazon Linux" /etc/issue || grep -Eq "Amazon Linux" /etc/*-release; then
OSNAME='amazon'
yum install -y wget curl zip unzip tar crontabs
elif grep -Eqi "Debian" /etc/issue || grep -Eq "Debian" /etc/os-release; then
3 years ago
OSNAME='debian'
3 years ago
apt update -y
2 years ago
apt install -y wget curl zip unzip tar cron
2 years ago
elif grep -Eqi "Ubuntu" /etc/issue || grep -Eq "Ubuntu" /etc/os-release; then
OSNAME='ubuntu'
apt update -y
apt install -y wget curl zip unzip tar cron
6 years ago
else
OSNAME='unknow'
fi
if [ $OSNAME != "macos" ];then
3 years ago
if id www &> /dev/null ;then
echo ""
else
groupadd www
useradd -g www -s /bin/bash www
fi
mkdir -p /www/server
mkdir -p /www/wwwroot
mkdir -p /www/wwwlogs
mkdir -p /www/backup/database
mkdir -p /www/backup/site
3 years ago
# https://cdn.jsdelivr.net/gh/midoks/mdserver-web@latest/scripts/install.sh
3 years ago
2 years ago
cn=$(curl --insecure -fsSL -m 10 https://ipinfo.io/json | grep "\"country\": \"CN\"")
3 years ago
if [ ! -d /www/server/mdserver-web ];then
3 years ago
if [ ! -z "$cn" ];then
3 years ago
curl -sSLo /tmp/master.zip https://gitee.com/midoks/mdserver-web/repository/archive/master.zip
3 years ago
else
3 years ago
curl -sSLo /tmp/master.zip https://codeload.github.com/midoks/mdserver-web/zip/master
3 years ago
fi
cd /tmp && unzip /tmp/master.zip
3 years ago
mv -f /tmp/mdserver-web-master /www/server/mdserver-web
rm -rf /tmp/master.zip
rm -rf /tmp/mdserver-web-master
fi
# install acme.sh
if [ ! -d /root/.acme.sh ];then
if [ ! -z "$cn" ];then
curl -sSL -o /tmp/acme.tar.gz https://ghproxy.com/github.com/acmesh-official/acme.sh/archive/master.tar.gz
tar xvzf /tmp/acme.tar.gz -C /tmp
cd /tmp/acme.sh-master
bash acme.sh install
cd -
fi
if [ ! -d /root/.acme.sh ];then
curl https://get.acme.sh | sh
fi
fi
fi
3 years ago
echo "use system version: ${OSNAME}"
2 years ago
if [ "${OSNAME}" == "macos" ];then
cn=$(curl -fsSL -m 10 http://ipinfo.io/json | grep "\"country\": \"CN\"")
HTTP_PREFIX="https://"
if [ ! -z "$cn" ];then
HTTP_PREFIX="https://ghproxy.com/"
fi
curl -fsSL ${HTTP_PREFIX}https://raw.githubusercontent.com/midoks/mdserver-web/dev/scripts/install/macos.sh | bash
2 years ago
else
cd /www/server/mdserver-web && bash scripts/install/${OSNAME}.sh
fi
3 years ago
if [ "${OSNAME}" == "macos" ];then
echo "macos end"
exit 0
fi
3 years ago
cd /www/server/mdserver-web && bash cli.sh start
isStart=`ps -ef|grep 'gunicorn -c setting.py app:app' |grep -v grep|awk '{print $2}'`
n=0
3 years ago
while [ ! -f /etc/rc.d/init.d/mw ];
3 years ago
do
echo -e ".\c"
sleep 1
let n+=1
if [ $n -gt 20 ];then
echo -e "start mw fail"
3 years ago
exit 1
3 years ago
fi
done
cd /www/server/mdserver-web && bash /etc/rc.d/init.d/mw stop
cd /www/server/mdserver-web && bash /etc/rc.d/init.d/mw start
cd /www/server/mdserver-web && bash /etc/rc.d/init.d/mw default
7 years ago
3 years ago
sleep 2
3 years ago
if [ ! -e /usr/bin/mw ]; then
if [ -f /etc/rc.d/init.d/mw ];then
ln -s /etc/rc.d/init.d/mw /usr/bin/mw
3 years ago
fi
fi
3 years ago
7 years ago
endTime=`date +%s`
((outTime=(${endTime}-${startTime})/60))
3 years ago
echo -e "Time consumed:\033[32m $outTime \033[0mMinute!"
3 years ago
2 years ago
} 1> >(tee mw-install.log) 2>&1
echo -e "\nInstall completed. If error occurs, please contact us with the log file mw-install.log ."
2 years ago
echo "安装完毕,如果出现错误,请带上同目录下的安装日志 mw-install.log 联系我们反馈."