diff --git a/README.md b/README.md
index c1016ac1..4df20479 100644
--- a/README.md
+++ b/README.md
@@ -39,7 +39,6 @@ MoviePilot需要配套下载器和媒体服务器配合使用。
docker pull jxxghp/moviepilot:latest
```
-
- Windows
下载 [MoviePilot.exe](https://github.com/jxxghp/MoviePilot/releases),双击运行后自动生成配置文件目录,访问:http://localhost:3000
@@ -58,29 +57,52 @@ MoviePilot需要配套下载器和媒体服务器配合使用。
## 配置
-项目的所有配置均通过环境变量进行设置,支持两种配置方式:
-- 在Docker环境变量部分或Windows系统环境变量中进行参数配置,如未自动显示配置项则需要手动增加对应环境变量。
-- 下载 [app.env](https://github.com/jxxghp/MoviePilot/raw/main/config/app.env) 配置文件,修改好配置后放置到配置文件映射路径根目录,配置项可根据说明自主增减。
-
配置文件映射路径:`/config`,配置项生效优先级:环境变量 > env文件 > 默认值,**部分参数如路径映射、站点认证、权限端口、时区等必须通过环境变量进行配置**。
> ❗号标识的为必填项,其它为可选项,可选项可删除配置变量从而使用默认值。
-### 1. **基础设置**
+### 1. **环境变量**
-- **❗NGINX_PORT:** WEB服务端口,默认`3000`,可自行修改,不能与API服务端口冲突(仅支持环境变量配置)
-- **❗PORT:** API服务端口,默认`3001`,可自行修改,不能与WEB服务端口冲突(仅支持环境变量配置)
-- **PUID**:运行程序用户的`uid`,默认`0`(仅支持环境变量配置)
-- **PGID**:运行程序用户的`gid`,默认`0`(仅支持环境变量配置)
-- **UMASK**:掩码权限,默认`000`,可以考虑设置为`022`(仅支持环境变量配置)
-- **PROXY_HOST:** 网络代理,访问themoviedb或者重启更新需要使用代理访问,格式为`http(s)://ip:port`、`socks5://user:pass@host:port`(仅支持环境变量配置)
-- **MOVIEPILOT_AUTO_UPDATE:** 重启时自动更新,`true`/`release`/`dev`/`false`,默认`release`,需要能正常连接Github **注意:如果出现网络问题可以配置`PROXY_HOST`**(仅支持环境变量配置)
+- **❗NGINX_PORT:** WEB服务端口,默认`3000`,可自行修改,不能与API服务端口冲突
+- **❗PORT:** API服务端口,默认`3001`,可自行修改,不能与WEB服务端口冲突
+- **PUID**:运行程序用户的`uid`,默认`0`
+- **PGID**:运行程序用户的`gid`,默认`0`
+- **UMASK**:掩码权限,默认`000`,可以考虑设置为`022`
+- **PROXY_HOST:** 网络代理,访问themoviedb或者重启更新需要使用代理访问,格式为`http(s)://ip:port`、`socks5://user:pass@host:port`
+- **MOVIEPILOT_AUTO_UPDATE:** 重启时自动更新,`true`/`release`/`dev`/`false`,默认`release`,需要能正常连接Github **注意:如果出现网络问题可以配置`PROXY_HOST`**
- **AUTO_UPDATE_RESOURCE**:启动时自动检测和更新资源包(站点索引及认证等),`true`/`false`,默认`true`,需要能正常连接Github,仅支持Docker
-- **GITHUB_TOKEN:** Github token,提高自动更新等请求Github Api的限流阈值,格式:ghp_****(仅支持环境变量配置)
----
-- **❗SUPERUSER:** 超级管理员用户名,默认`admin`,安装后使用该用户登录后台管理界面
-- **❗SUPERUSER_PASSWORD:** 超级管理员初始密码,默认`password`,建议修改为复杂密码
+- **❗AUTH_SITE:** 认证站点(认证通过后才能使用站点相关功能),支持配置多个认证站点,使用`,`分隔,如:`iyuu,hhclub`,会依次执行认证操作,直到有一个站点认证成功。
+
+ 配置`AUTH_SITE`后,需要根据下表配置对应站点的认证参数,认证资源`v1.0.2`支持`iyuu`/`hhclub`/`audiences`/`hddolby`/`zmpt`/`freefarm`/`hdfans`/`wintersakura`/`leaves`/`1ptba`/`icc2022`/`ptlsp`/`xingtan`/`ptvicomo`/`agsvpt`
+
+ | 站点 | 参数 |
+ |:------------:|:-----------------------------------------------------:|
+ | iyuu | `IYUU_SIGN`:IYUU登录令牌 |
+ | hhclub | `HHCLUB_USERNAME`:用户名
`HHCLUB_PASSKEY`:密钥 |
+ | audiences | `AUDIENCES_UID`:用户ID
`AUDIENCES_PASSKEY`:密钥 |
+ | hddolby | `HDDOLBY_ID`:用户ID
`HDDOLBY_PASSKEY`:密钥 |
+ | zmpt | `ZMPT_UID`:用户ID
`ZMPT_PASSKEY`:密钥 |
+ | freefarm | `FREEFARM_UID`:用户ID
`FREEFARM_PASSKEY`:密钥 |
+ | hdfans | `HDFANS_UID`:用户ID
`HDFANS_PASSKEY`:密钥 |
+ | wintersakura | `WINTERSAKURA_UID`:用户ID
`WINTERSAKURA_PASSKEY`:密钥 |
+ | leaves | `LEAVES_UID`:用户ID
`LEAVES_PASSKEY`:密钥 |
+ | 1ptba | `1PTBA_UID`:用户ID
`1PTBA_PASSKEY`:密钥 |
+ | icc2022 | `ICC2022_UID`:用户ID
`ICC2022_PASSKEY`:密钥 |
+ | ptlsp | `PTLSP_UID`:用户ID
`PTLSP_PASSKEY`:密钥 |
+ | xingtan | `XINGTAN_UID`:用户ID
`XINGTAN_PASSKEY`:密钥 |
+ | ptvicomo | `PTVICOMO_UID`:用户ID
`PTVICOMO_PASSKEY`:密钥 |
+ | agsvpt | `AGSVPT_UID`:用户ID
`AGSVPT_PASSKEY`:密钥 |
+
+
+### 2. **app.env配置文件**
+
+下载 [app.env 模板](https://github.com/jxxghp/MoviePilot/raw/main/config/app.env),修改后放配置文件目录下,app.env 的所有配置项也可以通过环境变量进行配置。
+
+- **❗SUPERUSER:** 超级管理员用户名,默认`admin`,安装后使用该用户登录后台管理界面,**注意:启动一次后再次修改该值不会生效,除非删除数据库文件!**
+- **❗SUPERUSER_PASSWORD:** 超级管理员初始密码,默认`password`,建议修改为复杂密码,**注意:启动一次后再次修改该值不会生效,除非删除数据库文件!**
- **❗API_TOKEN:** API密钥,默认`moviepilot`,在媒体服务器Webhook、微信回调等地址配置中需要加上`?token=`该值,建议修改为复杂字符串
+- **BIG_MEMORY_MODE:** 大内存模式,默认为`false`,开启后会增加缓存数量,占用更多的内存,但响应速度会更快
+- **GITHUB_TOKEN:** Github token,提高自动更新、插件安装等请求Github Api的限流阈值,格式:ghp_****
---
- **TMDB_API_DOMAIN:** TMDB API地址,默认`api.themoviedb.org`,也可配置为`api.tmdb.org`、`tmdb.movie-pilot.org` 或其它中转代理服务地址,能连通即可
- **TMDB_IMAGE_DOMAIN:** TMDB图片地址,默认`image.tmdb.org`,可配置为其它中转代理以加速TMDB图片显示,如:`static-mdb.v.geilijiasu.com`
@@ -186,85 +208,53 @@ MoviePilot需要配套下载器和媒体服务器配合使用。
- **PLEX_TOKEN:** Plex网页Url中的`X-Plex-Token`,通过浏览器F12->网络从请求URL中获取
- **MEDIASERVER_SYNC_INTERVAL:** 媒体服务器同步间隔(小时),默认`6`,留空则不同步
- **MEDIASERVER_SYNC_BLACKLIST:** 媒体服务器同步黑名单,多个媒体库名称使用,分割
+---
+- **MOVIE_RENAME_FORMAT:** 电影重命名格式,基于jinjia2语法
+ `MOVIE_RENAME_FORMAT`支持的配置项:
-### 2. **用户认证**
+ > `title`: 标题
+ > `original_name`: 原文件名
+ > `original_title`: 原语种标题
+ > `name`: 识别名称
+ > `year`: 年份
+ > `resourceType`:资源类型
+ > `effect`:特效
+ > `edition`: 版本(资源类型+特效)
+ > `videoFormat`: 分辨率
+ > `releaseGroup`: 制作组/字幕组
+ > `customization`: 自定义占位符
+ > `videoCodec`: 视频编码
+ > `audioCodec`: 音频编码
+ > `tmdbid`: TMDBID
+ > `imdbid`: IMDBID
+ > `part`:段/节
+ > `fileExt`:文件扩展名
+ > `tmdbid`:TMDB ID
+ > `imdbid`:IMDB ID
+ > `customization`:自定义占位符
+
+ `MOVIE_RENAME_FORMAT`默认配置格式:
+
+ ```
+ {{title}}{% if year %} ({{year}}){% endif %}/{{title}}{% if year %} ({{year}}){% endif %}{% if part %}-{{part}}{% endif %}{% if videoFormat %} - {{videoFormat}}{% endif %}{{fileExt}}
+ ```
-`MoviePilot`需要认证后才能使用,配置`AUTH_SITE`后,需要根据下表配置对应站点的认证参数(**仅能通过环境变量配置**)
-
-`AUTH_SITE`支持配置多个认证站点,使用`,`分隔,如:`iyuu,hhclub`,会依次执行认证操作,直到有一个站点认证成功。
-
-- **❗AUTH_SITE:** 认证站点,认证资源`v1.0.2`支持`iyuu`/`hhclub`/`audiences`/`hddolby`/`zmpt`/`freefarm`/`hdfans`/`wintersakura`/`leaves`/`1ptba`/`icc2022`/`ptlsp`/`xingtan`/`ptvicomo`/`agsvpt`
-
-| 站点 | 参数 |
-|:------------:|:-----------------------------------------------------:|
-| iyuu | `IYUU_SIGN`:IYUU登录令牌 |
-| hhclub | `HHCLUB_USERNAME`:用户名
`HHCLUB_PASSKEY`:密钥 |
-| audiences | `AUDIENCES_UID`:用户ID
`AUDIENCES_PASSKEY`:密钥 |
-| hddolby | `HDDOLBY_ID`:用户ID
`HDDOLBY_PASSKEY`:密钥 |
-| zmpt | `ZMPT_UID`:用户ID
`ZMPT_PASSKEY`:密钥 |
-| freefarm | `FREEFARM_UID`:用户ID
`FREEFARM_PASSKEY`:密钥 |
-| hdfans | `HDFANS_UID`:用户ID
`HDFANS_PASSKEY`:密钥 |
-| wintersakura | `WINTERSAKURA_UID`:用户ID
`WINTERSAKURA_PASSKEY`:密钥 |
-| leaves | `LEAVES_UID`:用户ID
`LEAVES_PASSKEY`:密钥 |
-| 1ptba | `1PTBA_UID`:用户ID
`1PTBA_PASSKEY`:密钥 |
-| icc2022 | `ICC2022_UID`:用户ID
`ICC2022_PASSKEY`:密钥 |
-| ptlsp | `PTLSP_UID`:用户ID
`PTLSP_PASSKEY`:密钥 |
-| xingtan | `XINGTAN_UID`:用户ID
`XINGTAN_PASSKEY`:密钥 |
-| ptvicomo | `PTVICOMO_UID`:用户ID
`PTVICOMO_PASSKEY`:密钥 |
-| agsvpt | `AGSVPT_UID`:用户ID
`AGSVPT_PASSKEY`:密钥 |
-
-
-### 2. **进阶配置**
-
-- **BIG_MEMORY_MODE:** 大内存模式,默认为`false`,开启后会增加缓存数量,占用更多的内存,但响应速度会更快
-
-- **MOVIE_RENAME_FORMAT:** 电影重命名格式
-
-`MOVIE_RENAME_FORMAT`支持的配置项:
-
-> `title`: 标题
-> `original_name`: 原文件名
-> `original_title`: 原语种标题
-> `name`: 识别名称
-> `year`: 年份
-> `resourceType`:资源类型
-> `effect`:特效
-> `edition`: 版本(资源类型+特效)
-> `videoFormat`: 分辨率
-> `releaseGroup`: 制作组/字幕组
-> `customization`: 自定义占位符
-> `videoCodec`: 视频编码
-> `audioCodec`: 音频编码
-> `tmdbid`: TMDBID
-> `imdbid`: IMDBID
-> `part`:段/节
-> `fileExt`:文件扩展名
-> `tmdbid`:TMDB ID
-> `imdbid`:IMDB ID
-> `customization`:自定义占位符
-
-`MOVIE_RENAME_FORMAT`默认配置格式:
-
-```
-{{title}}{% if year %} ({{year}}){% endif %}/{{title}}{% if year %} ({{year}}){% endif %}{% if part %}-{{part}}{% endif %}{% if videoFormat %} - {{videoFormat}}{% endif %}{{fileExt}}
-```
-
-- **TV_RENAME_FORMAT:** 电视剧重命名格式
-
-`TV_RENAME_FORMAT`额外支持的配置项:
-
-> `season`: 季号
-> `episode`: 集号
-> `season_episode`: 季集 SxxExx
-> `episode_title`: 集标题
-
-`TV_RENAME_FORMAT`默认配置格式:
-
-```
-{{title}}{% if year %} ({{year}}){% endif %}/Season {{season}}/{{title}} - {{season_episode}}{% if part %}-{{part}}{% endif %}{% if episode %} - 第 {{episode}} 集{% endif %}{{fileExt}}
-```
+- **TV_RENAME_FORMAT:** 电视剧重命名格式,基于jinjia2语法
+ `TV_RENAME_FORMAT`额外支持的配置项:
+
+ > `season`: 季号
+ > `episode`: 集号
+ > `season_episode`: 季集 SxxExx
+ > `episode_title`: 集标题
+
+ `TV_RENAME_FORMAT`默认配置格式:
+
+ ```
+ {{title}}{% if year %} ({{year}}){% endif %}/Season {{season}}/{{title}} - {{season_episode}}{% if part %}-{{part}}{% endif %}{% if episode %} - 第 {{episode}} 集{% endif %}{{fileExt}}
+ ```
+
### 3. **优先级规则**
diff --git a/config/app.env b/config/app.env
index 6616a2cb..5a12d296 100644
--- a/config/app.env
+++ b/config/app.env
@@ -3,9 +3,9 @@
#######################################################################
####################################
-# 基础设置 #
+# 系统设置 #
####################################
-# 【*】API监听地址
+# 【*】API监听地址(注意不是前端访问地址)
HOST=0.0.0.0
# 是否调试模式,打开后将输出更多日志
DEBUG=false
@@ -15,6 +15,88 @@ DEV=false
SUPERUSER=admin
# 【*】超级管理员初始密码,设置后一但重启将固化到数据库中,修改将无效
SUPERUSER_PASSWORD=password
+# 大内存模式,开启后会增加缓存数量,但会占用更多内存
+BIG_MEMORY_MODE=false
+# 自动检查和更新站点资源包(索引、认证等)
+AUTO_UPDATE_RESOURCE=true
+
+####################################
+# 消息通知渠道(按需配置) #
+####################################
+# WeChat企业ID
+WECHAT_CORPID=
+# WeChat应用Secret
+WECHAT_APP_SECRET=
+# WeChat应用ID
+WECHAT_APP_ID=
+# WeChat代理服务器,无需代理需保留默认值
+WECHAT_PROXY=https://qyapi.weixin.qq.com
+# WeChat Token
+WECHAT_TOKEN=
+# WeChat EncodingAESKey
+WECHAT_ENCODING_AESKEY=
+# WeChat 管理员
+WECHAT_ADMINS=
+# Telegram Bot Token
+TELEGRAM_TOKEN=
+# Telegram Chat ID
+TELEGRAM_CHAT_ID=
+# Telegram 用户ID,使用,分隔
+TELEGRAM_USERS=
+# Telegram 管理员ID,使用,分隔
+TELEGRAM_ADMINS=
+# Slack Bot User OAuth Token
+SLACK_OAUTH_TOKEN=
+# Slack App-Level Token
+SLACK_APP_TOKEN=
+# Slack 频道名称
+SLACK_CHANNEL=
+# SynologyChat Webhook
+SYNOLOGYCHAT_WEBHOOK=
+# SynologyChat Token
+SYNOLOGYCHAT_TOKEN=
+
+####################################
+# 下载器(按需配置) #
+####################################
+# Qbittorrent地址,IP:PORT
+QB_HOST=
+# Qbittorrent用户名
+QB_USER=
+# Qbittorrent密码
+QB_PASSWORD=
+# Qbittorrent分类自动管理
+QB_CATEGORY=false
+# Qbittorrent按顺序下载
+QB_SEQUENTIAL=true
+# Qbittorrent忽略队列限制,强制继续
+QB_FORCE_RESUME=false
+# Transmission地址,IP:PORT
+TR_HOST=
+# Transmission用户名
+TR_USER=
+# Transmission密码
+TR_PASSWORD=
+
+####################################
+# 媒体服务器(按需配置) #
+####################################
+# EMBY服务器地址,IP:PORT
+EMBY_HOST=
+# EMBY Api Key
+EMBY_API_KEY=
+# Jellyfin服务器地址,IP:PORT
+JELLYFIN_HOST=
+# Jellyfin Api Key
+JELLYFIN_API_KEY=
+# Plex服务器地址,IP:PORT
+PLEX_HOST=
+# Plex Token
+PLEX_TOKEN=
+
+####################################
+# 基础设置 #
+####################################
# 【*】API密钥,建议更换复杂字符串,有Jellyseerr/Overseerr、媒体服务器Webhook等配置以及部分支持API_TOKEN的API中使用
API_TOKEN=moviepilot
# 登录页面电影海报,tmdb/bing,tmdb要求能正常连接api.themoviedb.org
@@ -25,10 +107,18 @@ TMDB_IMAGE_DOMAIN=image.tmdb.org
TMDB_API_DOMAIN=api.themoviedb.org
# 媒体识别来源 themoviedb/douban,使用themoviedb时需要确保能正常连接api.themoviedb.org,使用douban时不支持二级分类
RECOGNIZE_SOURCE=themoviedb
-# 大内存模式,开启后会增加缓存数量,但会占用更多内存
-BIG_MEMORY_MODE=false
-# 自动检查和更新站点资源包(索引、认证等)
-AUTO_UPDATE_RESOURCE=true
+# 【*】消息通知渠道 telegram/wechat/slack,多个通知渠道用,分隔,需要在上面配置对应消息通知渠道的参数
+MESSAGER=telegram
+# 【*】下载器 qbittorrent/transmission,仅支持单个下载器,做为主下载器使用,需要在上面配置对应消下载器的参数
+DOWNLOADER=qbittorrent
+# 下载器监控开关
+DOWNLOADER_MONITOR=true
+# 【*】媒体服务器 emby/jellyfin/plex,多个媒体服务器,分割
+MEDIASERVER=emby
+# 媒体服务器同步间隔(小时)
+MEDIASERVER_SYNC_INTERVAL=6
+# 媒体服务器同步黑名单,多个媒体库名称,分割
+MEDIASERVER_SYNC_BLACKLIST=
####################################
# 媒体识别&刮削 #
@@ -41,7 +131,7 @@ SCRAP_FOLLOW_TMDB=true
SCRAP_SOURCE=themoviedb
####################################
-# 媒体库 #
+# 文件整理 & 媒体库 #
####################################
# 【*】转移方式 link/copy/move/softlink/rclone_copy/rclone_move
TRANSFER_TYPE=copy
@@ -88,69 +178,9 @@ SUBSCRIBE_SEARCH=false
# 交互搜索自动下载用户ID(消息通知渠道的用户ID),使用,分割,未设置需要用户手动选择资源或者回复`0`
AUTO_DOWNLOAD_USER=
-####################################
-# 消息通知 #
-####################################
-# 【*】消息通知渠道 telegram/wechat/slack,多个通知渠道用,分隔
-MESSAGER=telegram
-# WeChat企业ID
-WECHAT_CORPID=
-# WeChat应用Secret
-WECHAT_APP_SECRET=
-# WeChat应用ID
-WECHAT_APP_ID=
-# WeChat代理服务器,无需代理需保留默认值
-WECHAT_PROXY=https://qyapi.weixin.qq.com
-# WeChat Token
-WECHAT_TOKEN=
-# WeChat EncodingAESKey
-WECHAT_ENCODING_AESKEY=
-# WeChat 管理员
-WECHAT_ADMINS=
-# Telegram Bot Token
-TELEGRAM_TOKEN=
-# Telegram Chat ID
-TELEGRAM_CHAT_ID=
-# Telegram 用户ID,使用,分隔
-TELEGRAM_USERS=
-# Telegram 管理员ID,使用,分隔
-TELEGRAM_ADMINS=
-# Slack Bot User OAuth Token
-SLACK_OAUTH_TOKEN=
-# Slack App-Level Token
-SLACK_APP_TOKEN=
-# Slack 频道名称
-SLACK_CHANNEL=
-# SynologyChat Webhook
-SYNOLOGYCHAT_WEBHOOK=
-# SynologyChat Token
-SYNOLOGYCHAT_TOKEN=
-
####################################
# 下载 #
####################################
-# 【*】下载器 qbittorrent/transmission,仅支持单个下载器,做为主下载器使用,非主下载器只要配置了参数仍可在插件等使用
-DOWNLOADER=qbittorrent
-# 下载器监控开关
-DOWNLOADER_MONITOR=true
-# Qbittorrent地址,IP:PORT
-QB_HOST=
-# Qbittorrent用户名
-QB_USER=
-# Qbittorrent密码
-QB_PASSWORD=
-# Qbittorrent分类自动管理
-QB_CATEGORY=false
-# Qbittorrent按顺序下载
-QB_SEQUENTIAL=true
-# Qbittorrent忽略队列限制,强制继续
-QB_FORCE_RESUME=false
-# Transmission地址,IP:PORT
-TR_HOST=
-# Transmission用户名
-TR_USER=
-# Transmission密码
-TR_PASSWORD=
# 种子标签
TORRENT_TAG=MOVIEPILOT
# 【*】下载保存目录,容器内映射路径需要一致,支持不同类型设置不同的下载目录(跨盘)
@@ -163,36 +193,14 @@ DOWNLOAD_TV_PATH=
DOWNLOAD_ANIME_PATH=
# 下载目录二级分类,开启后会根据配置 [category.yaml](https://github.com/jxxghp/MoviePilot/raw/main/config/category.yaml) 自动在下载目录下建立二级目录分类
DOWNLOAD_CATEGORY=false
-# 下载站点字幕
+# 自动下载站点字幕(如有)
DOWNLOAD_SUBTITLE=true
####################################
-# 媒体服务器 #
-####################################
-# 【*】媒体服务器 emby/jellyfin/plex,多个媒体服务器,分割
-MEDIASERVER=emby
-# 媒体服务器同步间隔(小时)
-MEDIASERVER_SYNC_INTERVAL=6
-# 媒体服务器同步黑名单,多个媒体库名称,分割
-MEDIASERVER_SYNC_BLACKLIST=
-# EMBY服务器地址,IP:PORT
-EMBY_HOST=
-# EMBY Api Key
-EMBY_API_KEY=
-# Jellyfin服务器地址,IP:PORT
-JELLYFIN_HOST=
-# Jellyfin Api Key
-JELLYFIN_API_KEY=
-# Plex服务器地址,IP:PORT
-PLEX_HOST=
-# Plex Token
-PLEX_TOKEN=
-
-####################################
-# 第三方服务 #
+# 扩展 #
####################################
# OCR服务器地址
OCR_HOST=https://movie-pilot.org
# 插件市场仓库地址,多个地址使用`,`分隔,保留最后的/
-PLUGIN_MARKET=https://github.com/jxxghp/MoviePilot-Plugins/
+PLUGIN_MARKET=https://github.com/jxxghp/MoviePilot-Plugins