Skip to content

部署指南

本指南将详细介绍如何部署 Web-DL-Manager


🐳 Docker 部署 (推荐)

这是最稳定的部署方式。镜像内已内置了 rclone, zstd, ffmpeg, cloudflared, gallery-dl, yt-dlp, kemono-dl, megatools 等所有必要的工具链。

1. 快速启动 (使用 SQLite)

bash
docker run -d \
  --name web-dl-manager \
  -p 5492:5492 \
  -v ./data:/data \
  -e APP_USERNAME="admin" \
  -e APP_PASSWORD="your_password" \
  ghcr.io/jyf0214/web-dl-manager:main

注意

  • 端口 5492: 部署说明与登录入口。
  • 应用程序: 核心逻辑监听 127.0.0.1:6275 (内部端口)。
  • 镜像默认以 UID 1000 运行。如果您的宿主机挂载目录权限不足,请在启动前执行 chown -R 1000:1000 ./data

2. 使用 Docker Compose (MySQL 后端)

yaml
version: '3.8'

services:
  mysql:
    image: mysql:8.0
    container_name: mysql-db
    environment:
      MYSQL_ROOT_PASSWORD: root_password
      MYSQL_DATABASE: web_dl_manager
    ports:
      - "3306:3306"
    volumes:
      - mysql_data:/var/lib/mysql
    restart: always

  web-dl:
    image: ghcr.io/jyf0214/web-dl-manager:main
    container_name: web-dl-manager
    ports:
      - "5492:5492"
    environment:
      - DATABASE_URL=mysql://root:root_password@mysql:3306/web_dl_manager
      - APP_USERNAME=admin
      - APP_PASSWORD=your_secure_password
      - DEBUG_MODE=false
      - ENABLE_STATIC_SITE=true
    depends_on:
      - mysql
    volumes:
      - ./data/downloads:/data/downloads
      - ./data/archives:/data/archives
      - ./data/status:/data/status
      - ./logs:/app/logs
    restart: always

volumes:
  mysql_data:

3. Docker Compose with Redis (高并发场景)

yaml
version: '3.8'

services:
  redis:
    image: redis:7-alpine
    container_name: redis-cache
    ports:
      - "6379:6379"
    restart: always

  web-dl:
    image: ghcr.io/jyf0214/web-dl-manager:main
    container_name: web-dl-manager
    ports:
      - "5492:5492"
    environment:
      - APP_USERNAME=admin
      - APP_PASSWORD=your_secure_password
      - REDIS_URL=redis://redis:6379
      - DEBUG_MODE=false
    depends_on:
      - redis
    volumes:
      - ./data:/data
    restart: always

⚙️ 常见部署配置

配置 1: 基础配置(本地开发)

bash
docker run -d \
  --name web-dl-manager \
  -p 5492:5492 \
  -v ./data:/data \
  -e APP_USERNAME="admin" \
  -e APP_PASSWORD="password123" \
  -e DEBUG_MODE="true" \
  ghcr.io/jyf0214/web-dl-manager:main

配置 2: 生产环境(SQLite)

bash
docker run -d \
  --name web-dl-manager \
  -p 5492:5492 \
  -v ./data:/data \
  -e APP_USERNAME="admin" \
  -e APP_PASSWORD="strong_password_here" \
  -e DEBUG_MODE="false" \
  -e PRIVATE_MODE="true" \
  ghcr.io/jyf0214/web-dl-manager:main

配置 3: 配置 Cloudflare Tunnel(公网访问)

bash
docker run -d \
  --name web-dl-manager \
  -p 5492:5492 \
  -v ./data:/data \
  -e APP_USERNAME="admin" \
  -e APP_PASSWORD="strong_password" \
  -e TUNNEL_TOKEN="eyJhIjoiXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
  ghcr.io/jyf0214/web-dl-manager:main

配置 4: 配置自动备份

bash
docker run -d \
  --name web-dl-manager \
  -p 5492:5492 \
  -v ./data:/data \
  -e APP_USERNAME="admin" \
  -e APP_PASSWORD="strong_password" \
  -e WDM_CONFIG_BACKUP_RCLONE_BASE64="W2RyaXZlXQp0eXBlID0gZHJpdmU..." \
  -e WDM_CONFIG_BACKUP_REMOTE_PATH="drive:web-dl-manager-backup" \
  ghcr.io/jyf0214/web-dl-manager:main

🛠️ 自行构建与本地部署

1. 构建 Docker 镜像

bash
docker build -t my-web-dl-manager .

2. 本地开发运行 (非容器)

  1. 安装依赖
    bash
    pip install -r app/requirements.txt
    pip install gallery-dl yt-dlp git+https://github.com/AlphaSlayer1964/kemono-dl.git megatools
  2. 运行
    bash
    python run.py

📝 部署细节说明

双应用架构

程序启动后会同时启动两个服务:

  • Port 5492 (部署页面):访问入口,展示项目的说明文档和登录界面。
  • Port 6275 (应用程序):核心业务逻辑,仅内部可访问(通过 Port 5492 代理)。

数据路径

请确保 /data 目录有足够的磁盘空间用于存储下载和压缩的文件。建议目录结构:

./data/
├── downloads/    # 下载临时文件
├── archives/     # 压缩档案
└── status/       # 任务状态

数据库选择

  • SQLite:适合小规模单机部署,无需额外配置。
  • MySQL:适合生产环境和高并发场景,需要单独部署 MySQL 服务。

内网穿透

如果您配置了 TUNNEL_TOKEN,程序会自动启动 cloudflared 进程用于 Cloudflare Tunnel 内网穿透。

权限和安全

  • 镜像以 UID 1000 运行。如果挂载目录权限不足,执行:
    bash
    chown -R 1000:1000 ./data
  • 建议使用强密码和启用 PRIVATE_MODE 以增强安全性。

📋 环境变量参考

详细的环境变量配置说明见 环境变量配置 页面。

主要变量:

变量说明默认值
APP_USERNAME初始管理员用户名Jyf0214
APP_PASSWORD初始管理员密码(空)
DATABASE_URL数据库连接字符串sqlite:////data/webdl-manager.db
DEBUG_MODE调试模式false
ENABLE_STATIC_SITE启用部署说明页面true

🔍 故障排查

问题:无法访问管理界面

  1. 检查容器是否正常运行:docker ps | grep web-dl-manager
  2. 检查端口映射:docker port web-dl-manager
  3. 检查日志:docker logs web-dl-manager

问题:数据库连接错误

  1. 确保 MySQL 服务运行(如果使用 MySQL)
  2. 检查 DATABASE_URL 格式是否正确
  3. 验证数据库用户和密码是否正确

问题:权限不足错误

bash
# 修复数据目录权限
chown -R 1000:1000 ./data
chmod -R 755 ./data

📚 更多信息

Released under the GPL-3.0 License.