详细步骤
以下介绍使用Docker部署的方法
- 首先需要在阿里云上的【安全组】中开放相应的端口:
然后如果有宝塔面板也需要将相应端口开放:
安装Docker
sudo curl -sSL get.docker.com | sh
配置国内镜像源 Configure domestic mirror sources
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://0b27f0a81a00f3560fbdc00ddd2f99e0.mirror.swr.myhuaweicloud.com",
"https://ypzju6vq.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
EOF
systemctl daemon-reload
systemctl restart docker
启动容器
青龙面板的默认端口为5700,但是为了安全起见,前端接入端口可改为其它的不知名端口,例如此处的5600
docker run -dit \
-v $PWD/ql:/ql/data \
-p 5600:5700 \
--name qinglong \
--hostname qinglong \
--restart unless-stopped \
whyour/qinglong:latest
docker-compose 安装
sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
启动容器 ```shell
进入/etc/docker目录
cd /etc/docker
在/etc/docker目录下创建名为qinglong的目录
mkdir qinglong
获取青龙的docker-compose.yml文件
wget https://raw.githubusercontent.com/whyour/qinglong/master/docker/docker-compose.yml
启动
docker-compose up -d
停止
docker-compose down
7. 在Web界面进行初始化配置
在浏览器以输入http://IP:5600的方式进入:<br /><br />此处我选择的【通知方式】为“企业微信应用”,下面需要填写weWorkAppKey(这个配置完成后需要再次进入config.sh里面检查是否写入了配置,如果没有就再次配置一下):
> 注:weWorkAppKey的第一个值是企业id,第二个值是secret,第三个值@all(或者成员id),第四个值是AgentID,第五个值是图片id 中间以逗号隔开。各个参数具体获取方法参考:[https://note.youdao.com/ynoteshare/index.html?id=351e08a72378206f9dd64d2281e9b83b&type=note&_time=1653318047344](https://note.youdao.com/ynoteshare/index.html?id=351e08a72378206f9dd64d2281e9b83b&type=note&_time=1653318047344)
> 如果还想推送到普通微信,操作方式如下:
> 进入【我的企业】->【微信插件】:
> 
> 下拉后找到该二维码,使用普通微信扫码:
> 
>
> 如果之前有关注过但是没有收到消息那就需要确认一下是否勾选了【接收企业消息】:
> 
> 
> 
<br />下一步配置账户名称和密码,然后完成安装:<br /><br />之后会自动跳转到青龙控制面板登录界面,输入前面配置的用户名密码登录即可:<br />
> 注:青龙面板的密码保存位置为/root/ql/config/auth.json
8. Github加速
方法一:直接配置GithubProxyUrl
```shell
# 修改配置文件config.sh里的GithubProxyUrl
GithubProxyUrl="https://git.metauniverse-cn.com/"
配置完成后记得点击右上角的【保存】
方法二:获取Github相关域名的可用IP
# 通过超级ping分别对以下链接进行解析,找到稳定、快速、可用的 IP 地址
github.com
github.global.ssl.fastly.net
nodeload.github.com
api.github.com
codeload.github.com
# 修改hosts文件
vim /etc/hosts
# 例如找到可用IP后按照如下格式添加
15.164.81.167 github.com
151.101.1.194 github.global.ssl.fastly.net
13.124.75.135 nodeload.github.com
13.209.163.61 api.github.com
13.124.243.66 codeload.github.com
# 重启网络
systemctl restart network
- 部署依赖库
方法一:直接在容器中添加依赖库:
# 查看容器ID
docker ps
# 进入青龙容器
docker exec -it 容器ID bash
# 部署依赖库(缙哥哥加速版)
curl -fsSL https://api.dujin.org/js/qinglong/qinglong-yilaiku-dujin.org.sh | sh
# 海外服务器
# curl -fsSL https://raw.githubusercontent.com/FlechazoPh/QLDependency/main/Shell/QLOneKeyDependency.sh | sh
方法二:在面板安装依赖库,添加后会自动执行安装,点击日志或者刷新页面可以查看是否安装成功,若安装失败可以点击重新安装:
# NodeJs 依赖库
crypto-js
prettytable
dotenv
jsdom
date-fns
tough-cookie
tslib
ws@7.4.3
ts-md5
jsdom -g
jieba
fs
form-data
json5
global-agent
png-js
@types/node
require
typescript
js-base64
axios
# Python3 依赖库
requests
canvas
ping3
jieba
aiohttp
# Linux 依赖库
bizCode
bizMsg
lxml
- 新建任务和定时执行
定时任务库:
# KingRan/KR(集合库)
ql repo https://github.com/KingRan/KR.git "jd_|jx_|jdCookie" "activity|backUp" "^jd[^_]|USER|utils|function|sign|sendNotify|ql|JDJR"
# Curtinlv 仓库
ql repo https://github.com/curtinlv/JD-Script.git
# Zy143L/wskey(wskey转换库)
ql repo https://github.com/Zy143L/wskey.git "wskey"
# smiek2121(开卡库)
ql repo ql repo https://github.com/smiek2121/scripts.git "jd_|gua_" "" "ZooFaker_Necklace.js|JDJRValidator_Pure.js|sign_graphics_validate.js|cleancart_activity.js|jdCookie.js|sendNotify.js"
# Yun-City/City(集合库)
ql repo https://github.com/Yun-City/City.git "jd_|jx_|gua_|jddj_|getJDCookie" "activity|backUp" "^jd[^_]|USER|function|utils|sendnotify|ZooFaker_Necklace|jd_Cookie|JDJRValidator_|sign_graphics_validate|ql|magic|cleancart_activity"
# 6dylan6/jdpro(集合库)
ql repo https://github.com/6dylan6/jdpro.git "jd_|jx_|jddj_" "backUp" "^jd[^_]|USER|JD|function|sendNotify"
# gys619/Absinthe(集合库)
ql repo https://github.com/gys619/Absinthe.git "jd_|jx_|jddj_|gua_|getJDCookie|wskey" "activity|backUp" "^jd[^_]|USER|utils|ZooFaker_Necklace|JDJRValidator_|sign_graphics_validate|jddj_cookie|function|ql|magic|JDJR|JD" "main"
# zero205/JD_tencent_scf
ql repo https://github.com/zero205/JD_tencent_scf.git "jd_|jx_|jdCookie" "backUp|icon" "^jd[^_]|USER|sendNotify|sign_graphics_validate|JDJR|JDSign|ql" "main"
定时规则为:秒 分 时 天 月 周
假设该任务需要每天13:01:30执行一次。那么则应该这么设置:30 01 13 * * *
拉完库之后可以立即运行,否则会等到设置好的时间才会自动执行(注意需要先配置下述的JD_COOKIE变量)
- 获取Cookie
进入https://m.jd.com/,然后登录,再按F12进入控制台,在【网络】中找到“LoginRedirect……”,在其【标头】部分复制pt_key
和pt_pin
:
新建变量JD_COOKIE(可以一次性添加多条,只要勾选【自动拆分】即可):
- 配置企业微信应用
如果没有执行第7步或者第7步的操作未生效,则需要在此处进行重新配置,参数获取方式同上,配置完成后记得点击右上角的【保存】:
- 开始执行任务
可以先手动执行一个测试效果:
这个脚本执行后会自动释放大量脚本:
现在假设执行这个名为“5.20~5.31 大牌优惠趴 五月爱相伴”的脚本:
可以看到已经执行成功了:
如果要验证推送功能,可以直接执行这两个脚本:
然后看前面配置的企业微信应用是否有推送相应的内容:
- 开启京东游戏任务
建议把所有活动游戏都点击一次,京东工厂这种需要自己选产品的建议自己选,不然会自动选一个,有的干脆不选。各个游戏入口位置:
京东APP
- 摇钱树:京东APP→右下角我的→中间更多工具
- 东东萌宠:京东APP→右下角我的
- 宠汪汪:京东APP→右下角我的
- 东东农场:京东APP→右下角我的
京喜APP
首次下载登陆京喜APP可以0.01元包邮买东西
- 京喜工厂:京喜APP→右下角我的
- 京喜牧场:京喜APP→右下角我的
- 京喜财富岛:京喜APP→右下角我的
京东极速版
首次下载登陆京东极速版可以领5-10元券包邮买东西
- 福袋大赢家:京东极速版→右下角我的
- 汪汪乐园:京东极速版→右下角我的
附:青龙面板后台相关操作
# 日志存放位置
ql/log/task_error.log
# 更新并重启青龙
ql update
# 运行自定义脚本extra.sh
ql extra
# 添加单个脚本文件
ql raw <file_url>
# 添加单个仓库的指定脚本
ql repo <repo_url> <whitelist> <blacklist> <dependence> <branch> <extensions>
# 删除旧日志
ql rmlog <days>
# 启动tg-bot
ql bot
# 检测青龙环境并修复
ql check
# 重置登录错误次数
ql resetlet
# 禁用两步登录
ql resettfa
# 依次执行,如果设置了随机延迟,将随机延迟一定秒数
task <file_path>
# 依次执行,无论是否设置了随机延迟,均立即运行,前台会输出日,同时记录在日志文件中
task <file_path> now
# 并发执行,无论是否设置了随机延迟,均立即运行,前台不产生日,直接记录在日志文件中,且可指定账号执行
task <file_path> conc <env_name> <account_number>(可选的)
# 指定账号执行,无论是否设置了随机延迟,均立即运行
task <file_path> desi <env_name> <account_number>
访问青龙面板白屏
问题现象:
在访问青龙面板的时候白屏:
问题原因:
无法访问6个 js 文件了:
解决方法:
方法一:修改hosts
方法二:使用缙哥哥加速版
进入青龙面板容器:docker exec -it 容器ID bash
备份index.html文件:cp /ql/dist/index.html /ql/dist/index.html.bak
修改index.html:vi /ql/dist/index.html
原始内容:
需要修改为:
<script src="https://api.dujin.org/js/qinglong/darkreader.min.js"></script>
<script src="https://api.dujin.org/js/qinglong/codemirror.min.js"></script>
<script src="https://api.dujin.org/js/qinglong/shell.js"></script>
<script src="https://api.dujin.org/js/qinglong/python.js"></script>
<script src="https://api.dujin.org/js/qinglong/javascript.js"></script>
<script src="https://api.dujin.org/js/qinglong/sockjs.min.js"></script>
修改后:
其它知识点
修改容器端口号
例如将接入端口号从5600改为5700
首先查看当前的端口映射关系,然后记录容器ID:
停止docker容器:docker stop 容器ID
停止docker:systemctl start docker
进入docker容器目录:cd /var/lib/docker/containers/容器ID
编辑相关文件:vim hostconfig.json
将上述位置的端口改为容器实际监听的端口
vim config.v2.json
将上述位置的端口改为容器实际监听的端口
重新启动docker:systemctl start docker
重新启动docker容器:docker stop 容器ID
进入容器:docker exec -it 容器ID bash