con un clic
qinglong-panel
青龙面板完全指南:部署、脚本编写、API使用、抓包、自动化签到。
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
青龙面板完全指南:部署、脚本编写、API使用、抓包、自动化签到。
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
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
Basado en la clasificación ocupacional SOC
| 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)