一键导入
qinglong-panel
青龙面板完全指南:部署、脚本编写、API使用、抓包、自动化签到。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
青龙面板完全指南:部署、脚本编写、API使用、抓包、自动化签到。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Delegate coding to OpenAI Codex CLI (features, PRs).
Configure, extend, or contribute to Hermes Agent.
Manage multiple remote servers from Hermes via SSH — deploy services, configure firewalls, transfer files, run commands across servers
Clone/create/fork repos; manage remotes, releases.
Parallel data collection from web sources, APIs, and documentation sites
Deploy static sites to GitHub Pages via API — create repo, push, enable Pages, all from CLI
| 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 的定时任务管理平台。
QLAPI)# Alpine 镜像(默认)
docker pull whyour/qinglong:latest
# Debian 镜像(需要 Alpine 不支持的依赖时使用)
docker pull whyour/qinglong:debian
# 运行容器
docker run -d \
-v /path/to/ql/data:/ql/data \
-p 5700:5700 \
--name qinglong \
whyour/qinglong:latest
# 非 root 用户运行(必须用 debian 镜像)
docker run -d \
-v /path/to/ql/data:/ql/data \
-p 5700:5700 \
--user qinglong \
--name qinglong \
whyour/qinglong:debian
version: '3'
services:
qinglong:
image: whyour/qinglong:latest
container_name: qinglong
restart: unless-stopped
ports:
- "5700:5700"
volumes:
- ./data:/ql/data
environment:
- QlPort=5700
whyour/qinglong 镜像# 需要先安装 node/npm/python3/pip3/pnpm
npm i @whyour/qinglong
/ql/data/
├── config/ # 配置文件
│ ├── config.sh # 主配置
│ ├── auth.json # 认证信息
│ └── extra.sh # 额外配置
├── db/ # 数据库
├── log/ # 日志
├── repo/ # 脚本仓库
├── scripts/ # 自定义脚本
├── store/ # 存储
└── raw/ # 原始脚本
/**
* 脚本名称: 示例签到脚本
* 脚本作者: YourName
* 更新日期: 2026-06-09
* 使用方法: 在环境变量中添加 Cookie
* 依赖: axios
*/
const axios = require('axios');
// 从环境变量获取 Cookie
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.log(`请求出错: ${error.message}`);
}
}
// 执行签到
signIn();
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
脚本名称: 示例签到脚本
脚本作者: YourName
更新日期: 2026-06-09
使用方法: 在环境变量中添加 Cookie
依赖: requests
"""
import os
import sys
import requests
import time
import random
# 从环境变量获取 Cookie
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()
#!/bin/bash
# 脚本名称: 示例签到脚本
# 脚本作者: YourName
# 更新日期: 2026-06-09
# 使用方法: 在环境变量中添加 Token
# 从环境变量获取 Token
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
青龙面板提供 JavaScript 全局变量 QLAPI,可在脚本中直接调用。
// 获取环境变量列表
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.moveEnv({ id: 1, fromIndex: 0, toIndex: 1 });
// 发送通知
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 点每小时执行
变量名=变量值
用 & 分隔多个值:
COOKIE_NAME=cookie1&cookie2&cookie3
| 变量名 | 说明 |
|---|---|
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 推送地址 |
在「配置文件」中添加:
# Telegram 通知
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"
# Server酱通知
export PUSH_KEY="your_sendkey"
# 拉取仓库
ql repo https://github.com/user/repo.git "jd_|jx_" "" "scripts"
# 参数说明
# 第1个参数: 仓库地址
# 第2个参数: 包含的脚本文件名(用 | 分隔)
# 第3个参数: 排除的脚本文件名
# 第4个参数: 脚本目录
# 拉取签到脚本
ql repo https://github.com/user/checkin.git "checkin|sign" "" "src"
# Node.js 依赖
npm install axios crypto-js
# Python 依赖
pip install requests
在「依赖管理」中添加:
axios, crypto-js, gotrequests, pycryptodome在「配置文件」中编辑 config.sh:
# 设置代理
export ProxyUrl="http://proxy:port"
# 设置超时
export MaxTimeout=30000
# 设置通知方式
export NotifyMode="all" # all=所有通知, go=只用GOTR, ...
/ql/data/log/# 安装
pip install mitmproxy
# 启动代理
mitmdump --set block_global=false -p 8888 -w capture.flow
# 手机设置代理
# 设置 → WiFi → 代理 → 手动
# 服务器:电脑 IP,端口:8888
# 安装证书
# 手机浏览器访问 http://mitm.it
# 解析 Cookie
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'))
"
# 连接手机
adb devices
# 查看 App 数据
adb shell run-as com.xxx.app cat /data/data/com.xxx.app/shared_prefs/*.xml
# 抓取网络请求
adb logcat | grep -i "cookie\|token\|authorization"
项目名_功能_作者.jsJD_COOKIEreferences/packet-capture-techniques.md — 抓包技术详解(mitmproxy/Fiddler/Charles/ADB/Playwright)