Merge pull request #134 from DDS-Derek/main

This commit is contained in:
jxxghp 2023-08-16 11:25:44 +08:00 committed by GitHub
commit c202c534c5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 87 additions and 72 deletions

View File

@ -54,8 +54,9 @@ RUN apt-get update \
then ln -s /usr/lib/aarch64-linux-musl/libc.so /lib/libc.musl-aarch64.so.1; \ then ln -s /usr/lib/aarch64-linux-musl/libc.so /lib/libc.musl-aarch64.so.1; \
fi \ fi \
&& cp -f /app/nginx.conf /etc/nginx/nginx.template.conf \ && cp -f /app/nginx.conf /etc/nginx/nginx.template.conf \
&& cp /app/update /usr/local/bin/mp_update \ && cp -f /app/update /usr/local/bin/mp_update \
&& chmod +x /app/start /usr/local/bin/mp_update \ && cp -f /app/entrypoint /entrypoint \
&& chmod +x /entrypoint /usr/local/bin/mp_update \
&& mkdir -p ${HOME} \ && mkdir -p ${HOME} \
&& groupadd -r moviepilot -g 911 \ && groupadd -r moviepilot -g 911 \
&& useradd -r moviepilot -g moviepilot -d ${HOME} -s /bin/bash -u 911 \ && useradd -r moviepilot -g moviepilot -d ${HOME} -s /bin/bash -u 911 \
@ -80,4 +81,4 @@ RUN apt-get update \
/var/tmp/* /var/tmp/*
EXPOSE 3000 EXPOSE 3000
VOLUME ["/config"] VOLUME ["/config"]
ENTRYPOINT [ "/app/start" ] ENTRYPOINT [ "/entrypoint" ]

102
README.md
View File

@ -46,6 +46,11 @@ docker pull jxxghp/moviepilot:latest
### 1. **基础设置** ### 1. **基础设置**
- **PUID**:运行程序用户的`uid`,默认`0`
- **PGID**:运行程序用户的`gid`,默认`0`
- **UMASK**:掩码权限,默认`000`,可以考虑设置为`022`
- **MOVIEPILOT_AUTO_UPDATE**:重启更新,`true`/`false`,默认`true`
- **MOVIEPILOT_CN_UPDATE**:重启更新是否使用国内加速,`true`/`false`,默认`false `
- **NGINX_PORT** WEB服务端口默认`3000`,可自行修改,但不能为`3001` - **NGINX_PORT** WEB服务端口默认`3000`,可自行修改,但不能为`3001`
- **SUPERUSER** 超级管理员用户名,默认`admin`,安装后使用该用户登录后台管理界面 - **SUPERUSER** 超级管理员用户名,默认`admin`,安装后使用该用户登录后台管理界面
- **SUPERUSER_PASSWORD** 超级管理员初始密码,默认`password`,建议修改为复杂密码 - **SUPERUSER_PASSWORD** 超级管理员初始密码,默认`password`,建议修改为复杂密码
@ -53,8 +58,8 @@ docker pull jxxghp/moviepilot:latest
- **PROXY_HOST** 网络代理可选访问themoviedb需要使用代理访问格式为`http(s)://ip:port` - **PROXY_HOST** 网络代理可选访问themoviedb需要使用代理访问格式为`http(s)://ip:port`
- **TMDB_API_DOMAIN** TMDB API地址默认`api.themoviedb.org`,也可配置为`api.tmdb.org`或其它中转代理服务地址,能连通即可 - **TMDB_API_DOMAIN** TMDB API地址默认`api.themoviedb.org`,也可配置为`api.tmdb.org`或其它中转代理服务地址,能连通即可
- **DOWNLOAD_PATH** 下载保存目录,**注意:需要将`moviepilot``下载器`的映射路径保持一致**,否则会导致下载文件无法转移 - **DOWNLOAD_PATH** 下载保存目录,**注意:需要将`moviepilot``下载器`的映射路径保持一致**,否则会导致下载文件无法转移
- **DOWNLOAD_MOVIE_PATH** 电影下载保存目录,**必须是DOWNLOAD_PATH的下级路径**不设置则下载到DOWNLOAD_PATH - **DOWNLOAD_MOVIE_PATH** 电影下载保存目录,**必须是`DOWNLOAD_PATH`的下级路径**,不设置则下载到`DOWNLOAD_PATH`
- **DOWNLOAD_TV_PATH** 电视剧下载保存目录,**必须是DOWNLOAD_PATH的下级路径**不设置则下载到DOWNLOAD_PATH - **DOWNLOAD_TV_PATH** 电视剧下载保存目录,**必须是`DOWNLOAD_PATH`的下级路径**,不设置则下载到`DOWNLOAD_PATH`
- **DOWNLOAD_CATEGORY** 下载二级分类开关,`true`/`false`,默认`false`,开启后会根据配置`category.yaml`自动在下载目录下建立二级目录分类 - **DOWNLOAD_CATEGORY** 下载二级分类开关,`true`/`false`,默认`false`,开启后会根据配置`category.yaml`自动在下载目录下建立二级目录分类
- **DOWNLOAD_SUBTITLE** 下载站点字幕,`true`/`false`,默认`true` - **DOWNLOAD_SUBTITLE** 下载站点字幕,`true`/`false`,默认`true`
- **REFRESH_MEDIASERVER** 入库刷新媒体库,`true`/`false`,默认`true` - **REFRESH_MEDIASERVER** 入库刷新媒体库,`true`/`false`,默认`true`
@ -70,67 +75,66 @@ docker pull jxxghp/moviepilot:latest
- **COOKIECLOUD_PASSWORD** CookieCloud端对端加密密码 - **COOKIECLOUD_PASSWORD** CookieCloud端对端加密密码
- **COOKIECLOUD_INTERVAL** CookieCloud同步间隔分钟 - **COOKIECLOUD_INTERVAL** CookieCloud同步间隔分钟
- **USER_AGENT** CookieCloud对应的浏览器UA可选设置后可增加连接站点的成功率同步站点后可以在管理界面中修改 - **USER_AGENT** CookieCloud对应的浏览器UA可选设置后可增加连接站点的成功率同步站点后可以在管理界面中修改
- **MESSAGER** 消息通知渠道,支持 `telegram`/`wechat`/`slack`,开启多个渠道时使用`,`分隔。同时还需要配置对应渠道的环境变量,非对应渠道的变量可删除,推荐使用`telegram`
- `wechat`设置项:
- **WECHAT_CORPID** WeChat企业ID
- **WECHAT_APP_SECRET** WeChat应用Secret
- **WECHAT_APP_ID** WeChat应用ID
- **WECHAT_TOKEN** WeChat消息回调的Token
- **WECHAT_ENCODING_AESKEY** WeChat消息回调的EncodingAESKey
- **WECHAT_ADMINS** WeChat管理员列表多个管理员用英文逗号分隔可选
- **WECHAT_PROXY** WeChat代理服务器后面不要加/
- `telegram`设置项:
- **TELEGRAM_TOKEN** Telegram Bot Token
- **TELEGRAM_CHAT_ID** Telegram Chat ID
- **TELEGRAM_USERS** Telegram 用户ID多个使用,分隔只有用户ID在列表中才可以使用Bot如未设置则均可以使用Bot
- **TELEGRAM_ADMINS** Telegram 管理员ID多个使用,分隔只有管理员才可以操作Bot菜单如未设置则均可以操作菜单
- `slack`设置项:
- **SLACK_OAUTH_TOKEN** Slack Bot User OAuth Token
- **SLACK_APP_TOKEN** Slack App-Level Token
- **SLACK_CHANNEL** Slack 频道名称,默认`全体`
**MESSAGER** 消息通知渠道,支持 `telegram`/`wechat`/`slack`,开启多个渠道时使用`,`分隔。同时还需要配置对应渠道的环境变量,非对应渠道的变量可删除,推荐使用`telegram` - **DOWNLOADER** 下载器,支持`qbittorrent`/`transmission`QB版本号要求>= 4.3.9TR版本号要求>= 3.0同时还需要配置对应渠道的环境变量,非对应渠道的变量可删除,推荐使用`qbittorrent`
`wechat`设置项: - `qbittorrent`设置项:
- **WECHAT_CORPID** WeChat企业ID - **QB_HOST** qbittorrent地址格式`ip:port`https需要添加`https://`前缀
- **WECHAT_APP_SECRET** WeChat应用Secret - **QB_USER** qbittorrent用户名
- **WECHAT_APP_ID** WeChat应用ID - **QB_PASSWORD** qbittorrent密码
- **WECHAT_TOKEN** WeChat消息回调的Token
- **WECHAT_ENCODING_AESKEY** WeChat消息回调的EncodingAESKey
- **WECHAT_ADMINS** WeChat管理员列表多个管理员用英文逗号分隔可选
- **WECHAT_PROXY** WeChat代理服务器后面不要加/
`telegram`设置项: - `transmission`设置项:
- **TELEGRAM_TOKEN** Telegram Bot Token - **TR_HOST** transmission地址格式`ip:port`https需要添加`https://`前缀
- **TELEGRAM_CHAT_ID** Telegram Chat ID - **TR_USER** transmission用户名
- **TELEGRAM_USERS** Telegram 用户ID多个使用,分隔只有用户ID在列表中才可以使用Bot如未设置则均可以使用Bot - **TR_PASSWORD** transmission密码
- **TELEGRAM_ADMINS** Telegram 管理员ID多个使用,分隔只有管理员才可以操作Bot菜单如未设置则均可以操作菜单
`slack`设置项: - **DOWNLOADER_MONITOR** 下载器监控,`true`/`false`,默认为`true`,开启后下载完成时才会自动整理入库
- **SLACK_OAUTH_TOKEN** Slack Bot User OAuth Token - **MEDIASERVER** 媒体服务器,支持`emby`/`jellyfin`/`plex`,同时还需要配置对应媒体服务器的环境变量,非对应媒体服务器的变量可删除,推荐使用`emby`
- **SLACK_APP_TOKEN** Slack App-Level Token
- **SLACK_CHANNEL** Slack 频道名称,默认`全体`
- `emby`设置项:
**DOWNLOADER** 下载器,支持`qbittorrent`/`transmission`QB版本号要求>= 4.3.9TR版本号要求>= 3.0,同时还需要配置对应渠道的环境变量,非对应渠道的变量可删除,推荐使用`qbittorrent` - **EMBY_HOST** Emby服务器地址格式`ip:port`https需要添加`https://`前缀
**DOWNLOADER_MONITOR** 下载器监控,`true`/`false`,默认为`true`,开启后下载完成时才会自动整理入库 - **EMBY_API_KEY** Emby Api Key`设置->高级->API密钥`处生成
`qbittorrent`设置项: - `jellyfin`设置项:
- **QB_HOST** qbittorrent地址格式`ip:port`https需要添加`https://`前缀 - **JELLYFIN_HOST** Jellyfin服务器地址格式`ip:port`https需要添加`https://`前缀
- **QB_USER** qbittorrent用户名 - **JELLYFIN_API_KEY** Jellyfin Api Key`设置->高级->API密钥`处生成
- **QB_PASSWORD** qbittorrent密码
`transmission`设置项: - `plex`设置项:
- **TR_HOST** transmission地址格式`ip:port`https需要添加`https://`前缀 - **PLEX_HOST** Plex服务器地址格式`ip:port`https需要添加`https://`前缀
- **TR_USER** transmission用户名 - **PLEX_TOKEN** Plex网页Url中的`X-Plex-Token`通过浏览器F12->网络从请求URL中获取
- **TR_PASSWORD** transmission密码
**MEDIASERVER** 媒体服务器,支持`emby`/`jellyfin`/`plex`,同时还需要配置对应媒体服务器的环境变量,非对应媒体服务器的变量可删除,推荐使用`emby` - **MEDIASERVER_SYNC_INTERVAL:** 媒体服务器同步间隔(小时),默认`6`,留空则不同步
**MEDIASERVER_SYNC_INTERVAL:** 媒体服务器同步间隔(小时),默认`6`,留空则不同步
`emby`设置项:
- **EMBY_HOST** Emby服务器地址格式`ip:port`https需要添加`https://`前缀
- **EMBY_API_KEY** Emby Api Key`设置->高级->API密钥`处生成
`jellyfin`设置项:
- **JELLYFIN_HOST** Jellyfin服务器地址格式`ip:port`https需要添加`https://`前缀
- **JELLYFIN_API_KEY** Jellyfin Api Key`设置->高级->API密钥`处生成
`plex`设置项:
- **PLEX_HOST** Plex服务器地址格式`ip:port`https需要添加`https://`前缀
- **PLEX_TOKEN** Plex网页Url中的`X-Plex-Token`通过浏览器F12->网络从请求URL中获取
### 2. **用户认证** ### 2. **用户认证**
@ -140,7 +144,7 @@ docker pull jxxghp/moviepilot:latest
`MoviePilot`需要认证后才能使用,配置`AUTH_SITE`后,需要根据下表配置对应站点的认证参数。 `MoviePilot`需要认证后才能使用,配置`AUTH_SITE`后,需要根据下表配置对应站点的认证参数。
| 站点 | 参数 | | 站点 | 参数 |
|----|-------------------------------------------------------| |:--:|:-----------------------------------------------------:|
| iyuu | `IYUU_SIGN`IYUU登录令牌 | | iyuu | `IYUU_SIGN`IYUU登录令牌 |
| hhclub | `HHCLUB_USERNAME`:用户名<br/>`HHCLUB_PASSKEY`:密钥 | | hhclub | `HHCLUB_USERNAME`:用户名<br/>`HHCLUB_PASSKEY`:密钥 |
| audiences | `AUDIENCES_UID`用户ID<br/>`AUDIENCES_PASSKEY`:密钥 | | audiences | `AUDIENCES_UID`用户ID<br/>`AUDIENCES_PASSKEY`:密钥 |

View File

50
update
View File

@ -9,28 +9,38 @@ else
fi fi
old_version=$(cat /app/version.py) old_version=$(cat /app/version.py)
new_version=$(curl -sL "${GITHUBUSERCONTENT_URL}/jxxghp/MoviePilot/main/version.py") if [[ "${old_version}" == *APP_VERSION* ]]; then
release_version=v$(echo ${new_version} | sed -ne "s/APP_VERSION\s=\s'v\(.*\)'/\1/gp") current_version=v$(echo ${old_version} | sed -ne "s/APP_VERSION\s=\s'v\(.*\)'/\1/gp")
echo "当前版本号:${current_version}"
if [ "${old_version}" != "${new_version}" ]; then new_version=$(curl -sL "${GITHUBUSERCONTENT_URL}/jxxghp/MoviePilot/main/version.py")
echo "发现新版本,开始更新程序..." if [[ "${new_version}" == *APP_VERSION* ]]; then
curl -sL "${GITHUB_URL}/jxxghp/MoviePilot/archive/refs/tags/${release_version}.zip" | busybox unzip -d /tmp - release_version=v$(echo ${new_version} | sed -ne "s/APP_VERSION\s=\s'v\(.*\)'/\1/gp")
if [ $? -eq 0 ]; then echo "最新版本号:${release_version}"
echo "后端下载成功" if [ "${old_version}" != "${new_version}" ]; then
curl -sL "${GITHUB_URL}/jxxghp/MoviePilot-Frontend/releases/download/${release_version}/dist.zip" | busybox unzip -d /tmp - echo "发现新版本,开始更新程序..."
if [ $? -eq 0 ]; then curl -sL "${GITHUB_URL}/jxxghp/MoviePilot/archive/refs/tags/${release_version}.zip" | busybox unzip -d /tmp -
echo "前端下载成功" if [ $? -eq 0 ]; then
rm -rf /app echo "后端下载成功"
mv /tmp/MoviePilot* /app curl -sL "${GITHUB_URL}/jxxghp/MoviePilot-Frontend/releases/download/${release_version}/dist.zip" | busybox unzip -d /tmp -
rm -rf /public if [ $? -eq 0 ]; then
mv /tmp/dist /public echo "前端下载成功"
echo "程序更新成功" rm -rf /app
mv /tmp/MoviePilot* /app
rm -rf /public
mv /tmp/dist /public
echo "程序更新成功"
else
echo "前端下载失败,继续使用旧的程序来启动..."
fi
else
echo "后端下载失败,继续使用旧的程序来启动..."
fi
else else
echo "前端下载失败,继续使用旧的程序来启动..." echo "未发现新版本,跳过更新步骤"
fi fi
else else
echo "后端下载失败,继续使用旧的程序来启动..." echo "最新版本号获取失败,继续使用旧的程序来启动..."
fi fi
else else
echo "未发现新版本,跳过更新步骤" echo "当前版本号获取失败,继续使用旧的程序来启动..."
fi fi