| name | qinglong-panel |
| description | 青龙面板完全指南:部署、脚本编写、API使用、抓包、自动化签到。 |
| version | 2.0.0 |
| author | Hermes |
| metadata | {"hermes":{"tags":["automation","qinglong","cron","scripts","checkin","packet-capture"]}} |
青龙面板完全指南
一、简介
青龙面板(QingLong Panel)是一个支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台。
二、功能特性
- ✅ 多脚本语言支持(Python/JS/Shell/TS)
- ✅ 在线管理脚本、环境变量、配置文件
- ✅ 在线查看任务日志
- ✅ 秒级任务设置
- ✅ 系统级通知
- ✅ 暗黑模式
- ✅ 手机端操作
- ✅ 内置 API(JavaScript 全局变量
QLAPI)
三、部署方式
3.1 Docker 部署(推荐)
docker pull whyour/qinglong:latest
docker pull whyour/qinglong:debian
docker run -d \
-v /path/to/ql/data:/ql/data \
-p 5700:5700 \
--name qinglong \
whyour/qinglong:latest
docker run -d \
-v /path/to/ql/data:/ql/data \
-p 5700:5700 \
--user qinglong \
--name qinglong \
whyour/qinglong:debian
3.2 Docker Compose 部署
version: '3'
services:
qinglong:
image: whyour/qinglong:latest
container_name: qinglong
restart: unless-stopped
ports:
- "5700:5700"
volumes:
- ./data:/ql/data
environment:
- QlPort=5700
3.3 宝塔面板部署
- 安装宝塔面板
- 安装 Docker 管理器
- 搜索
whyour/qinglong 镜像
- 创建容器,映射端口 5700
3.4 1Panel 部署
- 安装 1Panel
- 应用商店搜索「青龙」
- 一键部署
3.5 npm 部署
npm i @whyour/qinglong
四、目录结构
/ql/data/
├── config/ # 配置文件
│ ├── config.sh # 主配置
│ ├── auth.json # 认证信息
│ └── extra.sh # 额外配置
├── db/ # 数据库
├── log/ # 日志
├── repo/ # 脚本仓库
├── scripts/ # 自定义脚本
├── store/ # 存储
└── raw/ # 原始脚本
五、脚本编写规范
5.1 JavaScript 脚本模板
const axios = require('axios');
const COOKIE = process.env.COOKIE_NAME;
if (!COOKIE) {
console.log('请先添加环境变量 COOKIE_NAME');
process.exit(1);
}
const headers = {
'Cookie': COOKIE,
'User-Agent': 'Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36'
};
async function signIn() {
try {
const response = await axios.post('https://api.example.com/signin', {}, {
headers: headers
});
if (response.data.code === 0) {
console.log(`签到成功!获得 ${response.data.points} 积分`);
} else {
console.log(`签到失败: ${response.data.message}`);
}
} catch (error) {
console.();
}
}
();
5.2 Python 脚本模板
"""
脚本名称: 示例签到脚本
脚本作者: YourName
更新日期: 2026-06-09
使用方法: 在环境变量中添加 Cookie
依赖: requests
"""
import os
import sys
import requests
import time
import random
COOKIE = os.environ.get('COOKIE_NAME')
if not COOKIE:
print('请先添加环境变量 COOKIE_NAME')
sys.exit(1)
headers = {
'Cookie': COOKIE,
'User-Agent': 'Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36'
}
def sign_in():
"""签到函数"""
try:
response = requests.post(
'https://api.example.com/signin',
headers=headers,
timeout=30
)
data = response.json()
if data['code'] == 0:
print(f"签到成功!获得 {data['points']} 积分")
else:
print(f"签到失败: {data['message']}")
except Exception as e:
print(f"请求出错: {str(e)}")
if __name__ == '__main__':
sign_in()
5.3 Shell 脚本模板
#!/bin/bash
TOKEN="${COOKIE_NAME}"
if [ -z "$TOKEN" ]; then
echo "请先添加环境变量 COOKIE_NAME"
exit 1
fi
sign_in() {
response=$(curl -s -X POST \
-H "Cookie: $TOKEN" \
-H "User-Agent: Mozilla/5.0 (Linux; Android 12)" \
"https://api.example.com/signin")
code=$(echo $response | jq -r '.code')
if [ "$code" = "0" ]; then
points=$(echo $response | jq -r '.points')
echo "签到成功!获得 $points 积分"
else
message=$(echo $response | jq -r '.message')
echo "签到失败: $message"
fi
}
sign_in
六、内置 API(QLAPI)
青龙面板提供 JavaScript 全局变量 QLAPI,可在脚本中直接调用。
6.1 环境变量管理
const envs = await QLAPI.getEnvs({ searchValue: 'keyword' });
await QLAPI.createEnv({
envs: [
{ name: 'VAR_NAME', value: 'var_value' }
]
});
await QLAPI.updateEnv({
env: { id: 1, name: 'VAR_NAME', value: 'new_value' }
});
await QLAPI.deleteEnvs({ ids: [1, 2, 3] });
await QLAPI.disableEnvs({ ids: [1, 2, 3] });
await QLAPI.enableEnvs({ ids: [1, 2, 3] });
await QLAPI.({ : , : , : });
6.2 通知管理
await QLAPI.sendNotify('标题', '内容');
七、定时任务语法
青龙面板支持标准 cron 表达式:
┌───────────── 秒 (0-59)
│ ┌───────────── 分 (0-59)
│ │ ┌───────────── 时 (0-23)
│ │ │ ┌───────────── 日 (1-31)
│ │ │ │ ┌───────────── 月 (1-12)
│ │ │ │ │ ┌───────────── 周 (0-7, 0和7都是周日)
│ │ │ │ │ │
* * * * * *
常用示例
0 0 0 * * * # 每天 0 点执行
0 30 8 * * * # 每天 8:30 执行
0 0 */2 * * * # 每 2 小时执行
0 0 0 * * 1 # 每周一 0 点执行
0 0 0 1 * * # 每月 1 号 0 点执行
*/5 * * * * * # 每 5 秒执行
0 0 9-18 * * 1-5 # 工作日 9-18 点每小时执行
八、环境变量管理
8.1 环境变量格式
变量名=变量值
8.2 多账号支持
用 & 分隔多个值:
COOKIE_NAME=cookie1&cookie2&cookie3
8.3 常用环境变量
| 变量名 | 说明 |
|---|
JD_COOKIE | 京东 Cookie |
PT_KEY | 京东 PT_KEY |
PT_PIN | 京东 PT_PIN |
TG_BOT_TOKEN | Telegram Bot Token |
TG_USER_ID | Telegram 用户 ID |
PUSH_KEY | Server酱 SendKey |
BARK_PUSH | Bark 推送地址 |
九、通知配置
9.1 支持的通知方式
- Telegram Bot
- 钉钉机器人
- 企业微信机器人
- Server酱
- Bark
- PushPlus
- iGot
9.2 配置方法
在「配置文件」中添加:
export TG_BOT_TOKEN="your_bot_token"
export TG_USER_ID="your_user_id"
export DD_BOT_TOKEN="your_bot_token"
export DD_BOT_SECRET="your_bot_secret"
export QYWX_KEY="your_key"
export PUSH_KEY="your_sendkey"
十、常用脚本仓库
10.1 京东类
ql repo https://github.com/user/repo.git "jd_|jx_" "" "scripts"
10.2 签到类
ql repo https://github.com/user/checkin.git "checkin|sign" "" "src"
十一、常见问题
11.1 脚本依赖安装
npm install axios crypto-js
pip install requests
11.2 脚本不执行
- 检查 cron 表达式是否正确
- 检查环境变量是否配置
- 查看日志排查错误
- 检查脚本权限
11.3 通知不生效
- 检查通知环境变量是否正确
- 手动测试通知功能
- 查看通知日志
十二、高级功能
12.1 脚本依赖管理
在「依赖管理」中添加:
- Node.js:
axios, crypto-js, got
- Python:
requests, pycryptodome
12.2 配置文件编辑
在「配置文件」中编辑 config.sh:
export ProxyUrl="http://proxy:port"
export MaxTimeout=30000
export NotifyMode="all"
12.3 日志管理
- 日志路径:
/ql/data/log/
- 自动清理: 在配置中设置日志保留天数
十三、抓包技术
13.1 mitmproxy 抓包
pip install mitmproxy
mitmdump --set block_global=false -p 8888 -w capture.flow
python3 -c "
from mitmproxy.io import FlowReader
with open('capture.flow', 'rb') as f:
for flow in FlowReader(f).stream():
if 'api' in flow.request.pretty_url:
print(flow.request.headers.get('cookie'))
"
13.2 Fiddler 抓包
- 下载安装 Fiddler
- 配置 HTTPS 解密
- 设置手机代理
- 安装 Fiddler 证书
- 操作 App,抓取请求
13.3 Charles 抓包
- 下载安装 Charles
- 代理设置 → SSL 代理
- 添加需要抓取的域名
- 手机设置代理
- 安装 Charles 证书
13.4 ADB 抓包(无需代理)
adb devices
adb shell run-as com.xxx.app cat /data/data/com.xxx.app/shared_prefs/*.xml
adb logcat | grep -i "cookie\|token\|authorization"
十四、最佳实践
- 脚本命名规范:
项目名_功能_作者.js
- 环境变量命名: 大写+下划线,如
JD_COOKIE
- 错误处理: 必须有 try-catch 和错误提示
- 通知集成: 成功/失败都发送通知
- 定时任务: 避免整点执行,分散压力
十五、参考资源