jdpro/docker/ql1key.sh

163 lines
5.0 KiB
Bash
Raw Normal View History

2024-01-02 12:59:48 +00:00
#!/usr/bin/env bash
#2.11.3版本青龙一键安装并添加拉库任务
#端口5500
#modify 2022-10-12
Green="\033[32;1m"
Red="\033[31m"
Yellow="\033[33;1m"
Blue="\033[36;1m"
Font="\033[0m"
GreenBG="\033[42;37m"
RedBG="\033[41;37m"
OK="${Green}[OK]${Font}"
ERROR="${Red}[ERROR]${Font}"
ok() {
echo
echo -e " ${OK} ${Green} $1 ${Font}"
echo
}
error() {
echo
echo -e "${ERROR} ${RedBG} $1 ${Font}"
echo
}
ing () {
echo
echo -e "${Yellow} $1 ${Font}"
echo
}
if [[ ! "$USER" == "root" ]]; then
error "警告请使用root用户操作!~~"
exit 1
fi
datav=/root/ql$(date +%Y%m%d)
mkdir -p $datav && ql_path=$datav
ql_run() {
if [ -z "$(docker ps -a |awk '{print $NF}'| grep qinglong 2> /dev/null)" ]; then
cd $ql_path
cat > docker-compose.yml <<EOF
version: '2'
services:
qinglong:
image: whyour/qinglong:2.11.3
container_name: qinglong
volumes:
- ./data/config:/ql/config
- ./data/log:/ql/log
- ./data/db:/ql/db
- ./data/scripts:/ql/scripts
- ./data/repo:/ql/repo
ports:
- "0.0.0.0:5500:5700"
networks:
- net
environment:
- ENABLE_HANGUP=true
- ENABLE_WEB_PANEL=true
restart: always
networks:
net:
EOF
docker-compose up -d
if [ $? -ne 0 ] ; then
error "** 错误容器创建失败请翻译以上英文报错Google/百度尝试解决问题!"
else
sleep 30
ok "青龙面板已启动请去浏览器访问http://ip:5500进行初始化并登陆进去完成后回来继续下一步"
fi
else
error "已有qinglong名称的容器在运行不能重复创建"
exit 1
fi
}
docker_install() {
if [ -x "$(command -v docker)" ]; then
ok "检测到 Docker 已安装!"
else
if [ -r /etc/os-release ]; then
lsb_dist="$(. /etc/os-release && echo "$ID")"
fi
if [ $lsb_dist == "openwrt" ]; then
error "openwrt 环境请自行安装 docker"
exit 1
else
ing "开始安装 docker 环境..."
curl -sSL https://get.daocloud.io/docker | sh
sleep 2
if [ -x "$(command -v docker)" ]; then
mkdir /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://pee6w651.mirror.aliyuncs.com/","https://registry.docker-cn.com"]
}
EOF
chmod +x /etc/docker/daemon.json
ok "安装 docker 环境...完成!"
systemctl enable docker
systemctl restart docker
else
error "docker安装失败请排查原因或手动完成安装在重新运行"
exit 2
fi
fi
fi
}
docker_compose() {
if [ -x "$(command -v docker-compose)" ]; then
ok "docker-compose已安装"
else
ing "开始安装docker-compose..."
curl -L curl -L https://ghproxy.com/https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64 > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ok "安装docker-compose...完成"
fi
}
add_repo() {
if [ "$(grep -c "6dylan6/jdpro" $ql_path/data/config/crontab.list)" != 0 ]; then
error "您的任务列表中已存在拉库任务,刷新浏览器去执行拉库任务吧!"
else
ing "开始添加6dylan6/jdpro拉库任务"
sed -i 's/RepoFileExtensions.*/RepoFileExtensions=\"js py sh ts\"/g' $ql_path/data/config/config.sh
if [ "$(grep -c "token" $ql_path/data/config/auth.json)" != 0 ]; then
docker exec -it qinglong /bin/bash -c "token=\$(cat /ql/config/auth.json | jq --raw-output .token) && curl -s -H 'Accept: application/json' -H \"Authorization: Bearer \$token\" -H 'Content-Type: application/json;charset=UTF-8' -H 'Accept-Language: zh-CN,zh;q=0.9' --data-binary '{\"name\":\"拉库\",\"command\":\"ql repo https://ghproxy.com/https://github.com/6dylan6/jdpro.git \\\"jd_|jx_|jddj_\\\" \\\"backUp\\\" \\\"^jd[^_]|USER|JD|function|sendNotify\\\"\",\"schedule\":\"45 7-23/2 * * *\"}' --compressed 'http://127.0.0.1:5700/api/crons?t=1627380635389'"
ok "已添加拉库任务,刷新浏览器后去执行拉库任务吧!"
else
error "未检测到 token请访问web完成初始化并登陆进去后,在运行一次脚本"
fi
fi
}
ql_fix() {
docker exec -it qinglong /bin/bash -c "grep -lr 'cdn.jsde' /ql/dist/|xargs sed -i 's#cdn.*.net/npm/#unpkg.com/#g'"
docker exec -it qinglong /bin/bash -c "grep -lr 'unpkg.com' /ql/dist/ | xargs -I {} sh -c \"gzip -c {} > {}.gz\""
docker exec -it qinglong bash -c "curl -so /ql/deps/sendNotify.js https://js.dayplus.xyz/https://raw.githubusercontent.com/6dylan6/jdpro/main/sendNotify.js"
}
ing "开始部署青龙并创建拉库任务,速度根据您的网速决定,请耐心等待....."
read -p "按任意键开始部署。。。"
docker_install
docker_compose
ing "开始创建容器,如果长时间卡住 ctrl+c终止后重试"
ql_run
ql_fix
read -p "已初在浏览器始化并登陆青龙了?,那就按任意键继续!"
add_repo
sleep 2
ok "已部署完成2.11.3版本青龙,数据保存路径为$datav容器名qinglong访问地址http://ip:5500"