最近开始从头搭建 MoviePilot,踩了很多的坑。本篇博客将分享我实现全自动化订阅,下载,整理,削刮的保姆级部署的方法。
部署前置条件
· 请勿将本教程在国内平台宣传。
· 我使用 Debian,如果你使用其他系统,需要对照修改。
· 我默认你已经会使用 Docker Compose 。我喜欢通过开源的自托管 PaaS 解决方案 Dokploy 来进行部署,所以本教程全部基于 Dokploy 页面来操作 Docker Compose。但不使用 Dokploy 也无伤大雅,感觉东西都大同小异。
· 你需要自己解决代理网络环境问题来快速访问 The Movie Database (TMDB)。
· MoviePilot 需要你拥有任意一个在支持列表中的 PT 站点的账号来进行认证,不然你无法使用「站点」功能。
搭建 MoviePilot
创建文件夹
我们按照这样的文件结构来创建文件夹。
/opt/media-stack
├── downloads/ # 下载器的实际下载目录
│ └── Movies/
│ └── TV/
│
├── qbittorrent/
│ └── config/ # qBittorrent 配置
│ └── qBittorrent/
│ └── BT_backup/ # 种子目录(MP 需要)
│
├── moviepilot/
│ └── config/ # MoviePilot 配置
│
├── postgres/
│ └── data/ # PostgreSQL 数据
│
├── redis/
│ └── data/ # Redis 数据
│
└── media/ # 已整理的媒体库
├── Movies/
├── TV/
├── Anime/
...sudo mkdir -p /opt/media-stack/{downloads,media,qbittorrent/config,moviepilot/config,postgres/data,redis/data}
sudo chown -R 1000:1000 /opt/media-stack设置 Docker Compose
创建 Docker Compose 配置



填入以下配置,该配置包括 Redis, PostgreSQL, MoivePilot 并额外搭配了 FlareSolverr 来绕过某些 PT 站点的 Cloudflare 认证。
services:
redis:
image: redis
container_name: redis
command: redis-server --save 600 1 --requirepass ${REDIS_PASSWORD}
volumes:
- /opt/media-stack/redis/data:/data
healthcheck:
test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD}", "ping"]
interval: 10s
timeout: 5s
retries: 5
restart: unless-stopped
networks:
- dokploy-network
postgresql:
image: postgres:16
container_name: postgresql
environment:
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
volumes:
- /opt/media-stack/postgres/data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
interval: 10s
timeout: 5s
retries: 5
restart: unless-stopped
networks:
- dokploy-network
flaresolverr:
image: flaresolverr/flaresolverr
container_name: flaresolverr
environment:
- LOG_LEVEL=info
expose:
- "8191"
restart: unless-stopped
networks:
- dokploy-network
moviepilot:
image: jxxghp/moviepilot-v2:latest
container_name: moviepilot-v2
hostname: moviepilot-v2
stdin_open: true
tty: true
expose:
- "3000"
- "3001"
environment:
- NGINX_PORT=3000
- PORT=3001
- PUID=1000
- PGID=1000
- UMASK=002
- TZ=${TZ}
# 首次登录账号
- SUPERUSER=${MP_SUPERUSER}
- SUPERUSER_PASSWORD=${MP_SUPERUSER_PASSWORD}
# 数据库:PostgreSQL
- DB_TYPE=postgresql
- DB_POSTGRESQL_HOST=postgresql
- DB_POSTGRESQL_PORT=5432
- DB_POSTGRESQL_DATABASE=${POSTGRES_DB}
- DB_POSTGRESQL_USERNAME=${POSTGRES_USER}
- DB_POSTGRESQL_PASSWORD=${POSTGRES_PASSWORD}
# 缓存:Redis
- CACHE_BACKEND_TYPE=redis
- CACHE_BACKEND_URL=redis://:${REDIS_PASSWORD}@redis:6379
volumes:
- /opt/media-stack/media:/media:rshared
- /opt/media-stack/downloads:/downloads:rshared
- /opt/media-stack/moviepilot/config:/config:rshared
- /var/run/docker.sock:/var/run/docker.sock:ro
- /opt/media-stack/qbittorrent/config/qBittorrent/BT_backup:/BT_backup
depends_on:
postgresql:
condition: service_healthy
redis:
condition: service_healthy
restart: unless-stopped
networks:
- dokploy-network
networks:
dokploy-network:
external: true添加环境变量
你需要在环境变量中添加如下变量

# Redis
REDIS_PASSWORD=你想设置的 Redis 密码
# PostgreSQL
POSTGRES_DB=moviepilot
POSTGRES_USER=moviepilot
POSTGRES_PASSWORD=你想设置的 PostgreSQL 密码
# MoviePilot 首次登录超管
MP_SUPERUSER=你想设置的 Moviepilot 用户名
MP_SUPERUSER_PASSWORD=你想设置的 Moviepilot 密码
# 时区
TZ=Asia/Shanghai配置域名
我们使用 Dokploy 统一反代,所以我们只需要把端口暴露给 Dokploy 即可。使用的端口需要和我们在 Docker Compose 配置里的暴露端口一致,如果按照我的文件来,那就是3000。


完成部署

点击 Deploy 即可部署,至此,MoviePilot Docker 基本配置就完成了,我们继续搭建下载器。
搭建 qBittorrent
下载器我选择使用 qBittorrent,依然使用 Docker Compose 部署。
设置 Docker Compose
创建 Docker Compose 配置
同理,我们将名字设置为 qBittorrent。

我随机选了个 49120 端口用于传入连接的端口,你也可以按需修改。
services:
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
- WEBUI_PORT=8080
- TORRENTING_PORT=46120
volumes:
- /opt/media-stack/qbittorrent/config:/config
- /opt/media-stack/downloads:/downloads:rshared
expose:
- "8080" # 给 Dokploy/Traefik 反代用
ports:
- "46120:46120" # 做种/下载对外
- "46120:46120/udp"
restart: unless-stopped
networks:
- dokploy-network
networks:
dokploy-network:
external: true配置域名
这里我们暴露给 Dokploy 的端口就是 8080 了,所以我们 Container Port需要修改为 8080。

完成部署
保存后同样的点击 Deploy,在日志中查找自动生成的账号密码。

总结
这系列教程的搭建部份就结束了,后面的教程我们将进行软件实际操作。
Sign up for more like this.
评论