diff --git a/README.md b/README.md index b4d210106..76298c0bd 100644 --- a/README.md +++ b/README.md @@ -182,11 +182,6 @@ curl --insecure -fsSL https://raw.githubusercontent.com/midoks/mdserver-web/dev curl --insecure -fsSL https://code.midoks.icu/midoks/mdserver-web/raw/branch/dev/scripts/install_dev.sh | bash curl --insecure -fsSL https://code.midoks.icu/midoks/mdserver-web/raw/branch/dev/scripts/update_dev.sh | bash - - - -curl --insecure -fsSL https://raw.githubusercontent.com/midoks/mdserver-web/dev/scripts/install_new.sh | bash -curl --insecure -fsSL https://raw.githubusercontent.com/midoks/mdserver-web/dev/scripts/update_new.sh | bash ``` ### 旧版安装 diff --git a/scripts/install_new.sh b/scripts/install_new.sh deleted file mode 100755 index cde638325..000000000 --- a/scripts/install_new.sh +++ /dev/null @@ -1,189 +0,0 @@ -#!/bin/bash -PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:/opt/homebrew/bin -export PATH -# LANG=en_US.UTF-8 -is64bit=`getconf LONG_BIT` - -if [ -f /www/server/mdserver-web/tools.py ];then - echo -e "存在旧版代码,不能安装!,已知风险的情况下" - echo -e "rm -rf /www/server/mdserver-web" - echo -e "可安装!" - exit 0 -fi - -echo -e "您正在安装的是\033[31mmdserver-web测试版\033[0m,非开发测试用途请使用正式版 install.sh !" -echo -e "You are installing\033[31m mdserver-web dev version\033[0m, normally use install.sh for production.\n" -sleep 1 - -LOG_FILE=/var/log/mw-install.log - -{ - -if [ -f /etc/motd ];then - echo "welcome to mdserver-web panel" > /etc/motd -fi - -startTime=`date +%s` - -_os=`uname` -echo "use system: ${_os}" - - -if [ ${_os} == "Darwin" ]; then - OSNAME='macos' -elif grep -Eq "openSUSE" /etc/*-release; then - OSNAME='opensuse' - zypper refresh - zypper install -y wget curl zip unzip unrar rar -elif grep -Eq "FreeBSD" /etc/*-release; then - OSNAME='freebsd' - pkg install -y wget curl zip unzip unrar rar -elif grep -Eqi "EulerOS" /etc/*-release || grep -Eqi "openEuler" /etc/*-release; then - OSNAME='euler' - yum install -y wget curl zip unzip tar crontabs -elif grep -Eqi "CentOS" /etc/issue || grep -Eqi "CentOS" /etc/*-release; then - OSNAME='rhel' - yum install -y wget zip unzip tar -elif grep -Eqi "Fedora" /etc/issue || grep -Eqi "Fedora" /etc/*-release; then - OSNAME='rhel' - yum install -y wget zip unzip tar -elif grep -Eqi "Rocky" /etc/issue || grep -Eqi "Rocky" /etc/*-release; then - OSNAME='rhel' - yum install -y wget zip unzip -elif grep -Eqi "AlmaLinux" /etc/issue || grep -Eqi "AlmaLinux" /etc/*-release; then - OSNAME='rhel' - yum install -y wget zip unzip tar -elif grep -Eqi "Amazon Linux" /etc/issue || grep -Eqi "Amazon Linux" /etc/*-release; then - OSNAME='amazon' - yum install -y wget zip unzip tar -elif grep -Eqi "Ubuntu" /etc/issue || grep -Eqi "Ubuntu" /etc/*-release; then - OSNAME='ubuntu' - apt install -y wget zip unzip tar -elif grep -Eqi "Debian" /etc/issue || grep -Eqi "Debian" /etc/*-release; then - OSNAME='debian' - apt update -y - apt install -y devscripts - apt install -y wget zip unzip tar -else - OSNAME='unknow' -fi - -if [ "$EUID" -ne 0 ] && [ "$OSNAME" != "macos" ];then - echo "Please run as root!" - 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 "OSNAME:${OSNAME}" - -if [ $OSNAME != "macos" ];then - - if id www &> /dev/null ;then - echo "" - else - groupadd www - useradd -g www -s /usr/sbin/nologin www - fi - - mkdir -p /www/server - mkdir -p /www/wwwroot - mkdir -p /www/wwwlogs - mkdir -p /www/backup/database - mkdir -p /www/backup/site - - if [ ! -d /www/server/mdserver-web ];then - - if [ "$LOCAL_ADDR" == "common" ];then - curl --insecure -sSLo /tmp/dev.zip ${HTTP_PREFIX}github.com/midoks/mdserver-web/archive/refs/heads/dev.zip - cd /tmp && unzip /tmp/dev.zip - mv -f /tmp/mdserver-web-dev /www/server/mdserver-web - rm -rf /tmp/dev.zip - rm -rf /tmp/mdserver-web-dev - else - # curl --insecure -sSLo /tmp/dev.zip https://code.midoks.icu/midoks/mdserver-web/archive/dev.zip - wget --no-check-certificate -O /tmp/dev.zip https://code.midoks.icu/midoks/mdserver-web/archive/dev.zip - cd /tmp && unzip /tmp/dev.zip - mv -f /tmp/mdserver-web /www/server/mdserver-web - rm -rf /tmp/dev.zip - rm -rf /tmp/mdserver-web - fi - fi - - # install acme.sh - if [ ! -d /root/.acme.sh ];then - if [ "$LOCAL_ADDR" != "common" ];then - # curl -sSL -o /tmp/acme.tar.gz ${HTTP_PREFIX}github.com/acmesh-official/acme.sh/archive/master.tar.gz - 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 - bash acme.sh install - fi - - if [ ! -d /root/.acme.sh ];then - curl https://get.acme.sh | sh - 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 -else - cd /www/server/mdserver-web && bash scripts/install/${OSNAME}.sh -fi - -if [ "${OSNAME}" == "macos" ];then - echo "macos end" - exit 0 -fi - -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 -while [ ! -f /etc/rc.d/init.d/mw ]; -do - echo -e ".\c" - sleep 1 - let n+=1 - if [ $n -gt 20 ];then - echo -e "start mw fail" - exit 1 - 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 - -sleep 2 -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 - fi -fi - -endTime=`date +%s` -((outTime=(${endTime}-${startTime})/60)) -echo -e "Time consumed:\033[32m $outTime \033[0mMinute!" - -} 1> >(tee $LOG_FILE) 2>&1 - -echo -e "\nInstall completed. If error occurs, please contact us with the log file mw-install.log ." -echo "安装完毕,如果出现错误,请带上同目录下的安装日志 mw-install.log 联系我们反馈." \ No newline at end of file diff --git a/scripts/update_new.sh b/scripts/update_new.sh deleted file mode 100755 index 1f8caa7aa..000000000 --- a/scripts/update_new.sh +++ /dev/null @@ -1,134 +0,0 @@ -#!/bin/bash -PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:/opt/homebrew/bin -export PATH -# LANG=en_US.UTF-8 -is64bit=`getconf LONG_BIT` - -startTime=`date +%s` - -if [ -f /www/server/mdserver-web/tools.py ];then - echo -e "存在旧版代码,不能安装!,已知风险的情况下" - echo -e "rm -rf /www/server/mdserver-web" - echo -e "可安装!" - exit 0 -fi - -_os=`uname` -echo "use system: ${_os}" - -if [ "$EUID" -ne 0 ] - then echo "Please run as root!" - exit -fi - -if [ ${_os} != "Darwin" ] && [ ! -d /www/server/mdserver-web/logs ]; then - mkdir -p /www/server/mdserver-web/logs -fi - -LOG_FILE=/var/log/mw-update.log - -{ - -if [ ${_os} == "Darwin" ]; then - OSNAME='macos' -elif grep -Eqi "openSUSE" /etc/*-release; then - OSNAME='opensuse' - zypper refresh -elif grep -Eqi "EulerOS" /etc/*-release || grep -Eqi "openEuler" /etc/*-release; then - OSNAME='euler' -elif grep -Eqi "FreeBSD" /etc/*-release; then - OSNAME='freebsd' -elif grep -Eqi "CentOS" /etc/issue || grep -Eqi "CentOS" /etc/*-release; then - OSNAME='centos' - yum install -y wget zip unzip -elif grep -Eqi "Fedora" /etc/issue || grep -Eqi "Fedora" /etc/*-release; then - OSNAME='rhel' - yum install -y wget zip unzip -elif grep -Eqi "Rocky" /etc/issue || grep -Eqi "Rocky" /etc/*-release; then - OSNAME='rhel' - yum install -y wget zip unzip -elif grep -Eqi "AlmaLinux" /etc/issue || grep -Eqi "AlmaLinux" /etc/*-release; then - OSNAME='rhel' - yum install -y wget zip unzip -elif grep -Eqi "Amazon Linux" /etc/issue || grep -Eqi "Amazon Linux" /etc/*-release; then - OSNAME='amazon' - yum install -y wget zip unzip -elif grep -Eqi "Debian" /etc/issue || grep -Eqi "Debian" /etc/*-release; then - OSNAME='debian' - apt install -y wget zip unzip -elif grep -Eqi "Ubuntu" /etc/issue || grep -Eqi "Ubuntu" /etc/*-release; then - OSNAME='ubuntu' - apt install -y wget zip unzip -elif grep -Eqi "Raspbian" /etc/issue || grep -Eqi "Raspbian" /etc/*-release; then - OSNAME='raspbian' -else - OSNAME='unknow' -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}" - -CP_CMD=/usr/bin/cp -if [ -f /bin/cp ];then - CP_CMD=/bin/cp -fi - -echo "update mdserver-web code start" - -if [ "$LOCAL_ADDR" != "common" ];then - wget --no-check-certificate -O /tmp/dev.zip https://code.midoks.icu/midoks/mdserver-web/archive/dev.zip - # curl --insecure -sSLo /tmp/dev.zip https://code.midoks.icu/midoks/mdserver-web/archive/dev.zip - cd /tmp && unzip /tmp/dev.zip - - $CP_CMD -rf /tmp/mdserver-web/* /www/server/mdserver-web - rm -rf /tmp/master.zip - rm -rf /tmp/mdserver-web -else - curl --insecure -sSLo /tmp/dev.zip ${HTTP_PREFIX}github.com/midoks/mdserver-web/archive/refs/heads/dev.zip - cd /tmp && unzip /tmp/dev.zip - $CP_CMD -rf /tmp/mdserver-web-dev/* /www/server/mdserver-web - rm -rf /tmp/dev.zip - rm -rf /tmp/mdserver-web-dev -fi - -echo "update mdserver-web code end" - -rm -rf /tmp/dev.zip -rm -rf /tmp/mdserver-web-dev - -#pip uninstall public -echo "use system version: ${OSNAME}" -cd /www/server/mdserver-web && bash scripts/update/${OSNAME}.sh - -bash /etc/rc.d/init.d/mw restart -bash /etc/rc.d/init.d/mw default - -if [ -f /usr/bin/mw ];then - rm -rf /usr/bin/mw -fi - -if [ ! -e /usr/bin/mw ]; then - if [ ! -f /usr/bin/mw ];then - ln -s /etc/rc.d/init.d/mw /usr/bin/mw - fi -fi - -endTime=`date +%s` -((outTime=($endTime-$startTime)/60)) -echo -e "Time consumed:\033[32m $outTime \033[0mMinute!" - -} 1> >(tee $LOG_FILE) 2>&1 \ No newline at end of file diff --git a/web/setting.py b/web/setting.py index 85d5e112e..a677e0ed8 100755 --- a/web/setting.py +++ b/web/setting.py @@ -47,7 +47,7 @@ if os.path.exists(default_port_file): else: from utils.firewall import Firewall as MwFirewall panel_port = str(random.randint(10000, 65530)) - MwFirewall.instance().addAcceptPort(panel_port, 'PANEL端口', 'port') + MwFirewall.instance().addPanelPort(panel_port) mw.writeFile(default_port_file, panel_port) bind = [] diff --git a/web/utils/firewall.py b/web/utils/firewall.py index 0aebdf227..993fc7004 100644 --- a/web/utils/firewall.py +++ b/web/utils/firewall.py @@ -309,6 +309,18 @@ class Firewall(object): mw.writeLog("防火墙管理", msg) return mw.returnData(True, msg) + def addPanelPort(self, port): + protocol = 'tcp' + ps = 'PANEL端口' + + thisdb.addFirewall(port, ps=ps,protocol=protocol) + self.addAcceptPortCmd(port, protocol=protocol) + self.reload() + + msg = mw.getInfo('放行端口[{1}][{2}]成功', (port, protocol,)) + mw.writeLog("防火墙管理", msg) + return mw.returnData(True, msg) + def delAcceptPort(self, firewall_id, port, protocol='tcp' ):