青龙面板搭建教程
青龙面板
青龙是 whyour 大佬写的一个定时任务管理平台,支持 Python3、JavaScript、Shell、Typescript,简单来说就是可以定时运行一些脚本,就比如说薅羊毛、签到、抢购等等,谁会跟羊毛过意不去呢?
青龙面板涵盖以下功能
支持多种脚本语言(python3、JavaScript、shell、typescript)
支持在线管理脚本、环境变量、配置文件
支持在线查看任务日志
支持秒级任务设置
支持系统级通知
支持暗黑模式
支持手机端操作
搭建部署
推荐使用Docker进行部署,NAS或者面板(如宝塔、1Panel等)可以直接在镜像仓库搜索进行部署,如果是云服务器等先下载安装docker,再进行青龙的部署,从大佬的README中可以看到相关部署的教程,我这里搬运下
latest 镜像是基于 alpine 构建,debian 镜像是基于 debian-slim 构建。如果需要使用 alpine 不支持的依赖,建议使用 debian 镜像,下面是拉取镜像命令
1 |
|
下面进行部署青龙
docker (推荐)
1 |
|
docker-compose (推荐)
1 |
|
到此就完成了,然后在本地打开青龙面板界面,默认端口为5700,打开你的浏览器,访问 http://127.0.0.1:5700可进入安装向导,设置账户密码,按要求一步一步即可,推送可先不填,如果没有进入配置向导,可在终端执行以下命令查看账号密码
1 |
|
看到如下界面就完成了
拔毛行动
拉取脚本仓库
在拉取脚本仓库之前需要先了解下拉取命令的格式,青龙有个内置命令:ql ,描述如下:
1 |
|
参数 说明
file_url 脚本地址
repo_url 仓库地址
whitelist 拉取仓库时的白名单,即就是需要拉取的脚本的路径包含的字符串,多个竖线分割
blacklist 拉取仓库时的黑名单,即就是需要拉取的脚本的路径不包含的字符串,多个竖线分割
dependence 拉取仓库需要的依赖文件,会直接从仓库拷贝到scripts下的仓库目录,不受黑名单影响,多个竖线分割
extensions 拉取仓库的文件后缀,多个竖线分割
branch 拉取仓库的分支
days 需要保留的日志的天数
file_path 任务执行时的文件路径
对上述命令有个初步了解之后,再看拉库命令就明了很多了,首先我们先拉个6dy大佬写的JD签到做任务的库6dylan6/jdpro[2],登陆后选择订阅管理创建订阅,在名称一行输入拉库指令如下:
国内机(带代理):
1 |
|
默认代理拉不了,自行找可用代理
国外机:
1 |
|
定时任务随意,要遵循crontab表达式规则,可以使用这个在线工具 https://tool.lu/crontab 里面也有详细说明每个字段的意思
创建订阅
创建完成后可在订阅管理中看到刚刚创建的订阅,此时点击右侧运行等待拉库完成即可,后面会根据你设置的定时规则自动拉库,这样就做到自动更新脚本了
运行订阅
点击日志可以查看到拉库状态,我这里是已经拉完了,实际第一次拉库会显示添加XXX任务成功的log
拉库
此时点击左侧定时任务,便可查看到刚刚拉下来的脚本了
定时任务
这里的定时规则可以根据自己的需求改动,右侧也可以手动运行,查看日志看看是否运行错误,顶部更多可以创建视图进行分类,当脚本过多时不会显得太乱
安装依赖
我们只拉库还不行,此时运行可以发现,肯定是会报错的,通常表现为
1 |
|
对于缺少依赖的问题,可以在左侧依赖管理进行安装,通常需要安装的依赖如下所示:
NodeJs:
1 |
|
Python3:
1 |
|
Linux:
1 |
|
安装失败可以在 系统设置 - 依赖设置 里面配置代理或者镜像源
我这里用的是这个
Node 软件包镜像源:
1 |
|
Python 软件包镜像源:
1 |
|
Linux 软件包镜像源:
1 |
|
当然还是推荐对应的一键安装脚本QLDependency[3]:
一键安装单独青龙的依赖
国内版:
1 |
|
国外版:
1 |
|
【更新】 版本号 2.12+ 的新版本青龙安装失败请尝试:
1 |
|
其中 -it 后面的 qinglong 是容器的名字,替换成自己的就行,安装完成后重启下镜像即可。
环境变量
此时再去手动运行定时任务的时候,发现就可以运行了,但是又出现了一个问题,提示没有环境变量JD_COOKIE,我们这时候就需要抓取JD_COOKIE添加到环境变量中,具体抓取方法参考这里,添加到环境变量中
创建JD_COOKIE变量
也可以写在配置文件中
1 |
|
到这一步,这个羊毛基本算是可以薅下来啦!当然,实际运行和添加的一些其他的环境变量还是需要多看看jdpro的README和ISSUES还有一些教程,还有设置配置文件(拉库、任务、推送、环境变量等)、配置代理池(防止黑号)、推送服务等等需要自行摸索下,只要肯折腾都不难~
参考
whyour/qinglong: https://github.com/whyour/qinglong
6dylan6/jdpro: https://github.com/6dylan6/jdpro
FlechazoPh/QLDependency: https://github.com/FlechazoPh/QLDependency