首页
/ QD-Today 项目部署指南:从 Docker 到源码的完整方案

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 可视化部署

  1. 在 1Panel 中创建新应用
  2. 配置相关参数(可编辑 Compose 文件添加环境变量)
  3. 确认安装

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 请求地址
  • 避免同时运行新旧版本或将不同容器的数据库映射到同一文件

源码部署方案

环境准备

  1. Python 环境:版本 ≥ 3.9

    pip3 install -r requirements.txt
    
  2. 配置修改

    cp config.py local_config.py
    vi local_config.py
    
  3. 运行项目

    python ./run.py
    
  4. 访问应用

    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 首个注册用户是否为管理员

最佳实践建议

  1. 生产环境:推荐使用 Docker Compose 方式部署,便于管理和维护
  2. 开发测试:可以使用源码部署,便于调试和修改
  3. 安全配置:务必修改 AES_KEY 和 COOKIE_SECRET 等安全相关参数
  4. 性能调优:根据实际负载调整 SQL 连接池和 WebSocket 相关参数
  5. 备份策略:定期备份数据库文件,特别是在升级前

通过本文的详细指导,您应该能够顺利完成 QD-Today 项目的部署工作。如果在部署过程中遇到任何问题,可以参考配置文件的详细说明进行调整。