Skip to content

MoviePilot 部署教程

MoviePilot 是一款功能强大的自动化影视管理工具,支持自动搜索、下载、整理和媒体库管理。本教程将指导您在 NAS 上完整部署 MoviePilot。

前置要求

硬件要求

  • CPU: x86 架构,建议 4 核以上
  • 内存: 最低 2GB,推荐 4GB+
  • 存储:
    • 系统盘:至少 10GB 可用空间
    • 媒体库:根据需求准备 (建议 1TB+)
    • 下载缓存:建议预留 100GB+

软件要求

  • 操作系统: 支持 Docker 的任意系统
  • Docker: 版本 20.10+
  • Docker Compose: 版本 2.0+ (可选但推荐)

依赖服务

部署前请确保已安装以下服务:

  1. 下载器 (二选一)

    • qBittorrent (推荐)
    • Transmission
  2. 媒体服务器 (可选,二选一)

    • Plex
    • Jellyfin
    • Emby
  3. 索引器

    • 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: bridge

3. 启动服务

bash
# 启动所有容器
docker-compose up -d

# 查看运行状态
docker-compose ps

# 查看日志
docker-compose logs -f moviepilot

4. 验证部署

访问以下地址确认服务正常:

部署方式二: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:latest

2. 启动 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:latest

3. 连接两个容器

bash
# 创建自定义网络
docker network create media_net

# 将容器加入同一网络
docker network connect media_net moviepilot
docker network connect media_net qbittorrent

初始配置

第一步:创建管理员账户

图:首次访问时创建管理员账户

  1. 访问 http://your-nas-ip:3000
  2. 点击"注册管理员"
  3. 填写信息:
    • 用户名:建议用英文 (如 admin)
    • 密码:强密码 (至少 8 位,含大小写字母和数字)
    • 邮箱:用于接收通知 (可选)
  4. 点击"注册"

第二步:配置下载器

图:添加并测试 qBittorrent 下载器连接

  1. 登录后进入"设置" → "下载器"
  2. 点击"添加下载器"
  3. 填写 qBittorrent 信息:
yaml
名称:qBittorrent
类型:qBittorrent
地址:http://qbittorrent:8080  # Docker 内部地址
用户名:admin
密码:your_password
启用:✓
默认:✓
  1. 点击"测试连接",显示成功后保存

第三步:配置媒体库路径

图:配置下载目录和媒体库目录

  1. 进入"设置" → "目录与媒体库"
  2. 配置下载目录:
yaml
电影下载目录:/downloads/movies
剧集下载目录:/downloads/tvshows
动漫下载目录:/downloads/anime
  1. 配置媒体库目录:
yaml
电影媒体库:/media/movies
剧集媒体库:/media/tvshows
动漫媒体库:/media/anime
  1. 保存配置

第四步:配置索引器

方案 A: 使用 PT 站 (推荐)

图:配置 PT 站索引器,填入 Cookie 信息

  1. 进入"设置" → "索引器"
  2. 选择对应 PT 站模板 (如 M-Team, HDSky 等)
  3. 填写配置:
yaml
站点名称:M-Team
域名:https://m-team.io
Cookie: your_cookie_here  # 从浏览器复制
启用:✓

如何获取 Cookie:

  1. 浏览器登录 PT 站
  2. 按 F12 打开开发者工具
  3. 切换到 Network 标签
  4. 刷新页面
  5. 右键任意请求 → Copy → Copy as cURL
  6. 从 cURL 命令中提取 Cookie 部分

图:从浏览器开发者工具中获取 Cookie

方案 B: 使用公网索引器

  1. 进入"设置" → "索引器"
  2. 添加公共 BT 站点:
    • The Pirate Bay
    • 1337x
    • RARBG 镜像站
  3. 无需认证,直接使用

第五步:配置媒体服务器 (可选)

连接 Plex

图:在 MoviePilot 中配置 Plex 媒体服务器

  1. 进入"设置" → "媒体服务器"
  2. 选择 Plex
  3. 填写配置:
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 媒体服务器

  1. 进入"设置" → "媒体服务器"
  2. 选择 Jellyfin
  3. 填写配置:
yaml
Jellyfin 服务器地址:http://your-nas-ip:8096
Jellyfin API Key: your_api_key
启用:✓

获取 Jellyfin API Key:

  1. 访问 Jellyfin 控制台
  2. 高级 → API Keys
  3. 点击"+"生成新密钥
  4. 复制密钥

第六步:配置通知 (可选)

微信通知

  1. 进入"设置" → "消息通知"
  2. 选择 WeChat
  3. 扫码绑定企业微信机器人

Telegram 通知

  1. 进入"设置" → "消息通知"
  2. 选择 Telegram
  3. 填写配置:
yaml
Bot Token: 从@BotFather 获取
Chat ID: 从@userinfobot 获取
启用:✓

性能优化

1. 数据库优化

对于大型媒体库 (>1000 部影片),建议优化数据库:

yaml
# config/settings.yaml
database:
  wal_mode: true
  cache_size: 128MB

2. 并发控制

根据硬件性能调整并发数:

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/config

Q2: 无法连接下载器

解决方案:

  1. 确认 qBittorrent 正常运行
  2. 检查网络连接:
    bash
    docker exec moviepilot ping qbittorrent
  3. 验证凭据正确
  4. 尝试重启 qBittorrent:
    bash
    docker restart qbittorrent

Q3: 下载完成不转移

排查步骤:

  1. 检查目录权限:
    bash
    ls -la /opt/moviepilot/downloads
    ls -la /opt/moviepilot/media
  2. 确认路径配置正确
  3. 查看 MoviePilot 日志:
    bash
    docker logs moviepilot | grep -i transfer
  4. 手动触发转移测试

Q4: 刮削元数据失败

解决方法:

  1. 检查文件命名是否规范
  2. 确认 TheMovieDB 可访问
  3. 尝试手动刷新:
    • Plex: 库 → 刷新元数据
    • Jellyfin: 仪表盘 → 扫描媒体库
  4. 查看刮削日志

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 DROP

3. 定期更换密码

建议每 3 个月更换一次:

  • MoviePilot 管理员密码
  • qBittorrent WebUI 密码
  • PT 站账号密码

总结

完成以上步骤后,您就拥有了一个完整的 MoviePilot 自动化影视管理系统!

核心功能回顾: ✅ Docker 容器化部署
✅ 自动搜索和下载
✅ 智能媒体库管理
✅ 元数据自动刮削
✅ 多平台通知推送

下一步: 阅读 MoviePilot 使用指南 学习具体使用方法!