qbtd 是一个轻量级的 qBittorrent 多客户端管理仪表盘。做了基础的安全项,建议部署在nas局域网,不要放公网上。 由ai牛马编写。为了防止有人头铁不改密钥就部署在公网上,做了防呆措施。
你还需要做的:1.改env所有密钥 2.路径换成你自己实际的路径。
解决分散管理多个 qBittorrent 客户端的痛点,提供统一的 Web 界面进行集中控制。
你需要准备一个目录,比如 /usr/qbtd
把以下内容保存为 .env 文件:
# qBittorrent Dashboard 环境配置
# ==========================================
# 🚨 生产环境安全配置 - 必须修改以下密钥值 🚨
# ==========================================
# JWT认证密钥(生产环境必须修改为32位以上随机字符串)
JWT_SECRET=dev-jwt-secret-change-in-production-min32chars-secure
JWT_REFRESH_SECRET=dev-refresh-secret-change-in-production-min32chars-secure
# 安全密钥(生产环境必须修改)
ENCRYPTION_KEY=dev-encryption-key-change-in-production
CSRF_SECRET=dev-csrf-secret-change-in-production
SESSION_SECRET=dev-session-secret-change-in-production
# ==========================================
# 基础服务配置
# ==========================================
# 服务配置
PORT=3000
HOST=0.0.0.0
NODE_ENV=production
TIMEZONE=Asia/Shanghai
# 数据库配置
DATABASE_URL=file:./data/app.db
DB_POOL_MIN=2
DB_POOL_MAX=10
DB_CONNECTION_TIMEOUT=30000
# JWT认证时间配置
JWT_ACCESS_EXPIRES_IN=15m
JWT_REFRESH_EXPIRES_IN=7d
# 网络安全配置
CORS_ORIGIN=*
CORS_METHODS=GET,POST,PUT,DELETE,PATCH
CORS_CREDENTIALS=true
RATE_LIMIT_WINDOW_MS=60000
RATE_LIMIT_MAX_REQUESTS=2000
# 动态安全配置 - 智能协议检测
# http: 强制HTTP模式
# https: 强制HTTPS模式
# auto: 智能检测(推荐) - 根据环境、端口、CORS来源自动判断
SECURITY_PROTOCOL=auto
# 强制HTTPS模式的环境变量(适用于Nginx反向代理)
# HTTPS_PROXY=true
# FORCE_HTTPS=true
# 手动覆盖特定安全设置(高级用户)
# SECURITY_CSP_ENABLED=true
# SECURITY_COOP_ENABLED=true
# SECURITY_COEP_ENABLED=true
# SECURITY_ORIGIN_AGENT_CLUSTER=true
# SECURITY_HSTS_ENABLED=true
# COOKIE_SECURE=true
# COOKIE_SAME_SITE=strict
# COOKIE_HTTP_ONLY=true
# CORS_ALLOW_LOCAL_IPS=true
# CORS_STRICT_MODE=false
# ==========================================
# 功能模块配置
# ==========================================
# 数据采集配置
COLLECTION_INTERVAL=60
COLLECTION_BATCH_SIZE=100
COLLECTION_PARALLEL_CLIENTS=5
RETENTION_DAYS=30
DATA_COMPRESSION_ENABLED=true
# 日志配置
LOG_LEVEL=info
LOG_FILE=./logs/app.log
LOG_MAX_SIZE=10MB
LOG_MAX_FILES=5
LOG_DATE_PATTERN=YYYY-MM-DD
ACCESS_LOG_ENABLED=true
# 国际化配置
DEFAULT_LANGUAGE=zh-CN
SUPPORTED_LANGUAGES=zh-CN,en-US,ja-JP,zh-TW,ko-KR
# 主题配置
DEFAULT_THEME=auto
THEME_TRANSITION_DURATION=300
# 监控配置
HEALTH_CHECK_INTERVAL=300000
HEALTH_CHECK_TIMEOUT=5000
METRICS_ENABLED=true
METRICS_PATH=/metrics
# WebSocket连接限制配置
WS_MAX_CONNECTIONS_PER_IP=30
WS_CONNECTION_WINDOW_MS=60000
WS_WARNING_THRESHOLD=20
WS_BLOCK_DURATION_MS=300000
WS_TOKEN_CHECK_INTERVAL=30000
# 开发配置
DEV_HOT_RELOAD=true
DEV_MOCK_DATA=false
DEV_DEBUG_SQL=false
DEV_CORS_ALL=true
然后使用 docker-compose:
services:
# 简化版单一容器服务 - 仅使用Node.js,无Nginx
qbtd-app:
image: dl365/qbtd2:latest
container_name: qbtd-simple
restart: unless-stopped
user: "0:0"
ports:
- "3000:3000"
volumes:
# 数据持久化目录映射 - 匹配容器内工作目录 /app/backend
- /usr/qbtd/data:/app/backend/prisma/data
- /usr/qbtd/logs:/app/backend/logs
# 挂载环境配置文件
- /usr/qbtd/.env:/app/backend/.env
Content type
Image
Digest
sha256:263705d42…
Size
113.5 MB
Last updated
about 1 year ago
docker pull dl365/qbtd2