Docker
服务搭建
Docker-笔记类
Docker-Wiki.js
Docker-Trilium(个人云笔记)
Docker-MrDoc(觅思文档)
Docker-MinDoc(文档管理系统)
Docker-Wiz(为知笔记)
Docker-Wizard(开源文档管理系统)
Docker-siyuan(思源笔记)
Docker-Athensresearch(雅典)
Docker-Logseq(日志序列)
Docker-Joplin Server(需搭配APP)
MarkDown-进阶
Docker-AFFiNE(白板文档)
Docker-Obsidian(黑曜石)
Html-文章保护
Docker-Memos(备忘录)
Docker-Etherpad(实时协作在线编辑器)
Docker-AppFlowy
Docker-DokuWiki(维基)
Docker-小书匠
Docker-MD(微信 Markdown编辑器)
Docker-Halo(个人博客)
闲置宽带利用
甜糖
网心云
点心云
Docker-JS TOOL(京豆)
Docker-Gitea(代码托管平台)
Git使用小技巧
Git-命令推送
Git-常用命令
Docker-CentOS
Docker-iperf3(网络测速)
Docker-QingLong(青龙面板)
🚫青龙-NolanJDCloud
青龙-Ninja
青龙-京豆
青龙-互助码
青龙-WxPusher(通知)
青龙-其他脚本
青龙-bilibili
青龙-短视频金币
青龙-常见问题
青龙-迁移
青龙-快速部署
Docker-EMQX(MQTT服务器)
EMQX-高级操作
Docker-Home Assistant
Docker-RustDesk(远程桌面)
Docker-邮箱系统
Docker-SRS(直播服务器)
Docker-Bitwarden(密码服务器)
Bitwarden-TOTP(双因素认证2FA)
Docker-书签/导航
Docker-OneNav
Docker-Flare
Docker-WebStack
Docker-GEEKAPE
Docker-nav(发现导航)
Docker-Linkding(网络书签)
Docker-Wallabag(网络书签)
Docker-Benotes(书签)
Docker-LyLme Spage(六零导航页)
Docker-Homarr(浏览器仪表板)
Docker-Sun-Panel
Docker-Nginx
Docker-nginxWebUI(反向代理)
Docker-Nginx Proxy Manager
Docker-Nginx Config(配置生成器)
Docker-Nginx UI
Nginx-配置详细说明
PHP扩展
Nginx-安全
Nginx-Shell管理脚本
Docker-Redis
Docker-Jupyter(Python在线环境)
JupyterHub(支持课程管理)
Jupyter(单用户)
Jupyter-OpenCV
JupyterHub-自构建
Docker-LiveTorrent(磁力链在线解析)
Docker-OpenVPN
OpenVPN-配置注释
OpenVPN-基础部署
OpenVPN-一键脚本部署
OpenVPN-访问内部设备
OpenVPN-ovpn-admin(WebUI)
Docker-Switch联机
Docker-网站统计
Docker-Umami
Docker-Matomo
Docker-IPsecVPN
Docker-Zerotier(虚拟组网)
ZeroTier-Planet(星球)
Zerotier-Moons(月亮)
Zerotier-伪根服务器(修改UI)
ZeroTier-局域组网
Docker-Linux
Docker-Screeps 服务器
Docker-Harbor(Docker 镜像服务器)
Harbor-镜像迁移
docker-mirror(镜像转存工具)
Docker-Reader(网文阅读器)
Docker-聊天类
Docker-Rocket.chat(IM聊天系统)
Docker-Fiora(二次元聊天室)
Docker-Mattermost(开发者聊天室)
Docker-唐僧叨叨
Docker-Mastodon
Docker-VoceChat
Docker-blogChat(在线聊天室)
Docker-NASTools(影音库工具)
Docker-Lottery(抽奖程序)
Docker-VSCode Web版
Docker-临时分享类
Docker-PasteMe(自销毁小纸条)
Docker-PasteBin(临时分享)
Docker-Pingvin Share(文件分享)
Docker-Snapdrop(局域网传输)
Docker-FileCodeBox(文件快递柜)
Docker-microbin(临时分享)
Docker-PairDrop(局域网传输)
Docker-FastSend(文件快传)
Docker-internal-chat(局域网文字/文件)
Docker-Enclosed(私密安全笔记)
Docker-任务管理类
Docker-TAIGA(看板)
Docker-Focalboard(看板)
Docker-DooTask(轻量级任务管理工具)
Docker-Vikunja(待办事项)
Docker-Tasks.md(任务管理板)
Docker-Send(私密文件分享)
Docker-ScreeGo(在线多人屏幕分享)
Docker-ChatGPT
ChatGPT(伪)-部署
ChatGPT-未测试项目
ChatGPT-ChatGPT Web
🚫ChatGPT-ChatGPT Vercel
🚫ChatGPT-PandoraNext(潘多拉)
🚫ChatGPT-PandoraNext-Helper(Token管理)
Docker-kkFileView(文件在线预览)
Docker-问卷考试类
Docker-学之思(开源考试系统)
Docker-文字识别类(OCR)
Docker-OCR(Python)
Docker-Paperless-ngx(无纸化)
Docker-短链类
Docker-Yourls(短链)
Worker短链(CloudFlare)
Docker-GreaterWMS(仓管系统)
Docker-内网穿透
Docker-Frp
Docker-NPS
Frp-客户端配置工具
Docker-Frp-Panel
Docker-OpenP2P
Docker-网盘
Docker-AList(云盘直链)
🚫Docker-FileRun(个人网盘)
Docker-腾飞WebOS
Docker-Cloudreve(支持WebDAV子账户)
Docker-Seafile
Docker-ZFile
Docker-Dufs(轻量文件服务器)
Docker-FileGator
Docker-SSH/远程桌面
Docker-Guacamole(远程桌面)
Docker-Nexterm(服务器管理软件)
Docker-Sshwifty(SSH&Telnet客户端)
Docker-Next Terminal(Web终端)
Docker-CF_Tunnels(隧道)
Docker-RouYi_WMS
Docker-图形化管理工具
Docker-Portainer(图形化管理工具)
Docker-SimpleDocker(Docker控制面板)
Docker-Easypanel(易面板)
Docker-DockerUI(国内图形化)
Docker-1Panel
Docker-宝塔
Docker-lazydocker(Shell UI)
Docker-⭐DPanel(可视化管理面板)
Docker-⭐Dockge(docker-compose管理器)
Docker-Dokploy(PaaS)
Docker-UpSnap(局域网唤醒)
Docker-Watchtower(自动更新)
Docker-RunnerGo(全栈测试)
Docker-Web工具箱
Docker-Stirling-PDF(PDF工具)
Docker-IT Tools(IT工具箱)
Docker-Reference(速查神器)
Docker-Photopea(在线PS)
Docker-miniPaint(在线PS)
Docker-Morphos(文件转换)
Docker-证件照片排版
Docker-网易云解锁
Docker-nondanee_UnblockNeteaseMusic
Docker-UnblockNeteaseMusic
Docker-LX Music_Sync(数据同步)
Docker-在线白板类
Docker-Wbo(协作白板)
Docker-Excalidraw+(在线白板)
Docker-tldraw
Docker-Cook(今天吃什么)
Docker-Android
Docker-QD(自动签到)
QD-使用说明
Docker-消息推送(通知)
Docker-Wecom酱
Docker-Gotify(消息通知)
Docker-WeChatBot(微信机器人)
Docker-lumen项目部署
Docker-简历构建器
Docker-Open Resume
Docker-Reactive Resume
Docker-照片备份
Docker-Immich
Docker-vlmcsd(KMS)
Docker-Papermerge(数字档案文件管理系统)
Docker-SearXNG(搜索引擎)
Docker-Snipe-IT(资产管理)
Docker-Moments(极简朋友圈)
Docker-neko(浏览器)
Docker-AsPoem(诗词网站)
Docker-CMS(内容管理系统)
Docker-Ikaros(个人内容管家)
Docker-JPress
Docker-OneKVM(类向日葵控控)
Docker-OS(系统)
Docker-DSM(群晖)
Docker-OSX(MacOS)
Docker-Puter(云端系统)
Docker-GodoOS(内网办公操作系统)
Docker-Nextcloud
Docker-KodCloud(可道云)
Docker-MacOS
Docker-Windows
Docker-Ferry(工单系统)
Docker-HivisionIDPhotos(AI证件照)
Docker-IPTVnator(IPTV播放器)
Docker-SQL工具
Docker-SQLynx
Docker-STUN/TURN(Coturn)
Docker-gocron(定时任务管理系统)
Docker-paopao-ce(微社区)
Docker-JSON Hero(JSON浏览器)
Docker-n8n(工作流自动化)
Docker-Aria2
Docker-NTP(时间服务器)
Docker-EasyTier(异地组网)
Linux-EasyTier
EasyTier-配置文件
Docker-Domain Admin(域管理员)
Docker-WPS
卷的使用
备份与还原
各种开源项目(未测试)
限制资源
开放端口调整
更换 Docker 源
镜像转存DockerHub
DockerHub 代理加速(Cloudflare Worker)
Docker 代理加速(Cloudflare Worker)
代理加速
⭐CF-Workers-docker(DockerHub 加速)
docker run 转 docker-compose
Docker 解释
Dockerfile(自建镜像)
使用第三方构建
多阶段构建(缩小体积)
Docker的备份服务器
Kasm(Web服务)
Docker-备份与还原
Docker-volume(卷)
Docker-network(网络)
Linux 安装 Docker
Windows 安装 Docker
Win7 安装 Docker
游戏服务器搭建
Docker-Valheim(英灵神殿)
Docker-jsnes(在线NES)
Docker-7DaysToDie(七日杀)
7DaysToDie-配置文件
Docker-Conan Exiles(流放者柯南)
Docker-noname(无名杀)
Docker-Epic游戏商城每周免费游戏
Docker-Terraria(泰拉瑞亚)
泰拉瑞亚-服务器
Terrari-存档同步
Docker-Mindustry(像素工厂)
Docker-Habitica(习惯养成RPG)
Docker-RetroArch(在线模拟器)
Docker-vue-idle-game(轮回勇士传说)
Docker-Phira(Phigros 二创版)
Docker-Pterodactyl(翼龙面板⭐)
Pterodactyl-自建预设(游戏部署脚本)
Docker-GamePanelX-V3(游戏面板)
Docker-MCSManager(游戏面板⭐)
Docker-Easy-WI(游戏面板)
Docker-常见问题处理
Podman(Docker替代品)
Docker-Linux Command(Linux命令搜索引擎)
Docker-修改存储位置
Dockerc(编译为独立二进制文件)
slim(镜像瘦身)
Docker-API(远程连接)
Docker-cloudbak(云朵备份)
本文档使用 MrDoc 发布
-
+
首页
Docker-QD(自动签到)
**相关链接:** - QD:https://qd-today.github.io/qd/zh_CN/ - 官方文档:https://qd-today.github.io/qd/zh_CN/guide/what-is-qd.html - GitHub:https://github.com/qd-today/qd/ - Docker:https://hub.docker.com/r/qdtoday/qd - 官方手册:https://www.quchao.net/QianDaoEXP.html - 公共模板:https://github.com/qd-today/templates - HAR分析器:https://toolbox.googleapps.com/apps/har_analyzer/?lang=zh_CN ## Docker 版 ```bash docker run -d --name qd -p 8923:80 -v $(pwd):/usr/src/app/config qdtoday/qd # 若容器内部无法访问外部网络,尝试使用 Host模式创建容器,修改端口号8923(否则默认80) docker run -d --name qd --env PORT=8923 --net=host -v $(pwd):/usr/src/app/config qdtoday/qd # 注意: 使用该命令创建容器后, 请将模板里 http://localhost/ 形式的 api 请求, 手动改成 api:// 或 http://localhost:8923/ 后, 才能正常完成相关API请求。 # 支持邮箱通知 docker run -d --name qd -p 8923:80 -v $(pwd):/usr/src/app/config --env MAIL_SMTP=STMP服务器 --env MAIL_PORT=邮箱服务器端口 --env MAIL_USER=用户名 --env MAIL_PASSWORD=密码 --env DOMAIN=域名 qdtoday/qd # 更新QD docker exec -it qd /bin/sh wget https://gitee.com/qd-today/qd/raw/master/update.sh -O /usr/src/app/update.sh && \ sh /usr/src/app/update.sh ``` ## ⭐docker-compose 版 ```bash mkdir {config,redis} # 创建所需文件夹 wget https://fastly.jsdelivr.net/gh/qd-today/qd@master/docker-compose.yml # 下载官方docker-compose.yml nano docker-compose.yml # 可以直接使用我添加注释的 docker-compose up -d # 部署并启动服务 # 更新QD docker-compose pull && \ docker-compose up -d ``` `docker-compose.yml` 对官方提供的 [docker-compose.yml](https://fastly.jsdelivr.net/gh/qd-today/qd@master/docker-compose.yml) 进行详细注释,并启用常用配置 ```yaml version: "3" services: qd: image: qdtoday/qd:latest # 使用最新版本的QD镜像 # image: qdtoday/qd:lite-latest # 使用精简版QD镜像(去除OCR功能) # image: qdtoday/qd:dev # 使用开发版QD镜像 #container_name: qd # 容器名称为qd depends_on: - redis # 依赖redis服务 ports: - "8923:80" # 将容器内的80端口映射到主机的8923端口 volumes: - "./config:/usr/src/app/config" # 将本地的config目录映射到容器内的/usr/src/app/config目录 environment: # - QD_DEBUG=False # 是否启用Debug模式 # - BIND=0.0.0.0 # 监听地址 # - PORT=80 # 监听端口(更改端口后 http://localhost/ 形式的 api请求,需改成 api:// 或 http://localhost:<新端口>/ 形式,才能正常完成相关API请求) # - EVIL_PASS_LAN_IP=True # 是否允许内网IP通过 # - MULTI_PROCESS=False # 任务定时执行方式,(实验性)是否启用多进程模式,Windows平台无效 # - AUTO_RELOAD=False # 是否启用自动热加载,MULTI_PROCESS=True 时无效 - DOMAIN=nas.918178.xyz:8923 # 指定访问域名,(建议修改),否则通过邮件重置密码及邮箱推送等功能无效 - MAIL_SMTP=smtp.qq.com # 邮箱 SMTP 服务器 - MAIL_PORT=587 # 邮箱 SMTP 服务器端口 - MAIL_SSL=True # 是否启用邮箱 SSL - MAIL_USER=773203918@qq.com # 邮箱用户名 - MAIL_PASSWORD=xxx # 邮箱密码 - MAIL_FROM=773203918@qq.com # 发送邮件的邮箱地址 #- MAIL_DOMAIN_HTTPS=True # 邮件域名是否使用 HTTPS(若是https则要启用) # - MAIL_STARTTLS=False # 是否启用邮箱 STARTTLS - COOKIE_SECRET=zwzw # cookie加密密钥,(强烈建议修改) - PBKDF2_ITERATIONS=400 # PBKDF2迭代次数 - AES_KEY=zwzw # AES加密密钥,(强烈建议修改) # - COOKIE_DAY=5 # Cookie在客户端中保留的天数 # - COOKIE_SECURE_MODE=False # 是否启用Cookie安全模式 # - DISPLAY_IMPORT_WARNING=True # 是否显示导入警告 # - USER0ISADMIN=True # 用户0是否为管理员 - REDISCLOUD_URL=redis://redis:6379 # Redis连接URL # - REDIS_DB_INDEX=1 # Redis数据库索引 # - DB_TYPE=sqlite3 # 数据库类型,默认 sqlite3/mysql # - JAWSDB_MARIA_URL=mysql://user:pass@localhost:3306/dbname?auth_plugin= # 需要使用MySQL时,设置为(mysql://用户名:密码@hostname:port/数据库名?auth_plugin=) # - QD_SQL_LOGGING_NAME=QD.sql # SQLAlchmey 日志名称 # - QD_SQL_LOGGING_LEVEL=WARNING # SQLAlchmey 日志级别 # - QD_SQL_POOL_LOGGING_NAME=QD.sql.pool # SQLAlchmey 连接池日志名称 # - QD_SQL_POOL_LOGGING_LEVEL=WARNING # SQLAlchmey 连接池日志级别 # - QD_SQL_POOL_SIZE=5 # SQLAlchmey 连接池大小 # - QD_SQL_MAX_OVERFLOW=10 # SQLAlchmey 连接池最大溢出 # - QD_SQL_POOL_PRE_PING=True # 是否预检查连接 # - QD_SQL_POOL_RECYCLE=3600 # 连接池回收时间 # - QD_SQL_POOL_TIMEOUT=30 # 连接池超时时间 # - QD_SQL_POOL_USE_LIFO=True # 是否使用后进先出的连接池 # - GZIP=True # 是否启用GZIP压缩 # - ACCESS_LOG=True # 是否记录访问日志 # - STATIC_URL_PREFIX=/static/ # 静态文件URL前缀 # - QD_EVIL=1000 # 恶意请求的阈值 # - WORKER_METHOD=Queue # 任务定时执行方式,默认 Queue,Batch 性能弱(不推荐,Queue无效再使用) # - QUEUE_NUM=50 # 队列数量 # - CHECK_TASK_LOOP=500 # 检查任务循环时间间隔 # - TASK_MAX_RETRY_COUNT=8 # 任务最大重试次数 # - NEW_TASK_DELAY=1 # 新任务延迟时间 # - TASK_WHILE_LOOP_TIMEOUT=900 # 任务循环超时时间 # - TASK_REQUEST_LIMIT=1500 # 任务请求限制 # - DOWNLOAD_SIZE_LIMIT=5242880 # 下载文件大小限制 # - REQUEST_TIMEOUT=30.0 # 请求超时时间 # - CONNECT_TIMEOUT=30.0 # 连接超时时间 # - DELAY_MAX_TIMEOUT=29.9 # 最大延迟超时时间 # - UNSAFE_EVAL_TIMEOUT=3.0 # 不安全的求值超时时间 # - USE_PYCURL=True # 是否使用pycurl进行请求 # - ALLOW_RETRY=True # 是否允许重试请求 # - DNS_SERVER= # 自定义DNS服务器 # - CURL_ENCODING=True # 是否使用CURL进行编码 # - CURL_CONTENT_LENGTH=True # 是否启用 Curl Content-Length 请求头 # - NOT_RETRY_CODE=301|302|303|304|305|307|400|401|403|404|405|407|408|409|410|412|415|413|414|500|501|502|503|504|599 # 不重试的 HTTP 状态码列表 # - EMPTY_RETRY=True # 是否允许空重试 # - TRACEBACK_PRINT=False # 是否在控制台打印异常的 TraceBack 信息 # - PUSH_PIC_URL=https://gitee.com/qd-today/qd/raw/master/web/static/img/push_pic.png # 推送图片的 URL # - PUSH_BATCH_SW=True # 是否允许开启推送批量开关 # - PUSH_BATCH_DELTA=60 # 推送批量时间间隔 # - WS_PING_INTERVAL=5 # WebSocket ping 间隔时间,单位为秒 # - WS_PING_TIMEOUT=30 # WebSocket ping 超时时间,单位为秒 # - WS_MAX_MESSAGE_SIZE=10485760 # WebSocket 单次接收最大消息大小,单位为字节 # - WS_MAX_QUEUE_SIZE=100 # WebSocket 最大消息队列大小 # - WS_MAX_CONNECTIONS_SUBSCRIBE=30 # WebSocket 公共模板更新页面最大连接数 # - SUBSCRIBE_ACCELERATE_URL=jsdelivr_cdn # 订阅加速方式或地址 # - PROXIES= # 全局代理域名列表 # - PROXY_DIRECT_MODE= # 全局代理黑名单模式 # - PROXY_DIRECT= # 全局代理黑名单匹配规则 # - NOTEPAD_LIMIT=20 # 单个用户拥有记事本的最大数量 # - EXTRA_ONNX_NAME= # 额外的 ONNX 文件名 # - EXTRA_CHARSETS_NAME= # 额外的字符集文件名 # - MAILGUN_KEY= # Mailgun API 密钥 # - MAILGUN_DOMAIN= # Mailgun 域名 # - GA_KEY= # Google Analytics 密钥 restart: always redis: image: redis:alpine #container_name: redis command: ["--loglevel warning"] # command: redis-server /usr/local/etc/redis/redis.conf volumes: # - ./redis/redis.conf:/usr/local/etc/redis/redis.conf:rw - ./redis:/data:rw restart: always ``` ### NginxUI 反向代理 `docker-compose.yml` ```yaml version: "3" services: qd: image: qdtoday/qd:latest # 使用最新版本的QD镜像 # image: qdtoday/qd:lite-latest # 使用精简版QD镜像(去除OCR功能) # image: qdtoday/qd:dev # 使用开发版QD镜像 container_name: qd_qd # 容器名称 # depends_on: # - redis # 依赖redis服务 #expose: # 开放给内部调用 # - "80" #ports: # 使用Nginx反代 # - "8923:80" # 将容器内的80端口映射到主机的8923端口 volumes: - ./config:/usr/src/app/config # 将本地的config目录映射到容器内的/usr/src/app/config目录 environment: # - QD_DEBUG=False # 是否启用Debug模式 # - BIND=0.0.0.0 # 监听地址 # - PORT=80 # 监听端口(更改端口后 http://localhost/ 形式的 api请求,需改成 api:// 或 http://localhost:<新端口>/ 形式,才能正常完成相关API请求) # - EVIL_PASS_LAN_IP=True # 是否允许内网IP通过 # - MULTI_PROCESS=False # 任务定时执行方式,(实验性)是否启用多进程模式,Windows平台无效 # - AUTO_RELOAD=False # 是否启用自动热加载,MULTI_PROCESS=True 时无效 - DOMAIN=qd.918178.xyz:8443 # 指定访问域名,(建议修改),否则通过邮件重置密码及邮箱推送等功能无效 - MAIL_SMTP=smtp.qq.com # 邮箱 SMTP 服务器 - MAIL_PORT=587 # 邮箱 SMTP 服务器端口 - MAIL_SSL=True # 是否启用邮箱 SSL - MAIL_USER=ai773203918@qq.com # 邮箱用户名 - MAIL_PASSWORD=xxx # 邮箱密码 - MAIL_FROM=ai773203918@qq.com # 发送邮件的邮箱地址 - MAIL_DOMAIN_HTTPS=True # 邮件域名是否使用 HTTPS(若是https代理则启用) # - MAIL_DOMAIN_HTTPS=False # 邮件域名是否使用 HTTPS - COOKIE_SECRET=zwzw # cookie加密密钥,(强烈建议修改) - PBKDF2_ITERATIONS=400 # PBKDF2迭代次数 - AES_KEY=zwzw # AES加密密钥,(强烈建议修改) # - COOKIE_DAY=5 # Cookie在客户端中保留的天数 # - COOKIE_SECURE_MODE=False # 是否启用Cookie安全模式 # - DISPLAY_IMPORT_WARNING=True # 是否显示导入警告 # - USER0ISADMIN=True # 用户0是否为管理员 # - REDISCLOUD_URL=redis://redis:6379 # Redis连接URL,如果出现更新模板失败尝试禁用 # - REDIS_DB_INDEX=1 # Redis数据库索引 # - DB_TYPE=sqlite3 # 数据库类型,默认 sqlite3/mysql # - JAWSDB_MARIA_URL=mysql://user:pass@localhost:3306/dbname?auth_plugin= # 需要使用MySQL时,设置为(mysql://用户名:密码@hostname:port/数据库名?auth_plugin=) # - QD_SQL_LOGGING_NAME=QD.sql # SQLAlchmey 日志名称 # - QD_SQL_LOGGING_LEVEL=WARNING # SQLAlchmey 日志级别 # - QD_SQL_POOL_LOGGING_NAME=QD.sql.pool # SQLAlchmey 连接池日志名称 # - QD_SQL_POOL_LOGGING_LEVEL=WARNING # SQLAlchmey 连接池日志级别 # - QD_SQL_POOL_SIZE=5 # SQLAlchmey 连接池大小 # - QD_SQL_MAX_OVERFLOW=10 # SQLAlchmey 连接池最大溢出 # - QD_SQL_POOL_PRE_PING=True # 是否预检查连接 # - QD_SQL_POOL_RECYCLE=3600 # 连接池回收时间 # - QD_SQL_POOL_TIMEOUT=30 # 连接池超时时间 # - QD_SQL_POOL_USE_LIFO=True # 是否使用后进先出的连接池 # - GZIP=True # 是否启用GZIP压缩 # - ACCESS_LOG=True # 是否记录访问日志 # - STATIC_URL_PREFIX=/static/ # 静态文件URL前缀 # - QD_EVIL=1000 # 恶意请求的阈值 # - WORKER_METHOD=Queue # 任务定时执行方式,默认 Queue,Batch 性能弱(不推荐,Queue无效再使用) # - QUEUE_NUM=50 # 队列数量 # - CHECK_TASK_LOOP=500 # 检查任务循环时间间隔 # - TASK_MAX_RETRY_COUNT=8 # 任务最大重试次数 # - NEW_TASK_DELAY=1 # 新任务延迟时间 # - TASK_WHILE_LOOP_TIMEOUT=900 # 任务循环超时时间 # - TASK_REQUEST_LIMIT=1500 # 任务请求限制 # - DOWNLOAD_SIZE_LIMIT=5242880 # 下载文件大小限制 # - REQUEST_TIMEOUT=30.0 # 请求超时时间 # - CONNECT_TIMEOUT=30.0 # 连接超时时间 # - DELAY_MAX_TIMEOUT=29.9 # 最大延迟超时时间 # - UNSAFE_EVAL_TIMEOUT=3.0 # 不安全的求值超时时间 # - USE_PYCURL=True # 是否使用pycurl进行请求 # - ALLOW_RETRY=True # 是否允许重试请求 # - DNS_SERVER= # 自定义DNS服务器 # - CURL_ENCODING=True # 是否使用CURL进行编码 # - CURL_CONTENT_LENGTH=True # 是否启用 Curl Content-Length 请求头 # - NOT_RETRY_CODE=301|302|303|304|305|307|400|401|403|404|405|407|408|409|410|412|415|413|414|500|501|502|503|504|599 # 不重试的 HTTP 状态码列表 # - EMPTY_RETRY=True # 是否允许空重试 # - TRACEBACK_PRINT=False # 是否在控制台打印异常的 TraceBack 信息 # - PUSH_PIC_URL=https://gitee.com/qd-today/qd/raw/master/web/static/img/push_pic.png # 推送图片的 URL # - PUSH_BATCH_SW=True # 是否允许开启推送批量开关 # - PUSH_BATCH_DELTA=60 # 推送批量时间间隔 # - WS_PING_INTERVAL=5 # WebSocket ping 间隔时间,单位为秒 # - WS_PING_TIMEOUT=30 # WebSocket ping 超时时间,单位为秒 # - WS_MAX_MESSAGE_SIZE=10485760 # WebSocket 单次接收最大消息大小,单位为字节 # - WS_MAX_QUEUE_SIZE=100 # WebSocket 最大消息队列大小 # - WS_MAX_CONNECTIONS_SUBSCRIBE=30 # WebSocket 公共模板更新页面最大连接数 # - SUBSCRIBE_ACCELERATE_URL=jsdelivr_cdn # 订阅加速方式或地址 # - PROXIES= # 全局代理域名列表 # - PROXY_DIRECT_MODE= # 全局代理黑名单模式 # - PROXY_DIRECT= # 全局代理黑名单匹配规则 # - NOTEPAD_LIMIT=20 # 单个用户拥有记事本的最大数量 # - EXTRA_ONNX_NAME= # 额外的 ONNX 文件名 # - EXTRA_CHARSETS_NAME= # 额外的字符集文件名 # - MAILGUN_KEY= # Mailgun API 密钥 # - MAILGUN_DOMAIN= # Mailgun 域名 # - GA_KEY= # Google Analytics 密钥 restart: always networks: - default - nginxui_default # 加入nginx容器所在网络(仅需要反向代理的容器需要加入) # 如果出现更新模板失败尝试禁用 # redis: # image: redis:alpine # container_name: qd_redis # command: ["--loglevel warning"] # # command: redis-server /usr/local/etc/redis/redis.conf # volumes: # # - ./redis/redis.conf:/usr/local/etc/redis/redis.conf:rw # - ./redis:/data:rw # restart: always # networks: # - default # # - nginxui_default # 加入nginx容器所在网络 # 独立的 nginx(这里使用其他nginx代理故禁用) # nginx: # image: nginx # container_name: qd_Nginx # ports: # - '8923:8923' # volumes: # - ./nginx.conf:/etc/nginx/nginx.conf # Nginx配置文件 # - ./key:/etc/nginx/key # SSL路径 # #- .passwd:/etc/nginx/.passwd # 密码文件路径 # depends_on: # - qd # 等待 qd 启动后再启动 # restart: always # 加入nginx容器所在网络(否则无法使用nginx代理) networks: nginxui_default: external: true # 使用已存在的网络 name: nginxui_default # 使用名为 nginx 的网络 ``` `NginxUI 配置`,需要设置 WebSocket、外部访问域名+端口 以解决 [Nginx 反代跨域](https://github.com/qd-today/qd/issues/467) ```bash # QD 自动签到(必须要主路径,子路径功能有问题) server { listen 8443 ssl; server_name qd.918178.xyz; # 监听域名 ssl_certificate /etc/nginx/ssl/*.918178.xyz_918178.xyz/fullchain.cer; ssl_certificate_key /etc/nginx/ssl/*.918178.xyz_918178.xyz/private.key; error_page 497 =307 https://$host:$server_port$request_uri; # http自动转https # QD 必须从根/开始 location / { proxy_pass http://qd_qd; # WebSocket 关键配置 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; #其他可选配置 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ``` ### Nginx 反向代理(独立部署) `docker-compose.yml` ```yaml version: "3" services: qd: image: qdtoday/qd:latest # 使用最新版本的QD镜像 # image: qdtoday/qd:lite-latest # 使用精简版QD镜像(去除OCR功能) # image: qdtoday/qd:dev # 使用开发版QD镜像 #container_name: qd_qd # 容器名称 depends_on: - redis # 依赖redis服务 # ports: # 使用Nginx反代 # - "8923:80" # 将容器内的80端口映射到主机的8923端口 volumes: - "./config:/usr/src/app/config" # 将本地的config目录映射到容器内的/usr/src/app/config目录 environment: #- QD_DEBUG=False # 是否启用Debug模式 # - BIND=0.0.0.0 # 监听地址 # - PORT=80 # 监听端口(更改端口后 http://localhost/ 形式的 api请求,需改成 api:// 或 http://localhost:<新端口>/ 形式,才能正常完成相关API请求) # - EVIL_PASS_LAN_IP=True # 是否允许内网IP通过 # - MULTI_PROCESS=False # 任务定时执行方式,(实验性)是否启用多进程模式,Windows平台无效 # - AUTO_RELOAD=False # 是否启用自动热加载,MULTI_PROCESS=True 时无效 - DOMAIN=blynk.space:8923 # 指定访问域名,(建议修改),否则通过邮件重置密码及邮箱推送等功能无效 - MAIL_SMTP=smtp.qq.com # 邮箱 SMTP 服务器 - MAIL_PORT=587 # 邮箱 SMTP 服务器端口 - MAIL_SSL=True # 是否启用邮箱 SSL - MAIL_USER=ai773203918@qq.com # 邮箱用户名 - MAIL_PASSWORD=xxx # 邮箱密码 - MAIL_FROM=ai773203918@qq.com # 发送邮件的邮箱地址 - MAIL_DOMAIN_HTTPS=True # 邮件域名是否使用 HTTPS(若是https代理则启用) # - MAIL_DOMAIN_HTTPS=False # 邮件域名是否使用 HTTPS - COOKIE_SECRET=zwzw # cookie加密密钥,(强烈建议修改) - PBKDF2_ITERATIONS=400 # PBKDF2迭代次数 - AES_KEY=zwzw # AES加密密钥,(强烈建议修改) # - COOKIE_DAY=5 # Cookie在客户端中保留的天数 # - COOKIE_SECURE_MODE=False # 是否启用Cookie安全模式 # - DISPLAY_IMPORT_WARNING=True # 是否显示导入警告 # - USER0ISADMIN=True # 用户0是否为管理员 - REDISCLOUD_URL=redis://redis:6379 # Redis连接URL # - REDIS_DB_INDEX=1 # Redis数据库索引 # - DB_TYPE=sqlite3 # 数据库类型,默认 sqlite3/mysql # - JAWSDB_MARIA_URL=mysql://user:pass@localhost:3306/dbname?auth_plugin= # 需要使用MySQL时,设置为(mysql://用户名:密码@hostname:port/数据库名?auth_plugin=) # - QD_SQL_LOGGING_NAME=QD.sql # SQLAlchmey 日志名称 # - QD_SQL_LOGGING_LEVEL=WARNING # SQLAlchmey 日志级别 # - QD_SQL_POOL_LOGGING_NAME=QD.sql.pool # SQLAlchmey 连接池日志名称 # - QD_SQL_POOL_LOGGING_LEVEL=WARNING # SQLAlchmey 连接池日志级别 # - QD_SQL_POOL_SIZE=5 # SQLAlchmey 连接池大小 # - QD_SQL_MAX_OVERFLOW=10 # SQLAlchmey 连接池最大溢出 # - QD_SQL_POOL_PRE_PING=True # 是否预检查连接 # - QD_SQL_POOL_RECYCLE=3600 # 连接池回收时间 # - QD_SQL_POOL_TIMEOUT=30 # 连接池超时时间 # - QD_SQL_POOL_USE_LIFO=True # 是否使用后进先出的连接池 # - GZIP=True # 是否启用GZIP压缩 # - ACCESS_LOG=True # 是否记录访问日志 # - STATIC_URL_PREFIX=/static/ # 静态文件URL前缀 # - QD_EVIL=1000 # 恶意请求的阈值 # - WORKER_METHOD=Queue # 任务定时执行方式,默认 Queue,Batch 性能弱(不推荐,Queue无效再使用) # - QUEUE_NUM=50 # 队列数量 # - CHECK_TASK_LOOP=500 # 检查任务循环时间间隔 # - TASK_MAX_RETRY_COUNT=8 # 任务最大重试次数 # - NEW_TASK_DELAY=1 # 新任务延迟时间 # - TASK_WHILE_LOOP_TIMEOUT=900 # 任务循环超时时间 # - TASK_REQUEST_LIMIT=1500 # 任务请求限制 # - DOWNLOAD_SIZE_LIMIT=5242880 # 下载文件大小限制 # - REQUEST_TIMEOUT=30.0 # 请求超时时间 # - CONNECT_TIMEOUT=30.0 # 连接超时时间 # - DELAY_MAX_TIMEOUT=29.9 # 最大延迟超时时间 # - UNSAFE_EVAL_TIMEOUT=3.0 # 不安全的求值超时时间 # - USE_PYCURL=True # 是否使用pycurl进行请求 # - ALLOW_RETRY=True # 是否允许重试请求 # - DNS_SERVER= # 自定义DNS服务器 # - CURL_ENCODING=True # 是否使用CURL进行编码 # - CURL_CONTENT_LENGTH=True # 是否启用 Curl Content-Length 请求头 # - NOT_RETRY_CODE=301|302|303|304|305|307|400|401|403|404|405|407|408|409|410|412|415|413|414|500|501|502|503|504|599 # 不重试的 HTTP 状态码列表 # - EMPTY_RETRY=True # 是否允许空重试 # - TRACEBACK_PRINT=False # 是否在控制台打印异常的 TraceBack 信息 # - PUSH_PIC_URL=https://gitee.com/qd-today/qd/raw/master/web/static/img/push_pic.png # 推送图片的 URL # - PUSH_BATCH_SW=True # 是否允许开启推送批量开关 # - PUSH_BATCH_DELTA=60 # 推送批量时间间隔 # - WS_PING_INTERVAL=5 # WebSocket ping 间隔时间,单位为秒 # - WS_PING_TIMEOUT=30 # WebSocket ping 超时时间,单位为秒 # - WS_MAX_MESSAGE_SIZE=10485760 # WebSocket 单次接收最大消息大小,单位为字节 # - WS_MAX_QUEUE_SIZE=100 # WebSocket 最大消息队列大小 # - WS_MAX_CONNECTIONS_SUBSCRIBE=30 # WebSocket 公共模板更新页面最大连接数 # - SUBSCRIBE_ACCELERATE_URL=jsdelivr_cdn # 订阅加速方式或地址 # - PROXIES= # 全局代理域名列表 # - PROXY_DIRECT_MODE= # 全局代理黑名单模式 # - PROXY_DIRECT= # 全局代理黑名单匹配规则 # - NOTEPAD_LIMIT=20 # 单个用户拥有记事本的最大数量 # - EXTRA_ONNX_NAME= # 额外的 ONNX 文件名 # - EXTRA_CHARSETS_NAME= # 额外的字符集文件名 # - MAILGUN_KEY= # Mailgun API 密钥 # - MAILGUN_DOMAIN= # Mailgun 域名 # - GA_KEY= # Google Analytics 密钥 restart: always redis: image: redis:alpine #container_name: qd_redis command: ["--loglevel warning"] # command: redis-server /usr/local/etc/redis/redis.conf volumes: # - ./redis/redis.conf:/usr/local/etc/redis/redis.conf:rw - ./redis:/data:rw restart: always nginx: image: nginx #container_name: qd_Nginx ports: - '8923:8923' volumes: - ./nginx.conf:/etc/nginx/nginx.conf # Nginx配置文件 - ./key:/etc/nginx/key # SSL路径 #- .passwd:/etc/nginx/.passwd # 密码文件路径 depends_on: - qd # 等待 qd 启动后再启动 restart: always ``` `nginx.conf` ```bash user nginx; # 设置 Nginx 运行的用户为 'nginx' worker_processes auto; # 根据可用的 CPU 核心数量自动设置 worker 进程的数量 error_log /var/log/nginx/error.log; # 定义错误日志的路径 pid /run/nginx.pid; # 定义 Nginx 主进程的 PID 文件路径 # 定义事件模块的配置,主要设置 worker 进程的最大连接数 events { worker_connections 1024; } # 定义 HTTP 模块的配置 http { charset UTF-8; # 设置字符集为 UTF-8 # HTTPS反向代理 server { listen 8923 ssl; # ⭐反向代理端口,要和容器一致 server_name blynk.space; # ⭐域名 # SSL/TLS证书和私钥路径 ssl_certificate /etc/nginx/key/blynk.space.cer; # ⭐证书(有些版本*需写成\*) ssl_certificate_key /etc/nginx/key/blynk.space.key; # ⭐密钥(有些版本*需写成\*) error_page 497 =307 https://$host:$server_port$request_uri; # http自动跳转https # 遇到 HTTP 请求发到 HTTPS 时会产生的内部错误代码 497 # 返回307临时重定向(客户端应保持请求方法不变向新的地址发出请求) # 设置处理请求的 URI 路径为根路径 location / { # WebSocket关链配置开始 proxy_http_version 1.1; # 设置代理服务器与后端服务器之间使用的 HTTP 协议版本为 1.1 proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # 设置传递给后端服务器的请求头中的 Connection 字段 # WebSocket关链配置结束 proxy_pass http://qd:80; # ⭐连接的内部服务,可以直接写容器 proxy_pass_header Server; # 设置要传递给后端服务器的请求头字段 proxy_set_header Host $http_host; # 设置传递给后端服务器的请求头中的 Host 字段为客户端请求的主机头 proxy_set_header X-Forwarded-Proto $scheme; # 设置传递给后端服务器的请求头中的 X-Forwarded-Proto 字段,表示客户端连接时使用的协议 proxy_set_header X-Real-IP $remote_addr; # 设置传递给后端服务器的请求头中的 X-Real-IP 字段,表示客户端的真实 IP 地址 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 设置传递给后端服务器的请求头中的 X-Forwarded-For 字段,表示客户端的原始 IP 地址 proxy_buffering off; # 关闭代理缓冲,确保及时传递后端服务器的数据给客户端 proxy_cache off; # 禁用代理缓存,确保每次请求都直接从后端服务器获取最新的数据 send_timeout 600; # 设置向客户端发送响应的超时时间为 600 秒 proxy_connect_timeout 600; # 设置与后端服务器建立连接的超时时间为 600 秒 proxy_send_timeout 600; # 设置向后端服务器发送请求的超时时间为 600 秒 proxy_read_timeout 600; # 设置从后端服务器读取响应的超时时间为 600 秒 } } } ``` ## 公共模版 ```bash # 官方的如果出现更新错误,可以配置增加代理的模版链接 https://git.918178.xyz/https://github.com/qd-today/templates ```  **相关教程:** [各种网站服务自动登录签到,从此彻底解放双手qd/today](https://www.bilibili.com/video/BV1CC4y1v7Zn) [【QD-Today】自建私有自动签到服务](https://meuicat.com/blog/60/index.html)
造物者W
2024年8月13日 20:32
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码