目录
这玩意儿是干嘛的
简单说,青龙面板就是一个带网页界面的 crontab 管理器。
你的手机上肯定有一堆每天要做的事:签到领积分、领优惠券、刷任务……手动弄很烦,忘了又感觉亏了。青龙面板就是替你记住这些事、替你准时跑的。
但它不只是跑京东脚本。任何能写成脚本的定时任务,它都能管。查天气、备份数据库、监控网页变化、每天自动发一封邮件——只要你写得出来,它就能跑。
一句话:把重复的事交给机器,把时间留给自己。
准备工作
| 条件 | 说明 |
|---|---|
| 一台 Linux 服务器 | 1 核 512 MB 就够,NAS、软路由、云服务器、树莓派都行 |
| 装了 Docker | 推荐同时装 docker-compose |
| 能访问网页 | 部署完要用浏览器打开管理面板 |
💡 如果你之前按我的教程搭过 Pi-hole 或者 Vaultwarden,同一台服务器上再挂一个青龙完全没问题,三个加起来内存都用不到 300 MB。
Docker 部署
一条命令搞定
docker run -d \
--name qinglong \
--restart unless-stopped \
-p 5700:5700 \
-v /opt/qinglong/data:/ql/data \
-e QlBaseUrl="/" \
whyour/qinglong:latest
Docker Compose 版本(推荐)
version: "3.8"
services:
qinglong:
image: whyour/qinglong:latest
container_name: qinglong
restart: unless-stopped
ports:
- "5700:5700"
volumes:
- ./ql-data:/ql/data
environment:
- QlBaseUrl=/
启动:
docker-compose up -d
然后浏览器打开 http://你的服务器IP:5700,应该能看到登录页面了。
初始化配置
第一步:登录
青龙面板安装后没有预设密码,需要通过命令行查看初始密码。
docker logs qinglong | grep "password"
或者直接进容器看一眼:
docker exec -it qinglong cat /ql/data/config/auth.json
找到 token 字段,那段字符串就是你的初始密码。用户名是 admin。
⚠️ 登录之后第一件事——改密码。在「系统设置」→「账号管理」里改。别拖着。
第二步:熟悉界面
登录后你会看到左侧导航栏,核心的几个:
| 菜单 | 干什么的 |
|---|---|
| 定时任务 | 所有脚本的列表,cron 表达式控制执行频率 |
| 环境变量 | 脚本需要的参数(Cookie、Token 等)统一放这里 |
| 配置文件 | 脚本仓库的配置,比如推送通知的设置 |
| 依赖管理 | 给 JS/Python/Linux 装运行环境 |
| 脚本管理 | 上传或在线编辑脚本 |
| 订阅管理 | 从远程仓库自动拉脚本,不用手动更 |
第三步:设置通知
先别急着跑脚本,把通知配好。不然脚本报错了你都不知道。
在「系统设置」→「通知设置」里,选一种通知方式。推荐两种:
Server 酱(微信推送):去 sct.ftqq.com 注册,拿到 SendKey,填进去就行。免费版每天 5 条,个人用够了。
企业微信机器人:在企业微信里建一个群,添加机器人,拿到 Webhook 地址,填进青龙的"企业微信机器人"一栏。
配好之后点一下"测试",收到消息就说明通了。
拉取脚本仓库
青龙只是个"壳",脚本要从外部仓库拉。以最常用的为例:
添加订阅
进入「订阅管理」→「创建订阅」,填以下信息:
名称:自定义一个名字,比如"常用脚本"
类型:public-repo
链接:https://github.com/你的目标仓库地址.git
分支:main
定时类型:crontab
定时规则:0 8 * * * (每天早上 8 点自动更新)
常用的公开仓库你肯定能找到,搜一下 GitHub 上 Star 多的那个就行。不便在文章里直接列,你懂的。
💡 建议定时规则不要设在整点,比如
0 8 * * *比0 0 * * *好。大家都挤在 0 点拉脚本,仓库容易触发 GitHub 的限流。
保存之后,点一下"运行",等几秒钟。如果日志里看到 git clone 和一堆 task 文件,说明拉取成功。
然后去「定时任务」页面,你应该能看到一长串任务列表了。
环境变量与依赖管理
脚本拉下来了,但跑不起来——还差环境变量。
设置环境变量
拿最常见的场景举例:你需要告诉脚本你是谁。这些信息通过环境变量传递。
进入「环境变量」→「新建变量」:
| 名称 | 值 | 备注 |
|---|---|---|
JD_COOKIE |
pt_key=xxx;pt_pin=xxx; |
京东 Cookie,用浏览器 F12 抓 |
JD_WSCK |
pin=xxx;wskey=xxx; |
备用方式,某些脚本需要 |
⚠️ Cookie 是非常敏感的信息。青龙面板对环境变量做了加密存储,数据库文件不要随意分享。
如需多个账号,变量名加后缀即可:JD_COOKIE、JD_COOKIE_2、JD_COOKIE_3。青龙会自动识别。
安装依赖
不同的脚本需要不同的运行环境。进入「依赖管理」,点"新建依赖":
- Node.js 脚本 → 选择
NodeJs,输入包名如got、request、crypto-js、ds等 - Python 脚本 → 选择
Python3,输入包名如requests、aiohttp - Linux 工具 → 选择
Linux,输入如jq、wget
不知道需要哪些依赖?跑一个脚本,看日志。它报什么错就装什么。不是什么高深的技巧,但管用。
消息推送通知
脚本跑完了,你想知道结果。两种方式:
方式一:脚本内置通知
很多脚本自带通知功能。你只需要在环境变量里填好推送参数:
名称:PUSH_PLUS_TOKEN
值:你的 PushPlus Token
脚本执行完会自动推结果到微信。
方式二:青龙自带通知
在「系统设置」→「通知设置」里开启"任务执行结果通知"。勾上之后,每个任务跑完你都会收到消息。建议刚开始的时候开着,稳定运行一两周之后可以关掉,只保留异常通知。
常用技巧
手动调试单个任务
在「定时任务」里找到你要调试的任务,点右边的"运行"按钮。别改 cron 调频率——先手动跑一次,看日志。跑通了再调定时。
看日志
青龙的日志做得很直观。点进任意任务,右边就是运行日志。滚到最下面看最新的。报错信息一般是红色的,直接复制去搜。
合理设置频率
cron 表达式不要设太密。签到类一天一次就够了,活动类看脚本说明。频率太高不仅没意义,还可能触发风控。
定期备份
青龙的所有数据在挂载的 /opt/qinglong/data/(或 ./ql-data/)里。定时备份一下:
tar -czf qinglong-backup-$(date +%Y%m%d).tar.gz -C /opt/qinglong data
哪天手滑搞坏了,解压回去就行。
常见问题
Q: 容器启动了但打不开网页?
检查端口:docker ps | grep qinglong。确认 5700 端口正常映射。如果用的是云服务器,记得安全组放行 5700。另外青龙启动需要一点时间初始化数据库,等个 30 秒再访问。
Q: 初始密码不对 / 登录不了?
试试 docker exec -it qinglong cat /ql/data/config/auth.json,看 token 字段。如果还是不对,删掉容器和数据目录重装:
docker stop qinglong && docker rm qinglong
rm -rf /opt/qinglong/data # 或 ./ql-data
docker-compose up -d
Q: 任务执行失败,日志显示"依赖缺失"?
去「依赖管理」里装对应的包。Node.js 脚本看报错里 Cannot find module 'xxx' 的 xxx 是什么就装什么,Python 同理。
Q: Cookie 过期了怎么办?
Cookie 一般有效期几十天到几个月不等。过期后脚本会报登录失败,重新抓新的 Cookie 更新环境变量就行。建议在「定时任务」里找一个 Cookie 检测脚本,让它每天帮你检查一下。
Q: 青龙和脚本仓库的关系是什么?
青龙 = 一个运行脚本的平台(舞台)。脚本仓库 = 具体干活的代码(演员)。青龙从 GitHub 仓库拉脚本到本地,然后按 cron 表达式定时执行。换仓库不会影响青龙本身。
Q: 能不能在软路由 / 群晖上跑?
都能。只要支持 Docker,把端口映射和目录挂载设对了,哪里跑都一样。
技术博客 · 欢迎分享 · 如有疑问欢迎交流