收起左侧

使用脚本快速搭建 qbittorrent、moivepilot、jellyfin/emby/plex等服务

4
回复
1754
查看
[ 复制链接 ]

1

主题

3

回帖

0

牛值

江湖小虾

2025-2-13 19:30:50 显示全部楼层 阅读模式

使用脚本快速搭建 qbittorrent、moivepilot、jellyfin/emby/plex等服务

一、准备三个文件 .env 、docker-compose.yml 、install.sh

1、.env

DOCKER_ROOT_PATH=/vol1/1001/docker
VIDEO_ROOT_PATH=/vol1/1001/video
HOST_IP=10.0.92.3
JELLYFIN_API_KEY=23a47fc7a15c442b8634cd3de9fa7641
EMBY_API_KEY_AMILY=4a138e7210704d948dbdd6853e316d9c
EMBY_API_KEY=584800bad1c9401e9f150e073413f5fd
PLEX_CLAIM_TOKEN=claim-mULk2Lxu8m-PjUXG1z2d
ICC2022_UID=xxxxx
ICC2022_PASSKEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

DOCKER_ROOT_PATH :飞牛docker文件夹的根路径

VIDEO_ROOT_PATH :video文件夹的根路径

HOST_IP:飞牛的IP地址

ICC2022_UIDICC2022_PASSKEY :用于mp认证的pt站点的uid与密钥,v1必须,v2非必须,也可更换其他站点

2、docker-compose.yml 直接复制就好

version: '3.2'

services:

  nastool:
    container_name: nastool
    #image: nastool/nas-tools:latest
    image: hsuyelin/nas-tools:latest
    #image: registry.cn-hangzhou.aliyuncs.com/ptlj/nas-tools:latest
    volumes:
      - ${DOCKER_ROOT_PATH}/nastool/config:/config   # 冒号左边请修改为你想保存配置的路径
      - ${VIDEO_ROOT_PATH}:/video   # 媒体目录,多个目录需要分别映射进来,需要满足配置文件说明中的要求
    environment:
      - PUID=0    # 想切换为哪个用户来运行程序,该用户的uid
      - PGID=0    # 想切换为哪个用户来运行程序,该用户的gid
      - UMASK=022 # 掩码权限,默认000,可以考虑设置为022
      - NASTOOL_AUTO_UPDATE=false  # 如需在启动容器时自动升级程程序请设置为true
      - NASTOOL_CN_UPDATE=false # 如果开启了容器启动自动升级程序,并且网络不太友好时,可以设置为true,会使用国内源进行软件更新
     #- REPO_URL=https://ghproxy.com/https://github.com/NAStool/nas-tools.git  # 当你访问github网络很差时,可以考虑解释本行注释
    restart: unless-stopped
    network_mode: host
    privileged: true

  moviepilot:
    container_name: moviepilot
    #image: jxxghp/moviepilot:latest
    image: registry.cn-hangzhou.aliyuncs.com/ptlj/moviepilot:latest
    volumes:
      - ${DOCKER_ROOT_PATH}/moviepilot/main:/moviepilot #程序主目录,必选
      - ${DOCKER_ROOT_PATH}/moviepilot/config:/config #config 配置文件,必选
      - ${VIDEO_ROOT_PATH}:/video
    environment: 
      # 基础设置
      - NGINX_PORT=3000
      - PUID=0
      - PGID=0 
      - UMASK=022
      - SUPERUSER=admin   #登录账号
      - SUPERUSER_PASSWORD=password  #登录密码
      - API_TOKEN=moviepilot
      - MOVIEPILOT_AUTO_UPDATE=false   #重启更新
      # - PROXY_HOST=代理地址 # 代理地址
      - TMDB_API_DOMAIN=api.tmdb.org      
      # 下载目录设置
      - DOWNLOAD_PATH=/video/downloads   # 下载保存目录
      - DOWNLOAD_CATEGORY=false #下载二级分类开关
      - DOWNLOAD_MOVIE_PATH=/video/downloads/movie
      - DOWNLOAD_TV_PATH=/video/downloads/tv
      - DOWNLOAD_ANIME_PATH=/video/downloads/anime
      # 媒体库目录设置
      - LIBRARY_PATH=/video/link #媒体库目录
      - LIBRARY_MOVIE_NAME=movie   #电影目录名
      - LIBRARY_TV_NAME=tv    #电视剧目录名
      - LIBRARY_ANIME_NAME=anime   # 动漫目录名
      - LIBRARY_CATEGORY=true    # 媒体库自动分类功能
      # 媒体库功能设置     
      - DOWNLOAD_SUBTITLE=true  # 下载站点字幕
      - DOWNLOADER_MONITOR=true  # 下载器监控
      - TORRENT_TAG=MOVIEPILOT   #种子标签
      - SCRAP_METADATA=true   # 刮削入库的媒体文件
      - REFRESH_MEDIASERVER=true    # 入库刷新媒体库
      - TRANSFER_TYPE=link      #转移方式,支持link/copy/move/softlink  
      # CookieCloud设置
      # - COOKIECLOUD_HOST=http://xxx:8080   #CookieCloud服务器地址 必须添加
      # - COOKIECLOUD_KEY=  #cc用户KEY
      # - COOKIECLOUD_PASSWORD=  #cc端对端加密密码
      # - COOKIECLOUD_INTERVAL=180  # CookieCloud同步间隔(分钟)
      # - USER_AGENT=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.203    #CookieCloud对应的浏览器UA,可选,同步站点后可以在管理界面中修改
      #  消息通知渠道
      # - MESSAGER=slack  #消息通知渠道      
      # slack通知
      # - SLACK_OAUTH_TOKEN=xoxb-xxx #Slack Bot User OAuth Token
      # - SLACK_APP_TOKEN=xapp-xxx #Slack App-Level Token
      # - SLACK_CHANNEL=  #频道名称,默认全体
      # 下载器设置
      ##qbittorrent设置项
      - QB_HOST=http://${HOST_IP}:9000 # qbittorrent地址,http://开头
      - QB_USER=admin #qbittorrent用户名
      - QB_PASSWORD=adminadmin #qbittorrent密码
      # 媒体服务器 emby/jellyfin/plex
      - MEDIASERVER=emby   
      # - JELLYFIN_HOST=http://${HOST_IP}:8096
      # - JELLYFIN_API_KEY=${JELLYFIN_API_KEY}
      - EMBY_HOST=http://${HOST_IP}:8096
      # - EMBY_API_KEY=${EMBY_API_KEY}
      - EMBY_API_KEY=${EMBY_API_KEY_AMILY}
      - MEDIASERVER_SYNC_INTERVAL:6  # 媒体服务器同步间隔(小时)
      # 用户认证
      - AUTH_SITE=icc2022  #认证站点
      - ICC2022_UID=${ICC2022_UID} #UID 
      - ICC2022_PASSKEY=${ICC2022_PASSKEY} #passkey
      # 其他设置
      - BI**EMORY_MODE=false  #大内存模式
    # ports:
        # - 3000:3000 # web 接口
        # - 3001:3001 # overseerr 接口
    restart: unless-stopped
    network_mode: host
    hostname: moviepilot
    privileged: true

  moviepilot_v2:
    container_name: moviepilot_v2
    image: jxxghp/moviepilot-v2:latest
    stdin_open: true
    tty: true
    volumes:
      - ${DOCKER_ROOT_PATH}/moviepilot_v2/core:/moviepilot/.cache/ms-playwright #程序主目录,必选
      - ${DOCKER_ROOT_PATH}/moviepilot_v2/config:/config #config 配置文件,必选
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ${VIDEO_ROOT_PATH}:/video
    environment:
      - 'NGINX_PORT=3000'
      - 'PORT=3001'
      - 'PUID=0'
      - 'PGID=0'
      - 'UMASK=000'
      - 'TZ=Asia/Shanghai'
      # - 'AUTH_SITE=iyuu'  # v2.0.7+版本以后,可不设置,直接通过 UI 配置
      # - 'IYUU_SIGN=xxxx'
      - 'SUPERUSER=admin'  # 设置超级用户
      # - 'API_TOKEN=无需手动配置,系统会自动生成。如果需要自定义配置,必须为16位以上的复杂字符串'
    restart: unless-stopped
    network_mode: host
    hostname: moviepilot-v2
    privileged: true
    
  qb-9000:
    container_name: qb-9000
    image: linuxserver/qbittorrent:4.5.5-r0-ls287
    #image: registry.cn-hangzhou.aliyuncs.com/ptlj/qbittorrent:4.5.5-r0-ls287
    volumes:
      - ${DOCKER_ROOT_PATH}/qbittorrent/config:/config
      - ${VIDEO_ROOT_PATH}/downloads:/video/downloads
    environment:
      - PUID=0
      - PGID=0
      - TZ=Asia/Shanghai
      - WEBUI_PORT=9000
      - SavePatch=/video/downloads
      - TempPatch=/video/downloads
    # ports:
      # - 9000:9000
      # - 32156:32156
      # - 32156:32156/udp
    restart: unless-stopped
    network_mode: host
    privileged: true

  jellyfin:
    image: nyanmisaka/jellyfin:latest
    #image: registry.cn-hangzhou.aliyuncs.com/ptlj/jellyfin:latest
    container_name: jellyfin
    volumes: 
      - ${DOCKER_ROOT_PATH}/jellyfin/config:/config
      - ${DOCKER_ROOT_PATH}/jellyfin/cache:/cache
      - ${VIDEO_ROOT_PATH}:/video
    environment:
      - PUID=0
      - PGID=0
      - TZ=Asia/Shanghai
      - JELLYFIN_PublishedServerUrl=${HOST_IP}
    # ports:
      # - 8096:8096 # http访问端口
      # - 8920:8920 # https访问端口
      # - 7359:7359/udp
      # - 1900:1900/udp
    devices:
      - /dev/dri:/dev/dri
      #- /dev/nvidia0:/dev/nvidia0
      #- /dev/nvidiactl:/dev/nvidiactl
      #- /dev/nvidia-uvm:/dev/nvidia-uvm
      #- /dev/nvidia-uvm-tools:/dev/nvidia-uvm-tools
    restart: unless-stopped
    network_mode: host
    privileged: true

  emby:
    #image: lovechen/embyserver:latest
    image: amilys/embyserver:beta
    #image: registry.cn-hangzhou.aliyuncs.com/ptlj/embyserver:beta
    container_name: emby
    volumes: 
      - ${DOCKER_ROOT_PATH}/emby/config:/config
      - ${VIDEO_ROOT_PATH}:/video
    environment:
      - UID=0
      - GID=0
      - GIDLIST=0
      - TZ=Asia/Shanghai
    # ports:
      # - 8096:8096 # http访问端口
      # - 8920:8920 # https访问端口
      # - 7359:7359/udp #local network discovery
      # - 1900:1900/udp #dlna
    devices:
      - /dev/dri:/dev/dri
      #- /dev/nvidia0:/dev/nvidia0
      #- /dev/nvidiactl:/dev/nvidiactl
      #- /dev/nvidia-uvm:/dev/nvidia-uvm
      #- /dev/nvidia-uvm-tools:/dev/nvidia-uvm-tools
      #- /dev/nvidia-modeset:/dev/nvidia-modeset
    #runtime: nvidia
    restart: unless-stopped
    network_mode: host
    privileged: true  

  plex:
    image: plexinc/pms-docker:latest                  # latest 安装最新的版本
    #image: registry.cn-hangzhou.aliyuncs.com/ptlj/pms-docker:latest
    container_name: plex
    hostname: PlexServer                              # 自定义主机名称
    restart: unless-stopped
    network_mode: host
    privileged: true                           # 设置重启策略
    volumes:
      - ${DOCKER_ROOT_PATH}/plex/config:/config          # Plex 配置文件目录
      - ${DOCKER_ROOT_PATH}/plex/transcode:/transcode    # Plex 转码文件目录
      - ${DOCKER_ROOT_PATH}/plex/data:/data             # Plex 数据文件目录
      - ${VIDEO_ROOT_PATH}:/video"
   #ports:
   #  - 32400:32400/tcp                               # Plex 网页访问端口,例如要改为通过 8080 端口访问,就修改为8080:32400
   #  - 3005:3005/tcp                                 # Plex Companion
   #  - 8324:8324/tcp                                 # controlling Plex for Roku via Plex Companion
   #  - 32469:32469/tcp                               # access to the Plex DLNA Server
   #  - 32468:1900/udp                                # access to the Plex DLNA Server
   #  - 32410:32410/udp                               # current GDM network discovery
   #  - 32412:32412/udp                               # current GDM network discovery
   #  - 32413:32413/udp                               # current GDM network discovery
   #  - 32414:32414/udp                               # current GDM network discovery
    devices:                                       # Share hardware devices with FFmpeg (optional)
      - /dev/dri:/dev/dri                           # Intel QSV
     #  - "/dev/nvidia0:/dev/nvidia0"                # Nvidia CUDA
     #  - "/dev/nvidiactl:/dev/nvidiactl"
     #  - "/dev/nvidia-modeset:/dev/nvidia-modeset"
     #  - "/dev/nvidia-nvswitchctl:/dev/nvidia-nvswitchctl"
     #  - "/dev/nvidia-uvm:/dev/nvidia-uvm"
     #  - "/dev/nvidia-uvm-tools:/dev/nvidia-uvm-tools"
     #  - "/dev/video11:/dev/video11"                # Raspberry V4L2
    environment:
      TZ: Asia/Shanghai                               # 容器内部时区
      PLEX_UID: 0                                     # 在容器内创建的用户 ID(不懂勿改)
      PLEX_GID: 0                                     # 在容器内创建的用户组 ID(不懂勿改)
      PLEX_CLAIM: ${PLEX_CLAIM_TOKEN}                 # 真实服务器的声明令牌,您可以通过访问 https://www.plex.tv/claim 获取声明令牌以将您的服务器登录到您的 Plex 帐户
      #ADVERTISE_IP: hostIPAddress:32400/              # 填写外部访问的固定 IP 或域名,没有的话可以删除此行 

  chinese-sub-finder:
    container_name: chinese-sub-finder
    image: allanpk716/chinesesubfinder:latest
    #image: registry.cn-hangzhou.aliyuncs.com/ptlj/chinesesubfinder:latest
    volumes:
      - ${DOCKER_ROOT_PATH}/chinese-sub-finder/config:/config
      - ${DOCKER_ROOT_PATH}/chinese-sub-finder/cache:/app/cache
      - ${VIDEO_ROOT_PATH}:/media
    environment:
      - PUID=0
      - PGID=0
      - UMASK=022
      - TZ=Asia/Shanghai
    restart: unless-stopped
    network_mode: host
    privileged: true

3、install.sh 直接复制就行

#!/bin/sh

source ./.env

NT / nt"
NON / non"
QB / qb"
JEF / jef"
MP / mp"
MPV / mpv"
EB / eb"
PE / pe"
CSF / csf"

read -p "请输入你想安装的服务:" server

# 创建文件夹
echo "初始化文件夹"
mkdir -p $VIDEO_ROOT_PATH/downloads/movie \
&& mkdir -p $VIDEO_ROOT_PATH/downloads/tv \
&& mkdir -p $VIDEO_ROOT_PATH/downloads/anime \
&& mkdir -p $VIDEO_ROOT_PATH/link/movie \
&& mkdir -p $VIDEO_ROOT_PATH/link/tv \
&& mkdir -p $VIDEO_ROOT_PATH/link/anime 

# 安装 qbittorrent
if [[ $server =~ $QB ]]
then
    echo "安装 qbittorrent"
    mkdir -p $DOCKER_ROOT_PATH/qbittorrent \
    && curl -L https://pt-cdn.oss-cn-hangzhou.aliyuncs.com/qbittorrentbak.tgz > qbittorrentbak.tgz \
    && tar -zxvf qbittorrentbak.tgz \
    && cp -rf  qbittorrent/* $DOCKER_ROOT_PATH/qbittorrent/ \
    && docker compose up -d qb-9000
fi

# 安装 nastool
if [[ $server =~ $NT ]]
then
    echo "安装 nastool"
    mkdir -p $DOCKER_ROOT_PATH/nastool \
    && curl -L https://pt-cdn.oss-cn-hangzhou.aliyuncs.com/nastoolbak.tgz > nastoolbak.tgz \
    && tar -zxvf nastoolbak.tgz \
    && cp -rf  nastool/* $DOCKER_ROOT_PATH/nastool/ \
    && docker compose up -d nastool
fi

# 安装 nastool 非官方版本
if [[ $server =~ $NON ]]
then
    echo "安装 nastool 非官方版本"
    mkdir -p $DOCKER_ROOT_PATH/nastool \
    && curl -L https://pt-cdn.oss-cn-hangzhou.aliyuncs.com/nastoolnobak.tgz > nastoolnobak.tgz \
    && tar -zxvf nastoolnobak.tgz \
    && cp -rf  nastool/* $DOCKER_ROOT_PATH/nastool/ \
    && sed -i "s/192.168.2.100/$HOST_IP/g" `grep '192.168.2.100' -rl $DOCKER_ROOT_PATH/nastool` \
    && docker compose up -d nastool
fi

# 安装 jellyfin
if [[ $server =~ $JEF ]]
then
    echo "安装 jellyfin"
    mkdir -p $DOCKER_ROOT_PATH/jellyfin \
    && curl -L https://pt-cdn.oss-cn-hangzhou.aliyuncs.com/jellyfinbak.tgz > jellyfinbak.tgz \
    && tar -zxvf jellyfinbak.tgz \
    && cp -rf  jellyfin/* $DOCKER_ROOT_PATH/jellyfin/ \
    && docker compose up -d jellyfin
fi

# 安装 emby
if [[ $server =~ $EB ]]
then
    echo "安装 emby"
    mkdir -p $DOCKER_ROOT_PATH/emby \
    && curl -L https://pt-cdn.oss-cn-hangzhou.aliyuncs.com/embybak4.8.tgz > embybak.tgz \
    && tar -zxvf embybak.tgz \
    && cp -rf  emby/* $DOCKER_ROOT_PATH/emby/ \
    && docker compose up -d emby
fi

# 安装 plex
if [[ $server =~ $PE ]]
then
    echo "安装 plex"
    mkdir -p $DOCKER_ROOT_PATH/plex \
    && curl -L https://pt-cdn.oss-cn-hangzhou.aliyuncs.com/plexbak.tgz > plexbak.tgz \
    && tar -zxvf plexbak.tgz \
    && cp -rf  plex/* $DOCKER_ROOT_PATH/plex/ \
    && docker compose up -d plex
fi

# 安装 moivepilot
if [[ $server =~ $MP ]]
then
    echo "安装 moivepilot"
    mkdir -p $DOCKER_ROOT_PATH/moviepilot/main \
    && mkdir -p $DOCKER_ROOT_PATH/moviepilot/config \
    && docker compose up -d moviepilot
fi

# 安装 moivepilot_v2
if [[ $server =~ $MPV ]]
then
    echo "安装 moivepilot_v2"
    mkdir -p $DOCKER_ROOT_PATH/moviepilot_v2/core \
    && mkdir -p $DOCKER_ROOT_PATH/moviepilot_v2/config \
    && docker compose up -d moviepilot_v2
fi

# 安装 chinese-sub-finder
if [[ $server =~ $CSF ]]
then
    echo "安装 chinese-sub-finder"
    mkdir -p $DOCKER_ROOT_PATH/chinese-sub-finder \
    && curl -L https://pt-cdn.oss-cn-hangzhou.aliyuncs.com/chinese-sub-finder.tgz > chinese-sub-finder.tgz \
    && tar -zxvf chinese-sub-finder.tgz \
    && cp -rf  chinese-sub-finder/* $DOCKER_ROOT_PATH/chinese-sub-finder/ \
    && sed -i "s/192.168.2.100/$HOST_IP/g" `grep '192.168.2.100' -rl $DOCKER_ROOT_PATH/chinese-sub-finder` \
    && docker compose up -d chinese-sub-finder
fi

二、如何使用脚本

将步骤二的创建的三个文件上传到你的飞牛nas里,使用ssh工具连接飞牛,使用 cd命令进入文件所在的目录

#我直接把文件放到了DockerFile目录下,所以进入DockerFile目录

cd /vol1/1001/docker/DockerFile

赋予 install.sh 执行权限

 chmod  +x install.sh
    或
 chmod 755 install.sh

运行脚本

bash install.sh

Snipaste_2025-02-13_19-28-39.png

NT  / nt  : 安装 nastool
NON / non : 安装 nastool 非官方版本
QB  / qb  : 安装 qbittorrent
JEF / jef : 安装 jellyfin
MP  / mp  : 安装 moivepilot
MPV / mpv : 安装 moivepilot_v2
EB  / eb  : 安装 emby
PE  / pe  : 安装 plex
CSF / csf : 安装 chinese-sub-finder

如果需要安装 nastool、qbittorrent、jellyfin,只需要输入 bash install.sh按下回车,再输入 nt qb jef 即可等待飞牛自动拉取镜像、部署容器

收藏
送赞 1
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

5

主题

6

回帖

0

牛值

江湖小虾

2025-3-14 11:07:33 显示全部楼层
666 试试看看好用不

0

主题

2

回帖

0

牛值

江湖小虾

2025-4-1 23:42:51 显示全部楼层
插个眼以备不时之需

0

主题

2

回帖

0

牛值

江湖小虾

2025-4-8 18:24:38 显示全部楼层

root@polo-fnos:/vol1/1000/docker/DockerFile# bash install.sh
install.sh: line 5: NT: command not found
install.sh: line 7: QB: command not found
install.sh: line 9: MP: command not found
install.sh: line 11: EB: command not found
install.sh: line 119: unexpected EOF while looking for matching `"'
root@polo-fnos:/vol1/1000/docker/DockerFile#

显示以上错误

0

主题

2

回帖

0

牛值

江湖小虾

2025-5-16 13:59:42 显示全部楼层

handshake

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则