QD-Today 项目部署指南:从 Docker 到源码的完整方案
2025-07-08 04:03:59作者:蔡丛锟
前言
QD-Today 是一个功能强大的任务调度框架,本文将详细介绍如何通过 Docker 和源码两种方式部署 QD-Today 项目。无论您是运维工程师还是开发人员,都能找到适合您的部署方案。
Docker 容器化部署(推荐)
容器镜像说明
QD-Today 提供了多个 Docker 镜像版本,满足不同场景需求:
latest
:标准发布版,包含完整功能lite-latest
:精简版,移除了 OCR 相关功能(体积小于600MB)ja3-latest
:集成 curl-impersonate,解决 ja3 指纹识别问题20xxxxxx
:特定日期发布的版本dev
:开发版,同步最新代码,稳定性无保证
三种 Docker 部署方式
1. Docker Compose(最佳实践)
# 创建并进入QD工作目录
mkdir -p $(pwd)/qd/config && cd $(pwd)/qd
# 下载docker-compose配置文件
wget https://fastly.jsdelivr.net/gh/qd-today/qd@master/docker-compose.yml
# 编辑配置文件(按需修改环境变量)
vi ./docker-compose.yml
# 启动容器
docker-compose up -d
注意事项:
- 不需要 OCR 功能时建议使用 lite 版本
- 避免使用阿里云镜像源拉取容器
2. 1Panel 可视化部署
- 在 1Panel 中创建新应用
- 配置相关参数(可编辑 Compose 文件添加环境变量)
- 确认安装
3. 直接使用 Docker Run
基础命令:
docker run -d --name qd -p 8923:80 -v $(pwd)/qd/config:/usr/src/app/config qdtoday/qd
特殊网络环境解决方案:
# 使用主机网络模式
docker run -d --name qd --env PORT=8923 --net=host -v $(pwd)/qd/config:/usr/src/app/config qdtoday/qd
重要提示:
- 使用此方式部署后,需手动修改模板中的 API 请求地址
- 避免同时运行新旧版本或将不同容器的数据库映射到同一文件
源码部署方案
环境准备
-
Python 环境:版本 ≥ 3.9
pip3 install -r requirements.txt
-
配置修改:
cp config.py local_config.py vi local_config.py
-
运行项目:
python ./run.py
-
访问应用:
http://localhost:8923/
注意事项:
- 源码部署时同样需要修改模板中的 API 请求地址
- 模板需发布并通过管理员审核才会显示在"公共模板"中
管理员配置
将指定邮箱用户设为管理员:
python ./chrole.py your@email.address admin
注意:第一个注册的用户默认就是管理员,需要重新登录才能获得完整权限。
关键配置参数详解
基础配置
参数 | 默认值 | 说明 |
---|---|---|
BIND | 0.0.0.0 | 监听地址 |
PORT | 8923 | 监听端口 |
QD_DEBUG | False | 是否开启调试模式 |
DOMAIN | '' | 访问域名(必须设置才能使邮件找回密码功能生效) |
安全配置
参数 | 默认值 | 说明 |
---|---|---|
AES_KEY | binux | AES加密密钥(强烈建议修改) |
COOKIE_SECRET | binux | Cookie加密密钥(强烈建议修改) |
COOKIE_DAY | 5 | Cookie保留天数 |
数据库配置
参数 | 默认值 | 说明 |
---|---|---|
DB_TYPE | sqlite3 | 数据库类型(设为'mysql'使用MySQL) |
JAWSDB_MARIA_URL | '' | MySQL连接URL格式:mysql://用户:密码@主机:端口/数据库名?auth_plugin= |
任务相关配置
参数 | 默认值 | 说明 |
---|---|---|
NEW_TASK_DELAY | 1 | 新任务准备时间(秒) |
TASK_WHILE_LOOP_TIMEOUT | 900 | 单个While循环最大运行时间(秒) |
TASK_REQUEST_LIMIT | 1500 | 单任务最大请求数 |
高级配置
参数 | 默认值 | 说明 |
---|---|---|
USE_PYCURL | True | 是否启用Pycurl模块 |
DNS_SERVER | '' | 指定DNS服务器(仅Pycurl环境) |
USER0ISADMIN | True | 首个注册用户是否为管理员 |
最佳实践建议
- 生产环境:推荐使用 Docker Compose 方式部署,便于管理和维护
- 开发测试:可以使用源码部署,便于调试和修改
- 安全配置:务必修改 AES_KEY 和 COOKIE_SECRET 等安全相关参数
- 性能调优:根据实际负载调整 SQL 连接池和 WebSocket 相关参数
- 备份策略:定期备份数据库文件,特别是在升级前
通过本文的详细指导,您应该能够顺利完成 QD-Today 项目的部署工作。如果在部署过程中遇到任何问题,可以参考配置文件的详细说明进行调整。