QD 一个 HTTP 定时任务自动执行 Web 框架 安装教程
QD:轻量级 HTTP 定时任务 Web 框架安装与使用全教程
一、QD 框架简介
QD 是一款基于 Node.js 开发的 HTTP 定时任务自动执行框架,支持通过 Web 界面管理定时任务、设置 Cron 表达式、监控任务执行状态,适合快速部署自动化脚本(如网页签到、数据抓取、API 调用等)。其核心特点:
轻量级:基于 Docker 部署,资源占用低;
可视化管理:Web 界面操作,无需命令行编写任务;
灵活扩展:支持自定义 HTTP 请求参数、Headers、认证方式。
二、环境准备
系统要求
服务器:Linux(推荐 Ubuntu 20.04/Debian 11)、Windows 10+(需 Docker Desktop)
配置:1 核 CPU、512MB 内存以上
依赖:Docker、Docker Compose(用于容器化部署)
安装 Docker(以 Ubuntu 为例)
bash
# 更新包列表 sudo apt-get update # 安装Docker sudo apt-get install -y docker.io # 启动Docker服务 sudo systemctl start docker sudo systemctl enable docker # 验证安装 docker --version安装 Docker Compose
bash
sudo apt-get install -y docker-compose docker compose version
三、一键部署 QD 框架
1. 创建工作目录并启动容器
bash
# 创建目录
mkdir -p qd/config
cd qd
# 启动QD容器(后台运行,端口映射8923:80,挂载配置目录)
docker run -d --name qd -p 8923:80 -v $(pwd)/qd/config:/usr/src/app/config qdtoday/qd
2. 命令参数解析
参数说明
-d 后台运行容器
--name qd 容器名称设为qd
-p 8923:80 主机 8923 端口映射到容器 80 端口(可自定义端口,需确保未被占用)
-v $(pwd)/qd/config:/usr/src/app/config 挂载配置目录到容器内,确保数据持久化
qdtoday/qd 拉取 QD 官方 Docker 镜像
3. 检查容器状态
bash
# 查看运行中的容器
docker ps -a | grep qd
# 查看启动日志(获取初始密码)
docker logs qd
日志中会显示类似 Password: xxxxxxxx 的初始密码,用于首次登录。
四、首次访问与初始化设置
访问 Web 界面
浏览器输入http://服务器IP:8923(若为本地部署,输入http://localhost:8923)。若提示安全警告,选择 “继续访问”(首次加载可能需要等待 10-20 秒容器初始化)。
设置登录信息
输入日志中的初始密码,进入初始化页面;
自定义用户名和密码(建议强密码,包含字母、数字、符号);
点击 “设置” 完成初始化,使用新账号登录。
界面功能概览
任务管理:添加、编辑、删除定时任务;
执行日志:查看任务运行结果、错误信息;
环境变量:配置任务所需的公共参数(如 Cookie、Token);
系统设置:修改端口、密码、定时清理日志等。
五、添加定时任务示例(以网页签到为例)
进入任务管理
登录后点击左侧菜单 “任务管理”→“添加任务”。配置任务参数
任务名称:自定义(如 “某论坛每日签到”);
执行周期:使用 Cron 表达式(如
0 8 * * *表示每天 8 点执行);请求类型:选择
GET或POST(根据签到接口类型);URL 地址:输入签到接口 URL(如
https://example.com/checkin);请求头:添加 Cookie、User-Agent 等(示例):
json
{ "Cookie": "session_id=xxx; user_id=123", "User-Agent": "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36" }请求参数(POST 请求需填写):
json
{ "username": "your_name", "password": "your_password" }
保存并测试
点击 “保存” 后,可手动点击 “执行一次” 测试任务是否正常。
六、进阶功能:环境变量与批量管理
配置环境变量
进入 “环境变量” 页面,点击 “添加变量”;
例如将 Cookie 存储为变量
CHECKIN_COOKIE,在任务中通过{{env.CHECKIN_COOKIE}}引用,避免重复填写。
批量导入任务
支持从 JSON 文件导入多个任务,适合批量部署同类脚本;
格式示例:
json
[ { "name": "任务1", "cron": "0 8 * * *", "url": "https://task1.com", "method": "GET" }, { "name": "任务2", "cron": "0 9 * * *", "url": "https://task2.com", "method": "POST" } ]
七、数据备份与迁移
备份配置
bash
# 进入QD目录 cd qd # 打包配置文件(含任务、环境变量等) tar -czvf qd_backup_$(date +%Y%m%d).tar.gz config迁移到新服务器
在新服务器创建相同目录结构,上传备份文件并解压;
运行相同的 Docker 命令启动容器,配置将自动恢复。
八、常见问题与解决方案
无法访问面板
原因:端口未开放或防火墙拦截
解决:
bash
# Ubuntu/Debian开放端口 sudo ufw allow 8923/tcp # CentOS开放端口 sudo firewall-cmd --add-port=8923/tcp --permanent sudo firewall-cmd --reload
任务执行失败
原因:网络错误、参数错误、接口变更
解决:
查看 “执行日志” 获取具体错误(如 403 禁止访问、500 服务器错误);
检查 URL、请求头、参数是否正确,更新接口信息。
容器启动报错
原因:目录权限不足或镜像拉取失败
解决:
bash
# 赋予目录读写权限 chmod -R 777 qd/config # 手动拉取镜像 docker pull qdtoday/qd
九、安全优化建议
修改默认端口
编辑 Docker 命令,将
-p 8923:80改为其他端口(如-p 6666:80),降低被扫描风险。
启用 HTTPS
使用 Nginx 反向代理并配置 SSL 证书(示例 Nginx 配置):
nginx
server { listen 443 ssl; server_name your-domain.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://localhost:8923; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
限制登录 IP
在 “系统设置” 中添加 “允许登录 IP”(如
192.168.1.100),拒绝其他 IP 访问。
十、总结
QD 框架通过 Docker 实现了极简部署,无需复杂环境配置即可快速搭建定时任务系统。无论是个人自动化签到、企业 API 定时调用,还是数据采集场景,都能通过直观的 Web 界面轻松管理。建议定期备份配置,并根据实际需求扩展任务参数与执行逻辑,充分发挥其自动化能力。
- 感谢你赐予我前进的力量

