This commit is contained in:
Leon 2021-08-05 18:18:08 +08:00
parent 48b4305fa4
commit 8b4f580398
6 changed files with 125 additions and 126 deletions

View File

@ -79,9 +79,9 @@ set_default_extra(){
CollectedRepo=${CollectedRepo:-"4"}
sed -i "s/CollectedRepo=(4)/CollectedRepo=(${CollectedRepo})/g" $extra_shell_path
sed -i "s/OtherRepo=()/OtherRepo=(${OtherRepo})/g" $extra_shell_path
echo -e "Ninja\n### 1默认启动并自动更新,未运行成功将强制重装\n### 2未修改容器映射的请勿运行否则会出现青龙打不开或者设备死机等不良后果映射参考 https://github.com/MoonBegonia/ninja#%E5%AE%B9%E5%99%A8%E5%86%85"
read -p "Ninja="up" ##up为运行down为不运行 输入您的设置(默认运行) up/down" Ninja
sed -i "s/\"up\"/\"${Ninja}\"/" $extra_shell_path
echo -e "Ninja\n###1默认启动并自动更新\n###2未修改容器映射的请勿运行否则会出现青龙打不开或者设备死机等不良后果映射参考 https://github.com/MoonBegonia/ninja#%E5%AE%B9%E5%99%A8%E5%86%85"
read -p "Ninja="up" ## up为运行down为不运行输入您的设置(默认运行) up/down" Ninja
sed -i "s/Ninja=\"up\"/Ninja=\"${Ninja}\"/" $extra_shell_path
}
# 将 ql extra 添加到定时任务
add_ql_extra(){

View File

@ -114,9 +114,9 @@ set_default_extra(){
CollectedRepo=${CollectedRepo:-"4"}
sed -i "s/CollectedRepo=(4)/CollectedRepo=(${CollectedRepo})/g" $extra_shell_path
sed -i "s/OtherRepo=()/OtherRepo=(${OtherRepo})/g" $extra_shell_path
echo -e "Ninja\n### 1默认启动并自动更新,未运行成功将强制重装\n### 2未修改容器映射的请勿运行否则会出现青龙打不开或者设备死机等不良后果映射参考 https://github.com/MoonBegonia/ninja#%E5%AE%B9%E5%99%A8%E5%86%85"
read -p "Ninja="up" ##up为运行down为不运行 输入您的设置(默认运行) up/down" Ninja
sed -i "s/\"up\"/\"${Ninja}\"/" $extra_shell_path
echo -e "Ninja\n###1默认启动并自动更新\n###2未修改容器映射的请勿运行否则会出现青龙打不开或者设备死机等不良后果映射参考 https://github.com/MoonBegonia/ninja#%E5%AE%B9%E5%99%A8%E5%86%85"
read -p "Ninja="up" ## up为运行down为不运行输入您的设置(默认运行) up/down" Ninja
sed -i "s/Ninja=\"up\"/Ninja=\"${Ninja}\"/" $extra_shell_path
}
# 将 ql extra 添加到定时任务
add_ql_extra(){

View File

@ -27,6 +27,7 @@ PULL_IMAGE=true
HAS_CONTAINER=false
DEL_CONTAINER=true
INSTALL_WATCH=false
INSTALL_NINJA=true
ENABLE_WEB_PANEL=true
ENABLE_HANGUP=true
OLD_IMAGE_ID=""
@ -149,6 +150,9 @@ echo -n -e "\e[36m输入您的选择->\e[0m"
read net
if [ "$net" = "2" ]; then
NETWORK="bridge"
CHANGE_NETWORK="--network $NETWORK"
else
CHANGE_NETWORK="--network $NETWORK"
fi
inp "是否在启动容器时自动启动挂机程序:\n1) 开启[默认]\n2) 关闭"
@ -165,9 +169,46 @@ if [ "$pannel" = "2" ]; then
ENABLE_WEB_PANNEL_ENV=""
fi
# 端口问题
modify_ql_port(){
inp "是否修改青龙端口[默认 5700]\n1) 修改\n2) 不修改[默认]"
echo -n -e "\e[36m输入您的选择->\e[0m"
read change_ql_port
if [ "$change_ql_port" = "1" ]; then
echo -n -e "\e[36m输入您想修改的端口->\e[0m"
read JD_PORT
fi
}
modify_Ninja_port(){
inp "是否修改 Ninja 端口[默认 5701]\n1) 修改\n2) 不修改[默认]"
echo -n -e "\e[36m输入您的选择->\e[0m"
read change_Ninja_port
if [ "$change_Ninja_port" = "1" ]; then
echo -n -e "\e[36m输入您想修改的端口->\e[0m"
read NINJA_PORT
fi
}
inp "根据设备是否映射端口:\n1) 映射[默认]\n2) 不映射"
echo -n -e "\e[36m输入您的选择->\e[0m"
read port
if [ "$port" = "2" ]; then
MAPPING_JD_PORT=""
MAPPING_NINJA_PORT=""
else
CHANGE_NETWORK=""
MAPPING_JD_PORT="-p $JD_PORT:5700"
inp "是否安装 Ninja若已存在则强制重装\n1) 安装[默认]\n2) 不安装"
echo -n -e "\e[36m输入您的选择->\e[0m"
read Ninja
if [ "$Ninja" = "2" ]; then
INSTALL_NINJA=false
modify_ql_port
MAPPING_NINJA_PORT=""
else
modify_ql_port
modify_Ninja_port
fi
fi
# 配置已经创建完成,开始执行
@ -195,78 +236,49 @@ if [ $HAS_IMAGE = true ] && [ $PULL_IMAGE = true ]; then
fi
fi
log "3.开始创建容器并执行"
run_port(){
docker run -dit \
-t \
-v $CONFIG_PATH:/ql/config \
-v $DB_PATH:/ql/db \
-v $LOG_PATH:/ql/log \
-v $REPO_PATH:/ql/repo \
-v $RAW_PATH:/ql/raw \
-v $SCRIPT_PATH:/ql/scripts \
-v $JBOT_PATH:/ql/jbot \
-v $NINJA_PATH:/ql/ninja \
-p $JD_PORT:5700 \
-p $NINJA_PORT:5701 \
--name $CONTAINER_NAME \
--hostname qinglong \
--restart always \
$ENABLE_HANGUP_ENV \
$ENABLE_WEB_PANEL_ENV \
$DOCKER_IMG_NAME:$TAG
}
run_noport(){
docker run -dit \
-t \
-v $CONFIG_PATH:/ql/config \
-v $DB_PATH:/ql/db \
-v $LOG_PATH:/ql/log \
-v $REPO_PATH:/ql/repo \
-v $RAW_PATH:/ql/raw \
-v $SCRIPT_PATH:/ql/scripts \
-v $JBOT_PATH:/ql/jbot \
-v $NINJA_PATH:/ql/ninja \
--name $CONTAINER_NAME \
--hostname qinglong \
--restart always \
--network $NETWORK \
$ENABLE_HANGUP_ENV \
$ENABLE_WEB_PANEL_ENV \
$DOCKER_IMG_NAME:$TAG
}
# 端口存在检测
check_port() {
echo "正在检测端口 $1"
check_port(){
echo "正在检测端口:$1"
netstat -tlpn | grep "\b$1\b"
}
while check_port $JD_PORT; do
if [ "$port" != "2" ]; then
echo -n -e "\e[31m端口被占用请重新输入青龙面板端口\e[0m"
if [ "$port" != "2" ]; then
while check_port $JD_PORT; do
echo -n -e "\e[31m端口:$JD_PORT 被占用,请重新输入青龙面板端口:\e[0m"
read JD_PORT
else
break
fi
done
while check_port $NINJA_PORT; do
if [ "$port" != "2" ]; then
echo -n -e "\e[31m端口被占用请重新输入 Ninja 面板端口:\e[0m"
read NINJA_PORT
else
break
fi
done
if [ "$port" = "2" ]; then
run_noport
else
run_port
done
echo -e "\e[34m恭喜端口:$JD_PORT 可用\e[0m"
MAPPING_JD_PORT="-p $JD_PORT:5700"
fi
if [ "$Ninja" != "2" ]; then
while check_port $NINJA_PORT; do
echo -n -e "\e[31m端口:$NINJA_PORT 被占用,请重新输入 Ninja 面板端口:\e[0m"
read NINJA_PORT
done
echo -e "\e[34m恭喜端口:$NINJA_PORT 可用\e[0m"
MAPPING_NINJA_PORT="-p $NINJA_PORT:5701"
fi
log "3.开始创建容器并执行"
docker run -dit \
-t \
-v $CONFIG_PATH:/ql/config \
-v $DB_PATH:/ql/db \
-v $LOG_PATH:/ql/log \
-v $REPO_PATH:/ql/repo \
-v $RAW_PATH:/ql/raw \
-v $SCRIPT_PATH:/ql/scripts \
-v $JBOT_PATH:/ql/jbot \
-v $NINJA_PATH:/ql/ninja \
$MAPPING_JD_PORT \
$MAPPING_NINJA_PORT \
--name $CONTAINER_NAME \
--hostname qinglong \
--restart always \
$CHANGE_NETWORK \
$ENABLE_HANGUP_ENV \
$ENABLE_WEB_PANEL_ENV \
$DOCKER_IMG_NAME:$TAG
if [ $? -ne 0 ] ; then
cancelrun "** 错误:容器创建失败,多数由于 docker 空间不足引起,请检查!"
@ -299,11 +311,11 @@ log "5.开始检测 Nginx 静态解析"
echo "开始扫描静态解析是否在线!"
ps -fe|grep nginx|grep -v grep
if [ $? -ne 0 ]; then
echo $NOWTIME" 扫描结束Nginx 静态解析停止!准备重启!"
echo echo "$(date +%Y-%m-%d" "%H:%M:%S) 扫描结束Nginx 静态解析停止!准备重启!"
docker exec -it $CONTAINER_NAME nginx -c /etc/nginx/nginx.conf
echo $NOWTIME" Nginx 静态解析重启完成!"
echo "$(date +%Y-%m-%d" "%H:%M:%S) Nginx 静态解析重启完成!"
else
echo $NOWTIME" 扫描结束Nginx 静态解析正常!"
echo "$(date +%Y-%m-%d" "%H:%M:%S) 扫描结束Nginx 静态解析正常!"
fi
if [ "$port" = "2" ]; then
@ -339,13 +351,18 @@ cat $CONFIG_PATH/auth.json
echo -e "\n"
if [ "$access" != "2" ]; then
if [ "$(grep -c "token" $CONFIG_PATH/auth.json)" != 0 ]; then
log "7.开始青龙内部配置"
log "7.开始安装或重装 Ninja"
if [ "$INSTALL_NINJA" = true ]; then
docker exec -it $CONTAINER_NAME bash -c "cd /ql;ps -ef|grep ninja|grep -v grep|awk '{print $1}'|xargs kill -9;rm -rf /ql/ninja;git clone https://github.com/MoonBegonia/ninja.git /ql/ninja;cd /ql/ninja/backend;pnpm install;cp .env.example .env;cp sendNotify.js /ql/scripts/sendNotify.js;sed -i \"s/NINJA_PORT=5701/NINJA_PORT=${NINJA_PORT}/\" /ql/ninja/backend/.env;sed -i \"s/ALLOW_NUM=40/ALLOW_NUM=100/\" /ql/ninja/backend/.env;pm2 start"
docker exec -it $CONTAINER_NAME bash -c "sed -i \"s/NINJA_PORT=5701/NINJA_PORT=${NINJA_PORT}/\" /ql/ninja/backend/.env && sed -i \"s/ALLOW_NUM=40/ALLOW_NUM=100/\" /ql/ninja/backend/.env && pm2 start"
fi
log "8.开始青龙内部配置"
docker exec -it $CONTAINER_NAME bash -c "$(curl -fsSL https://gitee.com/allin1code/a1/raw/master/1customCDN.sh)"
else
warn "7.未检测到 token取消内部配置"
warn "8.未检测到 token取消内部配置"
fi
else
exit 0
fi
log "全面部署已完成enjoy!!!"
log "全面部署已完成enjoy!!!"

View File

@ -36,8 +36,6 @@ ENABLE_WEB_PANEL=true
ENABLE_HANGUP=true
OLD_IMAGE_ID=""
MOUNT_SCRIPT=""
MAPPING_PORT="-p $JD_PORT:5678"
CHANGE_NETWORK="--network $NETWORK"
ENABLE_HANGUP_ENV="--env ENABLE_HANGUP=true"
ENABLE_BOT_ENV="--env ENABLE_TG_BOT=true"
ENABLE_WEB_PANEL_ENV="--env ENABLE_WEB_PANEL=true"
@ -170,6 +168,8 @@ read net
if [ "$net" = "2" ]; then
NETWORK="bridge"
CHANGE_NETWORK="--network $NETWORK"
else
CHANGE_NETWORK="--network $NETWORK"
fi
inp "是否在启动容器时自动启动挂机程序:\n1) 开启[默认]\n2) 关闭"
@ -193,26 +193,27 @@ if [ "$pannel" = "2" ]; then
ENABLE_WEB_PANNEL_ENV=""
fi
inp "根据设备是否映射端口:\n1) 映射[默认]\n2) 不映射"
echo -n -e "\e[36m输入您的选择->\e[0m"
read port
if [ "$port" = "2" ]; then
MAPPING_PORT=""
else
CHANGE_NETWORK=""
fi
if [ "$port" != "2" ]; then
inp "是否修改端口:\n1) 修改\n2) 不修改[默认]"
# 端口问题
modify_v4_port(){
inp "是否修改 V4 端口[默认 5678]\n1) 修改\n2) 不修改[默认]"
echo -n -e "\e[36m输入您的选择->\e[0m"
read change_port
if [ "$change_port" = "1" ]; then
echo -n -e "\e[36m输入您想修改的端口->\e[0m"
read JD_PORT
MAPPING_PORT="-p $JD_PORT:5678"
fi
}
inp "根据设备是否映射端口:\n1) 映射[默认]\n2) 不映射"
echo -n -e "\e[36m输入您的选择->\e[0m"
read port
if [ "$port" = "2" ]; then
MAPPING_JD_PORT=""
else
CHANGE_NETWORK=""
modify_v4_port
fi
# 配置已经创建完成,开始执行
log "1.开始创建配置文件目录"
mkdir -p $CONFIG_PATH
@ -251,18 +252,18 @@ fi
# 端口存在检测
check_port() {
echo "正在检测端口 $1"
echo "正在检测端口:$1"
netstat -tlpn | grep "\b$1\b"
}
while check_port $JD_PORT; do
if [ "$port" != "2" ]; then
echo -n -e "\e[31m端口被占用请重新输入 V4 面板端口:\e[0m"
if [ "$port" != "2" ]; then
while check_port $JD_PORT; do
echo -n -e "\e[31m端口:$JD_PORT 被占用,请重新输入 V4 面板端口:\e[0m"
read JD_PORT
else
MAPPING_PORT="-p $JD_PORT:5678"
break
fi
done
done
echo -e "\e[34m恭喜端口:$JD_PORT 可用\e[0m"
MAPPING_JD_PORT="-p $JD_PORT:5678"
fi
log "3.开始创建容器并执行"
docker run -dit \
@ -272,7 +273,7 @@ docker run -dit \
-v $OWN_PATH:/jd/own \
$MOUNT_SCRIPT \
-v $DIY_PATH:/jd/jbot/diy \
$MAPPING_PORT \
$MAPPING_JD_PORT \
--name $CONTAINER_NAME \
--hostname jd_v4_bot \
--restart always \
@ -317,4 +318,4 @@ log "6.安装已经完成。创建好后请阅读映射的 config 目录下的
log "7.如果启用了 ENABLE_TG_BOT创建好后请阅读映射的 config 目录下的的 config.sh 和 bot.json并根据说明修改首次创建并不会启动 bot修改好 bot.json 后请重启容器。"
log "命令提示:\njtask mtask otask 链接的都是同一个脚本m=myo=ownj=jd。三者区分仅用在 crontab.list 中,以区别不同类型任务,手动运行直接 jtask 即可。\ndocker exec $CONTAINER_NAME jtask # 运行 scripts 脚本\ndocker exec $CONTAINER_NAME otask # 运行 own 脚本\ndocker exec $CONTAINER_NAME mtask # 运行你自己的脚本,如果某些 own 脚本识别不出来 cron你也可以自行添加 mtask 任务\ndocker exec $CONTAINER_NAME jlog # 删除旧日志\ndocker exec $CONTAINER_NAME jup # 更新所有脚本\ndocker exec $CONTAINER_NAME jcode # 导出所有互助码\ndocker exec $CONTAINER_NAME jcsv # 记录豆豆变化情况"
log "enjoy!!!"
log "enjoy!!!"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
## Mod: Build20210805V1
## Mod: Build20210805V2
## 添加你需要重启自动执行的任意命令,比如 ql repo
## 安装node依赖使用 pnpm install -g xxx xxxBuild 20210728-002 及以上版本的 code.sh可忽略
## 安装python依赖使用 pip3 install xxxBuild 20210728-002 及以上版本的 code.sh可忽略
@ -14,7 +14,7 @@
### 1默认不安装因为 Build 20210728-002 及以上版本的 code.sh 自动检查修复依赖
### 2若需要在此处使用请在设置区设置
## 3. Ninja
### 1默认启动并自动更新,未运行成功将强制重装
### 1默认启动并自动更新
### 2⚠未修改容器映射的请勿运行否则会出现青龙打不开或者设备死机等不良后果映射参考 https://github.com/MoonBegonia/ninja#%E5%AE%B9%E5%99%A8%E5%86%85
@ -129,27 +129,8 @@ update_Ninja_normal(){
cd /ql/ninja/backend && git pull -f && pnpm install && pm2 start && cp sendNotify.js /ql/scripts/sendNotify.js
}
reinstall_Ninja_force(){
ps -ef|grep ninja|grep -v grep
if [ $? -ne 0 ]; then
cd /ql
ps -ef|grep ninja|grep -v grep|awk '{print $1}'|xargs kill -9 && rm -rf /ql/ninja && rm -rf /ql/ninja
git clone https://github.com/MoonBegonia/ninja.git /ql/ninja ## 拉取仓库
cd /ql/ninja/backend
pnpm install ## 安装局部依赖
cp .env.example .env ## 复制环境变量配置文件
cp sendNotify.js /ql/scripts/sendNotify.js ## 复制通知脚本到青龙容器
pm2 start
fi
}
check_Ninja_all(){
update_Ninja_normal
reinstall_Ninja_force
}
if [ "${Ninja}" = "up" ]; then
check_Ninja_all &
update_Ninja_normal &
fi