Appearance
MoviePilot 部署教程
MoviePilot 是一款功能强大的自动化影视管理工具,支持自动搜索、下载、整理和媒体库管理。本教程将指导您在 NAS 上完整部署 MoviePilot。
前置要求
硬件要求
- CPU: x86 架构,建议 4 核以上
- 内存: 最低 2GB,推荐 4GB+
- 存储:
- 系统盘:至少 10GB 可用空间
- 媒体库:根据需求准备 (建议 1TB+)
- 下载缓存:建议预留 100GB+
软件要求
- 操作系统: 支持 Docker 的任意系统
- Docker: 版本 20.10+
- Docker Compose: 版本 2.0+ (可选但推荐)
依赖服务
部署前请确保已安装以下服务:
下载器 (二选一)
- qBittorrent (推荐)
- Transmission
媒体服务器 (可选,二选一)
- Plex
- Jellyfin
- Emby
索引器
- PT 站账号 (推荐)
- 或公网 BT 索引器
部署方式一:Docker Compose(推荐)
1. 创建目录结构
bash
# 创建应用目录
mkdir -p /opt/moviepilot/{config,downloads,media}
# 进入目录
cd /opt/moviepilot目录说明:
/opt/moviepilot/
├── config/ # MoviePilot 配置文件
├── downloads/ # 下载目录
│ ├── movies/ # 电影下载
│ ├── tvshows/ # 剧集下载
│ └── anime/ # 动漫下载
└── media/ # 媒体库目录
├── movies/ # 电影库
├── tvshows/ # 剧集库
└── anime/ # 动漫库2. 创建 docker-compose.yml
yaml
version: '3'
services:
moviepilot:
image: jxxghp/moviepilot:latest
container_name: moviepilot
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- ./config:/config
- ./downloads:/downloads
- ./media:/media
environment:
- TZ=Asia/Shanghai
- PUID=1000
- PGID=1000
- UMASK=022
depends_on:
- qbittorrent
networks:
- media_net
qbittorrent:
image: linuxserver/qbittorrent:latest
container_name: qbittorrent
restart: unless-stopped
ports:
- "8080:8080"
- "6881:6881"
- "6881:6881/udp"
volumes:
- ./qbittorrent/config:/config
- ./downloads:/downloads
environment:
- TZ=Asia/Shanghai
- PUID=1000
- PGID=1000
- WEBUI_PORT=8080
networks:
- media_net
networks:
media_net:
driver: bridge3. 启动服务
bash
# 启动所有容器
docker-compose up -d
# 查看运行状态
docker-compose ps
# 查看日志
docker-compose logs -f moviepilot4. 验证部署
访问以下地址确认服务正常:
- MoviePilot: http://your-nas-ip:3000
- qBittorrent: http://your-nas-ip:8080
- 默认用户名:
admin - 默认密码:
adminadmin(首次登录会提示修改)
- 默认用户名:
部署方式二:Docker CLI
如果不想使用 Docker Compose,可以直接用 Docker 命令:
1. 启动 MoviePilot
bash
docker run -d \
--name moviepilot \
--restart unless-stopped \
-p 3000:3000 \
-v /opt/moviepilot/config:/config \
-v /opt/moviepilot/downloads:/downloads \
-v /opt/moviepilot/media:/media \
-e TZ=Asia/Shanghai \
-e PUID=1000 \
-e PGID=1000 \
-e UMASK=022 \
jxxghp/moviepilot:latest2. 启动 qBittorrent
bash
docker run -d \
--name qbittorrent \
--restart unless-stopped \
-p 8080:8080 \
-p 6881:6881 \
-p 6881:6881/udp \
-v /opt/qbittorrent/config:/config \
-v /opt/downloads:/downloads \
-e TZ=Asia/Shanghai \
-e PUID=1000 \
-e PGID=1000 \
-e WEBUI_PORT=8080 \
linuxserver/qbittorrent:latest3. 连接两个容器
bash
# 创建自定义网络
docker network create media_net
# 将容器加入同一网络
docker network connect media_net moviepilot
docker network connect media_net qbittorrent初始配置
第一步:创建管理员账户
图:首次访问时创建管理员账户
- 访问
http://your-nas-ip:3000 - 点击"注册管理员"
- 填写信息:
- 用户名:建议用英文 (如
admin) - 密码:强密码 (至少 8 位,含大小写字母和数字)
- 邮箱:用于接收通知 (可选)
- 用户名:建议用英文 (如
- 点击"注册"
第二步:配置下载器
图:添加并测试 qBittorrent 下载器连接
- 登录后进入"设置" → "下载器"
- 点击"添加下载器"
- 填写 qBittorrent 信息:
yaml
名称:qBittorrent
类型:qBittorrent
地址:http://qbittorrent:8080 # Docker 内部地址
用户名:admin
密码:your_password
启用:✓
默认:✓- 点击"测试连接",显示成功后保存
第三步:配置媒体库路径
图:配置下载目录和媒体库目录
- 进入"设置" → "目录与媒体库"
- 配置下载目录:
yaml
电影下载目录:/downloads/movies
剧集下载目录:/downloads/tvshows
动漫下载目录:/downloads/anime- 配置媒体库目录:
yaml
电影媒体库:/media/movies
剧集媒体库:/media/tvshows
动漫媒体库:/media/anime- 保存配置
第四步:配置索引器
方案 A: 使用 PT 站 (推荐)
图:配置 PT 站索引器,填入 Cookie 信息
- 进入"设置" → "索引器"
- 选择对应 PT 站模板 (如 M-Team, HDSky 等)
- 填写配置:
yaml
站点名称:M-Team
域名:https://m-team.io
Cookie: your_cookie_here # 从浏览器复制
启用:✓如何获取 Cookie:
- 浏览器登录 PT 站
- 按 F12 打开开发者工具
- 切换到 Network 标签
- 刷新页面
- 右键任意请求 → Copy → Copy as cURL
- 从 cURL 命令中提取 Cookie 部分
图:从浏览器开发者工具中获取 Cookie
方案 B: 使用公网索引器
- 进入"设置" → "索引器"
- 添加公共 BT 站点:
- The Pirate Bay
- 1337x
- RARBG 镜像站
- 无需认证,直接使用
第五步:配置媒体服务器 (可选)
连接 Plex
图:在 MoviePilot 中配置 Plex 媒体服务器
- 进入"设置" → "媒体服务器"
- 选择 Plex
- 填写配置:
yaml
Plex 服务器地址:http://your-nas-ip:32400
Plex Token: your_plex_token
启用:✓
自动刮削:✓获取 Plex Token:
bash
# 方法 1: 从浏览器获取
1. 访问 https://app.plex.tv
2. 按 F12 → Application → Local Storage
3. 找到 plex.token 字段
# 方法 2: 使用 curl 命令
curl -X POST https://plex.tv/users/sign_in.json \
-d user[login]=your_email \
-d user[password]=your_password | jq -r '.user.authToken'连接 Jellyfin
图:在 MoviePilot 中配置 Jellyfin 媒体服务器
- 进入"设置" → "媒体服务器"
- 选择 Jellyfin
- 填写配置:
yaml
Jellyfin 服务器地址:http://your-nas-ip:8096
Jellyfin API Key: your_api_key
启用:✓获取 Jellyfin API Key:
- 访问 Jellyfin 控制台
- 高级 → API Keys
- 点击"+"生成新密钥
- 复制密钥
第六步:配置通知 (可选)
微信通知
- 进入"设置" → "消息通知"
- 选择 WeChat
- 扫码绑定企业微信机器人
Telegram 通知
- 进入"设置" → "消息通知"
- 选择 Telegram
- 填写配置:
yaml
Bot Token: 从@BotFather 获取
Chat ID: 从@userinfobot 获取
启用:✓性能优化
1. 数据库优化
对于大型媒体库 (>1000 部影片),建议优化数据库:
yaml
# config/settings.yaml
database:
wal_mode: true
cache_size: 128MB2. 并发控制
根据硬件性能调整并发数:
yaml
# config/settings.yaml
search:
max_concurrent: 5 # 最大并发搜索数
download:
max_concurrent: 3 # 最大同时下载数3. 缓存配置
增加缓存提升性能:
yaml
# config/settings.yaml
cache:
search_results: 100MB
metadata: 500MB
images: 1GB故障排查
Q1: MoviePilot 无法启动
检查步骤:
bash
# 1. 查看日志
docker logs moviepilot
# 2. 检查端口占用
lsof -i :3000
# 3. 检查权限
ls -la /opt/moviepilot/config
# 4. 修复权限
chmod -R 755 /opt/moviepilot/config
chown -R 1000:1000 /opt/moviepilot/configQ2: 无法连接下载器
解决方案:
- 确认 qBittorrent 正常运行
- 检查网络连接:bash
docker exec moviepilot ping qbittorrent - 验证凭据正确
- 尝试重启 qBittorrent:bash
docker restart qbittorrent
Q3: 下载完成不转移
排查步骤:
- 检查目录权限:bash
ls -la /opt/moviepilot/downloads ls -la /opt/moviepilot/media - 确认路径配置正确
- 查看 MoviePilot 日志:bash
docker logs moviepilot | grep -i transfer - 手动触发转移测试
Q4: 刮削元数据失败
解决方法:
- 检查文件命名是否规范
- 确认 TheMovieDB 可访问
- 尝试手动刷新:
- Plex: 库 → 刷新元数据
- Jellyfin: 仪表盘 → 扫描媒体库
- 查看刮削日志
Q5: 内存占用过高
优化方案:
bash
# 限制容器内存
docker update --memory="2g" moviepilot
# 或在 docker-compose.yml 中添加
deploy:
resources:
limits:
memory: 2G备份与恢复
备份配置
bash
# 压缩备份
tar -czf moviepilot_backup_$(date +%Y%m%d).tar.gz \
/opt/moviepilot/config
# 上传到云存储 (可选)
rclone copy moviepilot_backup_*.tar.gz remote:backup/恢复配置
bash
# 停止服务
docker-compose down
# 解压备份
tar -xzf moviepilot_backup_20260312.tar.gz \
-C /opt/moviepilot/
# 重启服务
docker-compose up -d升级指南
自动升级 (推荐)
使用 Watchtower 自动更新:
yaml
# docker-compose.yml 中添加
watchtower:
image: containrrr/watchtower
container_name: watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --interval 86400 --cleanup手动升级
bash
# 1. 备份配置
docker-compose run --rm moviepilot tar -czf /config/backup.tar.gz /config
# 2. 拉取最新镜像
docker-compose pull
# 3. 重启容器
docker-compose up -d
# 4. 验证版本
curl http://nas-ip:3000/api/v1/version安全加固
1. 反向代理配置
使用 Nginx 配置 HTTPS:
nginx
server {
listen 443 ssl;
server_name moviepilot.your-domain.com;
ssl_certificate /etc/nginx/ssl/moviepilot.crt;
ssl_certificate_key /etc/nginx/ssl/moviepilot.key;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}2. 防火墙规则
bash
# 仅允许内网访问
ufw allow from 192.168.1.0/24 to any port 3000
# 或使用 iptables
iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 3000 -j ACCEPT
iptables -A INPUT -p tcp --dport 3000 -j DROP3. 定期更换密码
建议每 3 个月更换一次:
- MoviePilot 管理员密码
- qBittorrent WebUI 密码
- PT 站账号密码
总结
完成以上步骤后,您就拥有了一个完整的 MoviePilot 自动化影视管理系统!
核心功能回顾: ✅ Docker 容器化部署
✅ 自动搜索和下载
✅ 智能媒体库管理
✅ 元数据自动刮削
✅ 多平台通知推送
下一步: 阅读 MoviePilot 使用指南 学习具体使用方法!