mdserver-web/scripts/init.d/mw.tpl

613 lines
16 KiB
Smarty
Raw Normal View History

2018-12-12 05:06:02 -05:00
#!/bin/bash
2019-03-15 02:33:33 -04:00
# chkconfig: 2345 55 25
# description: MW Cloud Service
### BEGIN INIT INFO
2022-08-07 08:44:20 -04:00
# Provides: Midoks
2019-03-15 02:33:33 -04:00
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts mw
# Description: starts the mw
### END INIT INFO
2023-10-07 12:26:34 -04:00
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]'
2019-03-15 02:33:33 -04:00
2021-11-11 04:29:41 -05:00
PATH=/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
2023-01-27 22:22:57 -05:00
export LANG=en_US.UTF-8
2018-12-12 05:06:02 -05:00
2024-11-01 04:51:45 -04:00
PANEL_DIR={$SERVER_PATH}
ROOT_PATH=$(dirname "$PANEL_DIR")
2024-11-01 05:13:06 -04:00
PATH=$PATH:${PANEL_DIR}/bin
2022-06-14 13:01:23 -04:00
2024-11-01 04:51:45 -04:00
if [ -f ${PANEL_DIR}/bin/activate ];then
source ${PANEL_DIR}/bin/activate
2023-08-24 10:12:02 -04:00
if [ "$?" != "0" ];then
echo "load local python env fail!"
fi
2021-11-02 06:20:35 -04:00
fi
2022-06-26 11:25:27 -04:00
mw_start_panel()
{
isStart=`ps -ef|grep 'gunicorn -c setting.py app:app' |grep -v grep|awk '{print $2}'`
if [ "$isStart" == '' ];then
2022-11-14 04:25:21 -05:00
echo -e "starting mw-panel... \c"
2024-11-01 04:51:45 -04:00
cd ${PANEL_DIR}/web && gunicorn -c setting.py app:app
port=$(cat ${PANEL_DIR}/data/port.pl)
2022-06-26 11:25:27 -04:00
isStart=""
while [[ "$isStart" == "" ]];
do
echo -e ".\c"
sleep 0.5
isStart=$(lsof -n -P -i:$port|grep LISTEN|grep -v grep|awk '{print $2}'|xargs)
let n+=1
2023-09-13 11:17:16 -04:00
if [ $n -gt 60 ];then
2022-06-26 11:25:27 -04:00
break;
2018-12-12 05:06:02 -05:00
fi
2022-06-26 11:25:27 -04:00
done
if [ "$isStart" == '' ];then
2022-11-14 04:25:21 -05:00
echo -e "\033[31mfailed\033[0m"
echo '------------------------------------------------------'
2024-11-01 04:51:45 -04:00
tail -n 20 ${PANEL_DIR}/logs/panel_error.log
2022-11-14 04:25:21 -05:00
echo '------------------------------------------------------'
echo -e "\033[31mError: mw-panel service startup failed.\033[0m"
return;
2022-06-26 11:25:27 -04:00
fi
echo -e "\033[32mdone\033[0m"
2018-12-12 05:06:02 -05:00
else
2022-11-14 06:20:11 -05:00
echo "starting mw-panel... mw(pid $(echo $isStart)) already running"
2018-12-12 05:06:02 -05:00
fi
2022-06-26 11:25:27 -04:00
}
2018-12-12 05:45:33 -05:00
2022-06-26 11:25:27 -04:00
mw_start_task()
{
2024-11-01 04:51:45 -04:00
isStart=$(ps aux |grep 'panel_task.py'|grep -v grep|awk '{print $2}')
2018-12-12 05:45:33 -05:00
if [ "$isStart" == '' ];then
2022-11-14 06:20:11 -05:00
echo -e "starting mw-tasks... \c"
2024-11-01 04:51:45 -04:00
cd ${PANEL_DIR} && python3 panel_task.py >> ${PANEL_DIR}/logs/panel_task.log 2>&1 &
2022-06-26 11:25:27 -04:00
sleep 0.3
2024-11-01 04:51:45 -04:00
isStart=$(ps aux |grep 'panel_task.py'|grep -v grep|awk '{print $2}')
2022-06-26 11:25:27 -04:00
if [ "$isStart" == '' ];then
2022-11-14 04:25:21 -05:00
echo -e "\033[31mfailed\033[0m"
echo '------------------------------------------------------'
2024-11-01 04:51:45 -04:00
tail -n 20 ${PANEL_DIR}/logs/panel_task.log
2022-11-14 04:25:21 -05:00
echo '------------------------------------------------------'
echo -e "\033[31mError: mw-tasks service startup failed.\033[0m"
return;
2022-06-26 11:25:27 -04:00
fi
echo -e "\033[32mdone\033[0m"
2018-12-12 05:45:33 -05:00
else
2022-11-14 05:12:09 -05:00
echo "starting mw-tasks... mw-tasks (pid $(echo $isStart)) already running"
2018-12-12 05:45:33 -05:00
fi
2018-12-12 05:06:02 -05:00
}
2022-06-26 11:25:27 -04:00
mw_start()
{
mw_start_task
2022-07-04 11:22:31 -04:00
mw_start_panel
2022-06-26 11:25:27 -04:00
}
2018-12-12 05:06:02 -05:00
2022-07-11 01:56:00 -04:00
# /www/server/mdserver-web/tmp/panelTask.pl && service mw restart_task
2022-06-26 11:25:27 -04:00
mw_stop_task()
2018-12-12 06:21:44 -05:00
{
2024-11-03 05:57:50 -05:00
if [ -f ${PANEL_DIR}/logs/panel_task.lock ];then
2022-11-14 05:12:09 -05:00
echo -e "\033[32mthe task is running and cannot be stopped\033[0m"
2022-07-04 11:06:50 -04:00
exit 0
fi
2022-11-14 05:12:09 -05:00
echo -e "stopping mw-tasks... \c";
2024-11-01 04:51:45 -04:00
pids=$(ps aux | grep 'panel_task.py'|grep -v grep|awk '{print $2}')
2018-12-12 06:21:44 -05:00
arr=($pids)
for p in ${arr[@]}
do
2023-02-05 02:20:08 -05:00
kill -9 $p > /dev/null 2>&1
2018-12-12 06:21:44 -05:00
done
echo -e "\033[32mdone\033[0m"
2022-06-26 11:25:27 -04:00
}
2018-12-12 05:06:02 -05:00
2022-06-26 11:25:27 -04:00
mw_stop_panel()
{
2022-11-14 05:12:09 -05:00
echo -e "stopping mw-panel... \c";
2023-08-24 08:09:53 -04:00
2024-11-01 14:19:58 -04:00
pidfile=${PANEL_DIR}/logs/mw.pid
2023-08-24 08:09:53 -04:00
if [ -f $pidfile ];then
pid=`cat $pidfile`
kill -9 $pid > /dev/null 2>&1
rm -f $pidfile
fi
2018-12-12 06:21:44 -05:00
arr=`ps aux|grep 'gunicorn -c setting.py app:app'|grep -v grep|awk '{print $2}'`
2022-06-26 11:25:27 -04:00
for p in ${arr[@]}
2018-12-12 06:21:44 -05:00
do
2023-02-05 02:19:50 -05:00
kill -9 $p > /dev/null 2>&1
2018-12-12 06:21:44 -05:00
done
echo -e "\033[32mdone\033[0m"
}
2022-06-26 11:25:27 -04:00
mw_stop()
{
mw_stop_task
2022-07-04 11:22:31 -04:00
mw_stop_panel
2022-06-26 11:25:27 -04:00
}
2018-12-12 06:21:44 -05:00
mw_status()
{
2022-11-14 04:26:08 -05:00
isStart=$(ps aux|grep 'gunicorn -c setting.py app:app'|grep -v grep|awk '{print $2}')
if [ "$isStart" != '' ];then
echo -e "\033[32mmw (pid $(echo $isStart)) already running\033[0m"
else
echo -e "\033[31mmw not running\033[0m"
fi
2024-11-01 04:51:45 -04:00
isStart=$(ps aux |grep 'panel_task.py'|grep -v grep|awk '{print $2}')
2022-11-14 04:26:08 -05:00
if [ "$isStart" != '' ];then
echo -e "\033[32mmw-task (pid $isStart) already running\033[0m"
else
echo -e "\033[31mmw-task not running\033[0m"
fi
2018-12-12 06:21:44 -05:00
}
mw_reload()
{
isStart=$(ps aux|grep 'gunicorn -c setting.py app:app'|grep -v grep|awk '{print $2}')
if [ "$isStart" != '' ];then
2022-11-14 05:12:09 -05:00
echo -e "reload mw... \c";
2018-12-12 06:21:44 -05:00
arr=`ps aux|grep 'gunicorn -c setting.py app:app'|grep -v grep|awk '{print $2}'`
for p in ${arr[@]}
do
kill -9 $p
done
2024-11-01 04:51:45 -04:00
cd ${PANEL_DIR}/web && gunicorn -c setting.py app:app
2018-12-12 06:21:44 -05:00
isStart=`ps aux|grep 'gunicorn -c setting.py app:app'|grep -v grep|awk '{print $2}'`
if [ "$isStart" == '' ];then
2022-11-14 04:26:08 -05:00
echo -e "\033[31mfailed\033[0m"
echo '------------------------------------------------------'
tail -n 20 $mw_path/logs/error.log
echo '------------------------------------------------------'
echo -e "\033[31mError: mw service startup failed.\033[0m"
return;
2018-12-12 06:21:44 -05:00
fi
echo -e "\033[32mdone\033[0m"
else
echo -e "\033[31mmw not running\033[0m"
2018-12-12 05:06:02 -05:00
mw_start
2018-12-12 06:21:44 -05:00
fi
}
2022-11-27 22:50:55 -05:00
mw_close(){
2024-11-01 04:51:45 -04:00
echo 'True' > ${PANEL_DIR}/data/close.pl
2022-11-27 22:50:55 -05:00
}
mw_open()
{
2024-11-01 04:51:45 -04:00
if [ -f ${PANEL_DIR}/data/close.pl ];then
rm -rf ${PANEL_DIR}/data/close.pl
2022-11-27 22:50:55 -05:00
fi
}
2022-12-03 00:27:24 -05:00
mw_unbind_domain()
{
2024-11-01 04:51:45 -04:00
if [ -f ${PANEL_DIR}/data/bind_domain.pl ];then
rm -rf ${PANEL_DIR}/data/bind_domain.pl
2022-12-03 00:27:24 -05:00
fi
}
2024-05-27 00:12:41 -04:00
mw_unbind_ssl()
{
2024-11-01 04:51:45 -04:00
if [ -f ${PANEL_DIR}/local ];then
rm -rf ${PANEL_DIR}/local
2024-05-27 00:12:41 -04:00
fi
if [ -f $mw_path/nginx ];then
rm -rf $mw_path/nginx
fi
if [ -f $mw_path/ssl/choose.pl ];then
rm -rf $mw_path/ssl/choose.pl
fi
}
2018-12-12 06:21:44 -05:00
error_logs()
{
2024-11-01 04:51:45 -04:00
tail -n 100 ${PANEL_DIR}/logs/panel_error.log
2018-12-12 06:21:44 -05:00
}
2022-10-08 12:30:03 -04:00
mw_update()
{
2024-11-01 04:51:45 -04:00
if [ -f ${PANEL_DIR}/task.py ];then
2024-10-31 14:40:33 -04:00
echo "与后续版本差异太大,不再提供更新"
exit 0
fi
2023-02-24 04:22:22 -05:00
LOCAL_ADDR=common
2023-11-18 04:08:59 -05:00
cn=$(curl -fsSL -m 10 -s http://ipinfo.io/json | grep "\"country\": \"CN\"")
if [ ! -z "$cn" ] || [ "$?" == "0" ] ;then
2023-02-24 04:22:22 -05:00
LOCAL_ADDR=cn
fi
2023-11-18 04:08:59 -05:00
2023-02-24 04:22:22 -05:00
if [ "$LOCAL_ADDR" == "common" ];then
2023-02-17 02:20:52 -05:00
curl --insecure -fsSL https://raw.githubusercontent.com/midoks/mdserver-web/master/scripts/update.sh | bash
2023-02-24 04:22:22 -05:00
else
2023-12-04 03:23:54 -05:00
curl --insecure -fsSL https://code.midoks.icu/midoks/mdserver-web/raw/branch/dev/scripts/update.sh | bash
2022-11-18 08:15:26 -05:00
fi
2022-10-08 12:30:03 -04:00
}
mw_update_dev()
{
2024-11-01 04:51:45 -04:00
if [ -f ${PANEL_DIR}/task.py ];then
2024-10-31 14:40:33 -04:00
echo "与后续版本差异太大,不再提供更新"
exit 0
fi
2024-07-10 16:33:51 -04:00
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
curl --insecure -fsSL https://raw.githubusercontent.com/midoks/mdserver-web/dev/scripts/update_dev.sh | bash
else
curl --insecure -fsSL https://code.midoks.icu/midoks/mdserver-web/raw/branch/dev/scripts/update_dev.sh | bash
fi
2024-11-01 04:51:45 -04:00
cd ${PANEL_DIR}
2024-07-10 16:33:51 -04:00
}
mw_update_venv()
{
2024-11-01 04:51:45 -04:00
rm -rf ${PANEL_DIR}/bin
rm -rf ${PANEL_DIR}/lib64
rm -rf ${PANEL_DIR}/lib
2024-07-03 04:19:12 -04:00
2023-02-24 04:22:22 -05:00
LOCAL_ADDR=common
2023-11-16 04:49:21 -05:00
cn=$(curl -fsSL -m 10 -s http://ipinfo.io/json | grep "\"country\": \"CN\"")
if [ ! -z "$cn" ] || [ "$?" == "0" ] ;then
2023-02-24 04:22:22 -05:00
LOCAL_ADDR=cn
fi
2023-11-16 04:49:21 -05:00
2023-02-24 04:22:22 -05:00
if [ "$LOCAL_ADDR" == "common" ];then
2023-02-17 02:20:39 -05:00
curl --insecure -fsSL https://raw.githubusercontent.com/midoks/mdserver-web/dev/scripts/update_dev.sh | bash
2023-02-24 04:22:22 -05:00
else
2023-12-04 03:23:54 -05:00
curl --insecure -fsSL https://code.midoks.icu/midoks/mdserver-web/raw/branch/dev/scripts/update_dev.sh | bash
2022-11-18 08:15:26 -05:00
fi
2024-11-01 04:51:45 -04:00
cd ${PANEL_DIR}
2022-10-08 12:30:03 -04:00
}
2023-01-19 09:18:35 -05:00
mw_mirror()
{
2023-02-24 04:22:22 -05:00
LOCAL_ADDR=common
2023-11-18 04:08:46 -05:00
cn=$(curl -fsSL -m 10 -s http://ipinfo.io/json | grep "\"country\": \"CN\"")
if [ ! -z "$cn" ] || [ "$?" == "0" ] ;then
2023-02-24 04:22:22 -05:00
LOCAL_ADDR=cn
fi
2023-11-18 04:08:59 -05:00
2023-02-24 04:22:22 -05:00
if [ "$LOCAL_ADDR" == "common" ];then
2023-02-17 02:22:15 -05:00
bash <(curl --insecure -sSL https://raw.githubusercontent.com/midoks/change-linux-mirrors/main/change-mirrors.sh)
2023-02-24 04:22:22 -05:00
else
bash <(curl --insecure -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh)
2023-01-19 09:18:35 -05:00
fi
2024-11-01 04:51:45 -04:00
cd ${ROOT_PATH}
2023-01-19 09:18:35 -05:00
}
2022-10-10 07:54:23 -04:00
mw_install_app()
{
bash $mw_path/scripts/quick/app.sh
}
2022-11-12 03:11:06 -05:00
mw_close_admin_path(){
if [ -f $mw_path/data/admin_path.pl ]; then
rm -rf $mw_path/data/admin_path.pl
fi
}
2022-11-13 03:14:39 -05:00
mw_force_kill()
{
PLIST=`ps -ef|grep app:app |grep -v grep|awk '{print $2}'`
for i in $PLIST
do
kill -9 $i
done
pids=`ps -ef|grep task.py | grep -v grep |awk '{print $2}'`
arr=($pids)
for p in ${arr[@]}
do
kill -9 $p
done
}
2022-11-13 02:54:12 -05:00
mw_debug(){
2022-11-13 02:55:28 -05:00
mw_stop
2022-11-13 03:14:39 -05:00
mw_force_kill
2022-11-13 02:54:12 -05:00
port=7200
2024-11-01 04:51:45 -04:00
if [ -f ${PANEL_DIR}/data/port.pl ];then
port=$(cat ${PANEL_DIR}/data/port.pl)
2022-11-13 02:54:12 -05:00
fi
2022-11-13 02:55:28 -05:00
2024-11-01 04:51:45 -04:00
if [ -d ${PANEL_DIR}/web ];then
cd ${PANEL_DIR}/web
2022-11-14 06:56:31 -05:00
fi
2024-11-23 14:53:23 -05:00
gunicorn -b :$port -k eventlet -w 1 app:app
2022-11-13 02:54:12 -05:00
}
2023-10-07 12:26:34 -04:00
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})"
}
2023-10-04 09:34:23 -04:00
mw_connect_mysql(){
2023-11-08 03:19:49 -05:00
# choose mysql login
declare -A DB_TYPE
if [ -d "${ROOT_PATH}/mysql" ];then
DB_TYPE["mysql"]="mysql"
fi
if [ -d "${ROOT_PATH}/mariadb" ];then
DB_TYPE["mariadb"]="mariadb"
fi
if [ -d "${ROOT_PATH}/mysql-apt" ];then
DB_TYPE["mysql-apt"]="mysql-apt"
fi
if [ -d "${ROOT_PATH}/mysql-yum" ];then
DB_TYPE["mysql-yum"]="mysql-yum"
fi
SOURCE_LIST_KEY_SORT_TMP=$(echo ${!DB_TYPE[@]} | tr ' ' '\n' | sort -n)
SOURCE_LIST_KEY=(${SOURCE_LIST_KEY_SORT_TMP//'\n'/})
SOURCE_LIST_LEN=${#DB_TYPE[*]}
2023-10-07 13:47:35 -04:00
if [ "$SOURCE_LIST_LEN" == "0" ]; then
echo -e "no data!"
exit 1
fi
2023-10-07 12:26:34 -04:00
cm_i=0
for M in ${SOURCE_LIST_KEY[@]}; do
num=`expr $cm_i + 1`
AutoSizeStr "${M}" "$num"
cm_i=`expr $cm_i + 1`
done
CHOICE_A=$(echo -e "\n${BOLD}└─ Please select and enter the database you want to log in to [ 1-${SOURCE_LIST_LEN} ]${PLAIN}")
read -p "${CHOICE_A}" INPUT
if [ "$INPUT" == "" ]; then
2023-10-07 13:51:52 -04:00
INPUT=1
2023-10-07 12:26:34 -04:00
fi
if [ "$INPUT" -lt "0" ] || [ "$INPUT" -gt "${SOURCE_LIST_LEN}" ]; then
echo -e "\nBoundary error not selected!"
exit 1
fi
INPUT=`expr $INPUT - 1`
INPUT_KEY=${SOURCE_LIST_KEY[$INPUT]}
CHOICE_DB=${DB_TYPE[$INPUT_KEY]}
echo "login to ${CHOICE_DB}:"
2024-05-16 16:06:01 -04:00
pwd=$(cd ${ROOT_PATH}/mdserver-web && python3 ${ROOT_PATH}/mdserver-web/plugins/${CHOICE_DB}/index.py root_pwd)
2023-10-07 12:26:34 -04:00
if [ "$CHOICE_DB" == "mysql" ];then
${ROOT_PATH}/mysql/bin/mysql -uroot -p"${pwd}"
fi
2023-10-07 12:30:35 -04:00
if [ "$CHOICE_DB" == "mariadb" ];then
2023-10-07 12:42:54 -04:00
${ROOT_PATH}/mariadb/bin/mariadb -S ${ROOT_PATH}/mariadb/mysql.sock -uroot -p"${pwd}"
2023-10-07 12:30:35 -04:00
fi
2023-10-07 12:32:21 -04:00
if [ "$CHOICE_DB" == "mysql-apt" ];then
2023-10-07 12:42:54 -04:00
${ROOT_PATH}/mysql-apt/bin/usr/bin/mysql -S ${ROOT_PATH}/mysql-apt/mysql.sock -uroot -p"${pwd}"
2023-10-07 12:32:21 -04:00
fi
2023-10-07 12:48:00 -04:00
if [ "$CHOICE_DB" == "mysql-yum" ];then
${ROOT_PATH}/mysql-yum/bin/usr/bin/mysql -S ${ROOT_PATH}/mysql-yum/mysql.sock -uroot -p"${pwd}"
fi
2024-10-01 06:18:28 -04:00
}
mw_connect_pgdb(){
if [ ! -d "${ROOT_PATH}/postgresql" ];then
echo -e "postgresql not install!"
exit 1
fi
2023-10-07 12:48:00 -04:00
2024-11-01 04:51:45 -04:00
pwd=$(cd ${PANEL_DIR} && python3 ${PANEL_DIR}/plugins/postgresql/index.py root_pwd)
2024-10-01 08:59:30 -04:00
export PGPASSWORD=${pwd}
echo "${ROOT_PATH}/postgresql/bin/psql -U postgres -W"
2024-10-01 09:02:26 -04:00
${ROOT_PATH}/postgresql/bin/psql -U postgres -W
2023-10-04 09:34:23 -04:00
}
2024-05-21 15:29:01 -04:00
2024-08-06 01:01:05 -04:00
mw_mongodb(){
CONF="${ROOT_PATH}/mongodb/mongodb.conf"
if [ ! -f "$CONF" ]; then
echo -e "not install mongodb!"
exit 1
fi
MGDB_PORT=$(cat $CONF |grep port|grep -v '#'|awk '{print $2}')
2024-08-06 01:14:43 -04:00
MGDB_AUTH=$(cat $CONF |grep authorization | grep -v '#'|awk '{print $2}')
AUTH_STR=""
if [[ "$MGDB_AUTH" == "enabled" ]];then
2024-11-01 04:51:45 -04:00
pwd=$(cd ${PANEL_DIR} && python3 ${PANEL_DIR}/plugins/mongodb/index.py root_pwd)
2024-08-06 01:14:43 -04:00
AUTH_STR="-u root -p ${pwd}"
fi
CLIEXEC="${ROOT_PATH}/mongodb/bin/mongosh --port ${MGDB_PORT} ${AUTH_STR}"
2024-08-06 01:03:17 -04:00
echo $CLIEXEC
${CLIEXEC}
2024-08-06 01:01:05 -04:00
}
2024-05-21 15:29:01 -04:00
mw_redis(){
CONF="${ROOT_PATH}/redis/redis.conf"
2024-05-21 15:29:46 -04:00
if [ ! -f "$CONF" ]; then
echo -e "not install redis!"
exit 1
fi
2024-05-21 15:29:01 -04:00
REDISPORT=$(cat $CONF |grep port|grep -v '#'|awk '{print $2}')
REDISPASS=$(cat $CONF |grep requirepass|grep -v '#'|awk '{print $2}')
if [ "$REDISPASS" != "" ];then
REDISPASS=" -a $REDISPASS"
fi
CLIEXEC="${ROOT_PATH}/redis/bin/redis-cli -p $REDISPORT$REDISPASS"
echo $CLIEXEC
${CLIEXEC}
}
2023-10-10 11:21:09 -04:00
mw_venv(){
2024-11-01 04:51:45 -04:00
cd ${PANEL_DIR} && source bin/activate
2023-10-10 11:21:09 -04:00
}
2023-10-17 05:22:20 -04:00
mw_clean_lib(){
2024-11-01 04:51:45 -04:00
cd ${PANEL_DIR} && rm -rf lib
cd ${PANEL_DIR} && rm -rf lib64
cd ${PANEL_DIR} && rm -rf bin
cd ${PANEL_DIR} && rm -rf include
2023-10-17 05:22:20 -04:00
}
2024-11-01 05:32:30 -04:00
mw_default(){
cd ${PANEL_DIR}
port=7200
scheme=http
if [ -f ${PANEL_DIR}/ssl/choose.pl ];then
scheme=https
fi
if [ -f ${PANEL_DIR}/data/port.pl ];then
port=$(cat ${PANEL_DIR}/data/port.pl)
fi
if [ ! -f ${PANEL_DIR}/data/default.pl ];then
echo -e "\033[33mInstall Failed\033[0m"
exit 1
fi
password=$(cat ${PANEL_DIR}/data/default.pl)
2024-11-01 06:30:50 -04:00
2024-11-01 05:32:30 -04:00
if [ -f ${PANEL_DIR}/data/domain.conf ];then
address=$(cat ${PANEL_DIR}/data/domain.conf)
fi
2024-11-01 06:30:50 -04:00
2024-11-01 06:34:35 -04:00
admin_path=$(cd ${PANEL_DIR} && python3 ${PANEL_DIR}/panel_tools.py admin_path)
2024-11-01 05:32:30 -04:00
if [ "$address" == "" ];then
2024-11-01 05:34:15 -04:00
v4=$(python3 ${PANEL_DIR}/panel_tools.py getServerIp 4)
v6=$(python3 ${PANEL_DIR}/panel_tools.py getServerIp 6)
2024-11-01 05:32:30 -04:00
if [ "$v4" != "" ] && [ "$v6" != "" ]; then
if [ ! -f ${PANEL_DIR}/data/ipv6.pl ];then
echo 'True' > ${PANEL_DIR}/data/ipv6.pl
mw_stop
mw_start
fi
2024-11-01 06:36:04 -04:00
address="MW-PANEL-URL-IPV4: ${scheme}://$v4:$port$admin_path \nMW-PANEL-URL-IPV6: ${scheme}://[$v6]:$port$admin_path"
2024-11-01 05:32:30 -04:00
elif [ "$v4" != "" ]; then
2024-11-01 06:36:04 -04:00
address="MW-PANEL-URL: ${scheme}://$v4:$port$admin_path"
2024-11-01 05:32:30 -04:00
elif [ "$v6" != "" ]; then
if [ ! -f ${PANEL_DIR}/data/ipv6.pl ];then
# Need to restart ipv6 to take effect
echo 'True' > ${PANEL_DIR}/data/ipv6.pl
mw_stop
mw_start
fi
2024-11-01 06:36:04 -04:00
address="MW-PANEL-URL: ${scheme}://[$v6]:$port$admin_path"
2024-11-01 05:32:30 -04:00
else
2024-11-01 06:36:04 -04:00
address="MW-PANEL-URL: ${scheme}://you-network-ip:$port$admin_path"
2024-11-01 05:32:30 -04:00
fi
else
2024-11-01 06:36:04 -04:00
address="MW-PANEL-URL: ${scheme}://$address:$port$admin_path"
2024-11-01 05:32:30 -04:00
fi
show_panel_ip="$port|"
echo -e "=================================================================="
echo -e "\033[32mMW-PANEL DEFAULT INFO!\033[0m"
echo -e "=================================================================="
echo -e "$address"
2024-11-01 05:34:15 -04:00
echo -e `python3 ${PANEL_DIR}/panel_tools.py username`
echo -e `python3 ${PANEL_DIR}/panel_tools.py password`
2024-11-01 05:32:30 -04:00
# echo -e "password: $password"
echo -e "\033[33mWarning:\033[0m"
echo -e "\033[33mIf you cannot access the panel. \033[0m"
echo -e "\033[33mrelease the following port (${show_panel_ip}80|443|22) in the security group.\033[0m"
echo -e "=================================================================="
}
2018-12-12 06:21:44 -05:00
case "$1" in
'start') mw_start;;
'stop') mw_stop;;
'reload') mw_reload;;
2018-12-12 08:35:04 -05:00
'restart')
mw_stop
mw_start;;
2022-06-26 11:25:27 -04:00
'restart_panel')
mw_stop_panel
mw_start_panel;;
2022-06-28 06:24:59 -04:00
'restart_task')
mw_stop_task
mw_start_task;;
2018-12-12 06:21:44 -05:00
'status') mw_status;;
'logs') error_logs;;
2022-11-27 22:50:55 -05:00
'close') mw_close;;
'open') mw_open;;
2022-10-08 12:30:03 -04:00
'update') mw_update;;
2024-10-01 13:27:40 -04:00
'dev') mw_update_dev;;
2022-10-08 12:30:03 -04:00
'update_dev') mw_update_dev;;
2022-10-10 07:54:23 -04:00
'install_app') mw_install_app;;
2022-11-12 03:11:06 -05:00
'close_admin_path') mw_close_admin_path;;
2022-12-03 00:27:24 -05:00
'unbind_domain') mw_unbind_domain;;
2024-05-27 00:12:41 -04:00
'unbind_ssl') mw_unbind_domain;;
2022-11-13 02:54:12 -05:00
'debug') mw_debug;;
2023-01-19 09:24:15 -05:00
'mirror') mw_mirror;;
2023-10-07 12:26:34 -04:00
'db') mw_connect_mysql;;
2024-10-01 06:18:28 -04:00
'pgdb') mw_connect_pgdb;;
2024-05-21 15:29:01 -04:00
'redis') mw_redis;;
2024-08-06 01:01:22 -04:00
'mongodb') mw_mongodb;;
2024-07-10 16:33:51 -04:00
'venv') mw_update_venv;;
2023-10-17 05:22:20 -04:00
'clean_lib') mw_clean_lib;;
2024-11-01 05:32:30 -04:00
'default') mw_default;;
2022-10-05 23:12:01 -04:00
*)
2024-11-01 04:51:45 -04:00
cd ${PANEL_DIR} && python3 ${PANEL_DIR}/panel_tools.py cli $1
2022-10-05 23:12:01 -04:00
;;
2022-06-21 08:17:55 -04:00
esac