一个基于 yt-dlp 的自托管个人媒体下载管理平台,粘贴链接即可下载音视频
778
本项目纯ai生成,使用deepseek v4 flash 0731
# ============================================================
# Personal Media Downloader
# ============================================================
# 使用步骤:
# 1. 把本文件放到目标机器任意目录
# 2. 修改下方 JWT_SECRET 为强随机值:
# python -c "import secrets; print(secrets.token_urlsafe(48))"
# 3. 执行 docker compose up -d
# 4. 浏览器访问 http://服务器IP:8080 (默认账号 admin / admin,首登强制改密)
# 数据说明:
# ./data 数据库 + 临时文件 + 日志
# ./downloads 下载的媒体文件
# ============================================================
services:
# ---------- 后端服务:FastAPI + yt-dlp + ffmpeg ----------
backend:
image: liwangsheng/pmd-backend:latest
container_name: pmd-backend
# 如需本地构建(改过源码后测试),取消下一行注释
# build: ./backend
environment:
# 默认时区:中国上海
TZ: Asia/Shanghai
# !!!JWT 签名密钥:部署前必须改为强随机值!!!
# 生成:python -c "import secrets; print(secrets.token_urlsafe(48))"
JWT_SECRET: CHANGE_ME_TO_A_STRONG_RANDOM_SECRET
# 临时文件、日志等基础目录
DATA_PATH: /data
# 数据库目录(与下载文件分开存放)
DB_PATH: /data/db
# 下载完成的媒体文件根目录
DOWNLOADS_PATH: /downloads
# 后端监听端口(容器内,无需修改)
PORT: 8000
volumes:
# 数据库 + 临时文件 + 日志
- ./data:/data
# 下载的媒体文件(可单独挂载大容量目录)
- ./downloads:/downloads
# 后端端口默认不对外暴露(仅前端容器内部访问,更安全)
# 如需调试后端 API(如 /docs),取消下面注释:
# ports:
# - "8000:8000"
restart: unless-stopped
# ---------- 前端服务:Nginx 托管页面并反代 /api、/ws ----------
frontend:
image: liwangsheng/pmd-frontend:latest
container_name: pmd-frontend
# 如需本地构建(改过前端代码后测试),取消下一行注释
# build: ./frontend
environment:
# 默认时区:中国上海
TZ: Asia/Shanghai
depends_on:
- backend
ports:
# 对外访问入口:http://服务器IP:8080
- "8080:80"
restart: unless-stopped
Content type
Image
Digest
sha256:c58bb941e…
Size
20.2 MB
Last updated
about 1 month ago
docker pull liwangsheng/pmd-frontend