|
|
|
@ -1,6 +1,20 @@ |
|
|
|
|
#!/bin/bash |
|
|
|
|
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:/opt/homebrew/bin |
|
|
|
|
export PATH |
|
|
|
|
|
|
|
|
|
RED='\033[31m' |
|
|
|
|
GREEN='\033[32m' |
|
|
|
|
YELLOW='\033[33m' |
|
|
|
|
BLUE='\033[34m' |
|
|
|
|
PLAIN='\033[0m' |
|
|
|
|
BOLD='\033[1m' |
|
|
|
|
SUCCESS='[\033[32mOK\033[0m]' |
|
|
|
|
COMPLETE='[\033[32mDONE\033[0m]' |
|
|
|
|
WARN='[\033[33mWARN\033[0m]' |
|
|
|
|
ERROR='[\033[31mERROR\033[0m]' |
|
|
|
|
WORKING='[\033[34m*\033[0m]' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# LANG=en_US.UTF-8 |
|
|
|
|
is64bit=`getconf LONG_BIT` |
|
|
|
|
|
|
|
|
@ -12,9 +26,122 @@ if [ -f /www/server/mdserver-web/tools.py ];then |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
LOG_FILE=/var/log/mw-install.log |
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
HTTP_PREFIX="https://" |
|
|
|
|
LOCAL_ADDR=common |
|
|
|
|
cn=$(curl -fsSL -m 10 -s http://ipinfo.io/json | grep "\"country\": \"CN\"") |
|
|
|
|
if [ ! -z "$cn" ] || [ "$?" == "0" ] ;then |
|
|
|
|
LOCAL_ADDR=cn |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
if [ "$LOCAL_ADDR" != "common" ];then |
|
|
|
|
declare -A PROXY_URL |
|
|
|
|
PROXY_URL["gh_proxy_com"]="https://gh-proxy.com/" |
|
|
|
|
PROXY_URL["ghproxy_link"]="https://ghproxy.link/" |
|
|
|
|
PROXY_URL["gitclone_com"]="https://gitclone.com/" |
|
|
|
|
PROXY_URL["source"]="https://" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SOURCE_LIST_KEY_SORT_TMP=$(echo ${!PROXY_URL[@]} | tr ' ' '\n' | sort -n) |
|
|
|
|
SOURCE_LIST_KEY=(${SOURCE_LIST_KEY_SORT_TMP//'\n'/}) |
|
|
|
|
SOURCE_LIST_LEN=${#PROXY_URL[*]} |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function AutoSizeStr(){ |
|
|
|
|
NAME_STR=$1 |
|
|
|
|
NAME_NUM=$2 |
|
|
|
|
|
|
|
|
|
NAME_STR_LEN=`echo "$NAME_STR" | wc -L` |
|
|
|
|
NAME_NUM_LEN=`echo "$NAME_NUM" | wc -L` |
|
|
|
|
|
|
|
|
|
fix_len=35 |
|
|
|
|
remaining_len=`expr $fix_len - $NAME_STR_LEN - $NAME_NUM_LEN` |
|
|
|
|
FIX_SPACE=' ' |
|
|
|
|
for ((ass_i=1;ass_i<=$remaining_len;ass_i++)) |
|
|
|
|
do |
|
|
|
|
FIX_SPACE="$FIX_SPACE " |
|
|
|
|
done |
|
|
|
|
echo -e " ❖ ${1}${FIX_SPACE}${2})" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function ChooseProxyURL(){ |
|
|
|
|
clear |
|
|
|
|
echo -e '+---------------------------------------------------+' |
|
|
|
|
echo -e '| |' |
|
|
|
|
echo -e '| ============================================= |' |
|
|
|
|
echo -e '| |' |
|
|
|
|
echo -e '| 欢迎使用 Linux 一键安装mdserver-web面板源码 |' |
|
|
|
|
echo -e '| |' |
|
|
|
|
echo -e '| ============================================= |' |
|
|
|
|
echo -e '| |' |
|
|
|
|
echo -e '+---------------------------------------------------+' |
|
|
|
|
echo -e '' |
|
|
|
|
echo -e '#####################################################' |
|
|
|
|
echo -e '' |
|
|
|
|
echo -e ' 提供以下国内代理地址可供选择: ' |
|
|
|
|
echo -e '' |
|
|
|
|
echo -e '#####################################################' |
|
|
|
|
echo -e '' |
|
|
|
|
cm_i=0 |
|
|
|
|
for V in ${SOURCE_LIST_KEY[@]}; do |
|
|
|
|
num=`expr $cm_i + 1` |
|
|
|
|
AutoSizeStr "${V}" "$num" |
|
|
|
|
cm_i=`expr $cm_i + 1` |
|
|
|
|
done |
|
|
|
|
echo -e '' |
|
|
|
|
echo -e '#####################################################' |
|
|
|
|
echo -e '' |
|
|
|
|
echo -e " 系统时间 ${BLUE}$(date "+%Y-%m-%d %H:%M:%S")${PLAIN}" |
|
|
|
|
echo -e '' |
|
|
|
|
echo -e '#####################################################' |
|
|
|
|
CHOICE_A=$(echo -e "\n${BOLD}└─ 请选择并输入你想使用的代理地址 [ 1-${SOURCE_LIST_LEN} ]:${PLAIN}") |
|
|
|
|
|
|
|
|
|
read -p "${CHOICE_A}" INPUT |
|
|
|
|
# echo $INPUT |
|
|
|
|
if [ "$INPUT" == "" ];then |
|
|
|
|
INPUT=1 |
|
|
|
|
TMP_INPUT=`expr $INPUT - 1` |
|
|
|
|
INPUT_KEY=${SOURCE_LIST_KEY[$TMP_INPUT]} |
|
|
|
|
echo -e "\n默认选择[${BLUE}${INPUT_KEY}${PLAIN}]安装!" |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
if [ "$INPUT" -lt "0" ];then |
|
|
|
|
INPUT=1 |
|
|
|
|
TMP_INPUT=`expr $INPUT - 1` |
|
|
|
|
INPUT_KEY=${SOURCE_LIST_KEY[$TMP_INPUT]} |
|
|
|
|
echo -e "\n低于边界错误!选择[${BLUE}${INPUT_KEY}${PLAIN}]安装!" |
|
|
|
|
sleep 2s |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
if [ "$INPUT" -gt "${SOURCE_LIST_LEN}" ];then |
|
|
|
|
INPUT=${SOURCE_LIST_LEN} |
|
|
|
|
TMP_INPUT=`expr $INPUT - 1` |
|
|
|
|
INPUT_KEY=${SOURCE_LIST_KEY[$TMP_INPUT]} |
|
|
|
|
echo -e "\n超出边界错误!选择[${BLUE}${INPUT_KEY}${PLAIN}]安装!" |
|
|
|
|
sleep 2s |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
INPUT=`expr $INPUT - 1` |
|
|
|
|
INPUT_KEY=${SOURCE_LIST_KEY[$INPUT]} |
|
|
|
|
HTTP_PREFIX=${PROXY_URL[$INPUT_KEY]} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if [ "$LOCAL_ADDR" != "common" ];then |
|
|
|
|
ChooseProxyURL |
|
|
|
|
|
|
|
|
|
if [ "$DOMAIN" != "http://" ];then |
|
|
|
|
DOMAIN=`echo $HTTP_PREFIX | sed 's|https://||g'` |
|
|
|
|
DOMAIN=`echo $DOMAIN | sed 's|/||g'` |
|
|
|
|
ping -c 3 $DOMAIN > /dev/null 2>&1 |
|
|
|
|
if [ "$?" != "0" ];then |
|
|
|
|
echo "无效代理地址:${DOMAIN}" |
|
|
|
|
exit |
|
|
|
|
fi |
|
|
|
|
fi |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
if [ -f /etc/motd ];then |
|
|
|
|
echo "welcome to mdserver-web panel" > /etc/motd |
|
|
|
|
fi |
|
|
|
@ -76,24 +203,8 @@ if [ "$EUID" -ne 0 ] && [ "$OSNAME" != "macos" ];then |
|
|
|
|
exit |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# HTTP_PREFIX="https://" |
|
|
|
|
# LOCAL_ADDR=common |
|
|
|
|
# ping -c 1 github.com > /dev/null 2>&1 |
|
|
|
|
# if [ "$?" != "0" ];then |
|
|
|
|
# LOCAL_ADDR=cn |
|
|
|
|
# HTTP_PREFIX="https://mirror.ghproxy.com/" |
|
|
|
|
# fi |
|
|
|
|
|
|
|
|
|
HTTP_PREFIX="https://" |
|
|
|
|
LOCAL_ADDR=common |
|
|
|
|
cn=$(curl -fsSL -m 10 -s http://ipinfo.io/json | grep "\"country\": \"CN\"") |
|
|
|
|
if [ ! -z "$cn" ] || [ "$?" == "0" ] ;then |
|
|
|
|
LOCAL_ADDR=cn |
|
|
|
|
HTTP_PREFIX="https://mirror.ghproxy.com/" |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
echo "local:${LOCAL_ADDR}" |
|
|
|
|
echo "LOCAL:${LOCAL_ADDR}" |
|
|
|
|
echo "OSNAME:${OSNAME}" |
|
|
|
|
|
|
|
|
|
if [ $OSNAME != "macos" ];then |
|
|
|
|
if id www &> /dev/null ;then |
|
|
|
@ -109,44 +220,30 @@ if [ $OSNAME != "macos" ];then |
|
|
|
|
mkdir -p /www/backup/database |
|
|
|
|
mkdir -p /www/backup/site |
|
|
|
|
|
|
|
|
|
# https://cdn.jsdelivr.net/gh/midoks/mdserver-web@latest/scripts/install.sh |
|
|
|
|
if [ ! -d /www/server/mdserver-web ];then |
|
|
|
|
if [ "$LOCAL_ADDR" == "common" ];then |
|
|
|
|
curl --insecure -sSLo /tmp/master.zip ${HTTP_PREFIX}github.com/midoks/mdserver-web/archive/refs/heads/master.zip |
|
|
|
|
cd /tmp && unzip /tmp/master.zip |
|
|
|
|
mv -f /tmp/mdserver-web-master /www/server/mdserver-web |
|
|
|
|
rm -rf /tmp/master.zip |
|
|
|
|
rm -rf /tmp/mdserver-web-master |
|
|
|
|
else |
|
|
|
|
# curl --insecure -sSLo /tmp/master.zip https://code.midoks.icu/midoks/mdserver-web/archive/master.zip |
|
|
|
|
wget --no-check-certificate -O /tmp/master.zip https://code.midoks.icu/midoks/mdserver-web/archive/master.zip |
|
|
|
|
cd /tmp && unzip /tmp/master.zip |
|
|
|
|
mv -f /tmp/mdserver-web /www/server/mdserver-web |
|
|
|
|
rm -rf /tmp/master.zip |
|
|
|
|
rm -rf /tmp/mdserver-web |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
curl --insecure -sSLo /tmp/master.zip ${HTTP_PREFIX}github.com/midoks/mdserver-web/archive/refs/heads/master.tar.gz |
|
|
|
|
cd /tmp && tar -zxvf /tmp/master.tar.gz |
|
|
|
|
mv -f /tmp/mdserver-web-master /www/server/mdserver-web |
|
|
|
|
rm -rf /tmp/master.tar.gz |
|
|
|
|
rm -rf /tmp/mdserver-web-master |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
# install acme.sh |
|
|
|
|
if [ ! -d /root/.acme.sh ];then |
|
|
|
|
if [ "$LOCAL_ADDR" != "common" ];then |
|
|
|
|
curl --insecure -sSLo /tmp/acme.tar.gz https://gitee.com/neilpang/acme.sh/repository/archive/master.tar.gz |
|
|
|
|
tar xvzf /tmp/acme.tar.gz -C /tmp |
|
|
|
|
cd /tmp/acme.sh-master |
|
|
|
|
curl --insecure -sSLo /tmp/acme.sh-master.tar.gz ${HTTP_PREFIX}github.com/acmesh-official/acme.sh/archive/refs/heads/master.tar.gz |
|
|
|
|
tar xvzf /tmp/acme.sh-master.tar.gz -C /tmp |
|
|
|
|
cd /tmp/acme.sh-master.tar.gz |
|
|
|
|
bash acme.sh install |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
if [ ! -d /root/.acme.sh ];then |
|
|
|
|
curl https://get.acme.sh | sh |
|
|
|
|
else |
|
|
|
|
curl -fsSL https://get.acme.sh | bash |
|
|
|
|
fi |
|
|
|
|
fi |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
echo "use system version: ${OSNAME}" |
|
|
|
|
if [ "${OSNAME}" == "macos" ];then |
|
|
|
|
curl --insecure -fsSL https://code.midoks.icu/midoks/mdserver-web/raw/branch/master/scripts/install/macos.sh | bash |
|
|
|
|
curl --insecure -fsSL ${HTTP_PREFIX}raw.githubusercontent.com/midoks/mdserver-web/refs/heads/dev/scripts/install/macos.sh | bash |
|
|
|
|
else |
|
|
|
|
cd /www/server/mdserver-web && bash scripts/install/${OSNAME}.sh |
|
|
|
|
fi |
|
|
|
|