diff --git a/.github/renovate.json b/.github/renovate.json index 17542642..7c02bbf2 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -141,6 +141,18 @@ "^diygod/rsshub" ], "versioning": "regex:^(?\\d{4})-(?\\d{2})-(?\\d{2})$" + }, + { + "matchFileNames": [ + "apps/jellyfin/10.9.*/*.yml" + ], + "allowedVersions": "<10.10" + }, + { + "matchFileNames": [ + "apps/jellyfin/10.10.*/*.yml" + ], + "allowedVersions": ">=10.10" } ], "prCreation": "immediate" diff --git a/apps/jellyfin/10.9.11/data.yml b/apps/jellyfin/10.9.11/data.yml new file mode 100644 index 00000000..d709d3fd --- /dev/null +++ b/apps/jellyfin/10.9.11/data.yml @@ -0,0 +1,61 @@ +additionalProperties: + formFields: + - default: "host" + edit: true + envKey: NETWORK_MODE + labelZh: 网络模式 + labelEn: Network mode + required: true + type: select + values: + - label: 主机网络模式 + value: "host" + - label: 桥接网络模式 + value: "bridge" + - label: 无网络模式 + value: "none" + - label: 1panel-network + value: "1panel-network" + - default: "/home/jellyfin" + edit: true + envKey: JELLYFIN_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: 8096 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI 端口 + labelEn: WebUI Port + required: true + rule: paramPort + type: number + - default: "" + edit: true + envKey: HTTP_SSL_PROXY + labelZh: HTTP(s) 网络代理 + labelEn: HTTP(s) Proxy + required: false + type: text + - default: "" + edit: true + envKey: CUSTOM_MOUNT_DIRECTORY_1 + labelEn: Custom mount directory 1 + labelZh: 自定义挂载目录 1 + required: false + type: text + - default: "" + edit: true + envKey: CUSTOM_MOUNT_DIRECTORY_2 + labelEn: Custom mount directory 2 + labelZh: 自定义挂载目录 2 + required: false + type: text + - default: "" + edit: true + envKey: CUSTOM_MOUNT_DIRECTORY_3 + labelEn: Custom mount directory 3 + labelZh: 自定义挂载目录 3 + required: false + type: text diff --git a/apps/jellyfin/10.9.11/docker-compose.yml b/apps/jellyfin/10.9.11/docker-compose.yml new file mode 100644 index 00000000..607ff459 --- /dev/null +++ b/apps/jellyfin/10.9.11/docker-compose.yml @@ -0,0 +1,38 @@ +networks: + 1panel-network: + external: true + +services: + jellyfin: + image: jellyfin/jellyfin:10.9.11 + container_name: ${CONTAINER_NAME} + labels: + createdBy: "Apps" + restart: always + network_mode: ${NETWORK_MODE} + user: 0:0 + ports: + - ${PANEL_APP_PORT_HTTP}:8096 + volumes: + - ${JELLYFIN_ROOT_PATH}/config:/config + - ${JELLYFIN_ROOT_PATH}/cache:/cache + - ${JELLYFIN_ROOT_PATH}/media:/media + - ${JELLYFIN_ROOT_PATH}/config/font:/config/font + - ${JELLYFIN_ROOT_PATH}/config/dejavu:/usr/share/fonts/truetype/dejavu + - ${CUSTOM_MOUNT_DIRECTORY_1:-./default_mount_1}:${CUSTOM_MOUNT_DIRECTORY_1:-/default_mount_1} + - ${CUSTOM_MOUNT_DIRECTORY_2:-./default_mount_2}:${CUSTOM_MOUNT_DIRECTORY_2:-/default_mount_2} + - ${CUSTOM_MOUNT_DIRECTORY_3:-./default_mount_3}:${CUSTOM_MOUNT_DIRECTORY_3:-/default_mount_3} + devices: + - /dev/dri:/dev/dri + # - /dev/nvidia0:/dev/nvidia0 + # - /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 + environment: + - ROC_ENABLE_PRE_VEGA=1 + - HTTP_PROXY=${HTTP_PROXY:-} + - HTTPS_PROXY=${HTTP_PROXY:-} + - NO_PROXY=localhost,127.0.0.1,::1 diff --git a/apps/jellyfin/10.9.11/scripts/init.sh b/apps/jellyfin/10.9.11/scripts/init.sh new file mode 100644 index 00000000..c066befc --- /dev/null +++ b/apps/jellyfin/10.9.11/scripts/init.sh @@ -0,0 +1,66 @@ +#!/bin/bash + +if [[ -f .env ]]; then + source .env + + BASE_URL="https://f.lifebus.top/public/1panel/appstore/jellyfin/" + + DEJAVU_FILES=( + "DejaVuSans.ttf" + "DejaVuSans-Bold.ttf" + "DejaVuSansMono.ttf" + "DejaVuSansMono-Bold.ttf" + "DejaVuSerif.ttf" + "DejaVuSerif-Bold.ttf" + ) + + FONT_FILES=( + "NotoSansMonoCJKsc-Bold.woff2" + "NotoSansMonoCJKsc-Regular.otf" + "NotoSansCJKsc-Regular.woff" + "NotoSansMonoCJKsc-Regular.woff" + "NotoSansMonoCJKsc-Regular.woff2" + "NotoSansMonoCJKsc-Bold.otf" + "NotoSansMonoCJKsc-Bold.woff" + "NotoSansCJKsc-Medium.otf" + "NotoSansCJKsc-Regular.otf" + "NotoSansCJKsc-Thin.woff2" + "NotoSansCJKsc-Thin.woff" + "NotoSansCJKsc-Regular.woff2" + "NotoSansCJKsc-Thin.otf" + "NotoSansCJKsc-Medium.woff" + "NotoSansCJKsc-Medium.woff2" + "NotoSansCJKsc-Light.woff" + "NotoSansCJKsc-Light.woff2" + "NotoSansCJKsc-Bold.otf" + "NotoSansCJKsc-Black.otf" + "NotoSansCJKsc-Light.otf" + "NotoSansCJKsc-Bold.woff" + "NotoSansCJKsc-DemiLight.otf" + "NotoSansCJKsc-Black.woff" + "NotoSansCJKsc-DemiLight.woff" + "NotoSansCJKsc-Black.woff2" + "NotoSansCJKsc-DemiLight.woff2" + "NotoSansCJKsc-Bold.woff2" + "font.css" + ) + + if [ ! -d "$JELLYFIN_ROOT_PATH/config/font" ]; then + mkdir -p "$JELLYFIN_ROOT_PATH/config/font" + for FILE in "${FONT_FILES[@]}"; do + wget -q "${BASE_URL}font/${FILE}" -P "$JELLYFIN_ROOT_PATH/config/font/" || echo "Failed to download $FILE, continuing..." + done + fi + + if [ ! -d "$JELLYFIN_ROOT_PATH/config/dejavu" ]; then + mkdir -p "$JELLYFIN_ROOT_PATH/config/dejavu" + for FILE in "${DEJAVU_FILES[@]}"; do + wget -q "${BASE_URL}dejavu/${FILE}" -P "$JELLYFIN_ROOT_PATH/config/dejavu/" || echo "Failed to download $FILE, continuing..." + done + fi + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/jellyfin/10.9.11/scripts/uninstall.sh b/apps/jellyfin/10.9.11/scripts/uninstall.sh new file mode 100644 index 00000000..c86c4fbc --- /dev/null +++ b/apps/jellyfin/10.9.11/scripts/uninstall.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/jellyfin/10.9.11/scripts/upgrade.sh b/apps/jellyfin/10.9.11/scripts/upgrade.sh new file mode 100644 index 00000000..c066befc --- /dev/null +++ b/apps/jellyfin/10.9.11/scripts/upgrade.sh @@ -0,0 +1,66 @@ +#!/bin/bash + +if [[ -f .env ]]; then + source .env + + BASE_URL="https://f.lifebus.top/public/1panel/appstore/jellyfin/" + + DEJAVU_FILES=( + "DejaVuSans.ttf" + "DejaVuSans-Bold.ttf" + "DejaVuSansMono.ttf" + "DejaVuSansMono-Bold.ttf" + "DejaVuSerif.ttf" + "DejaVuSerif-Bold.ttf" + ) + + FONT_FILES=( + "NotoSansMonoCJKsc-Bold.woff2" + "NotoSansMonoCJKsc-Regular.otf" + "NotoSansCJKsc-Regular.woff" + "NotoSansMonoCJKsc-Regular.woff" + "NotoSansMonoCJKsc-Regular.woff2" + "NotoSansMonoCJKsc-Bold.otf" + "NotoSansMonoCJKsc-Bold.woff" + "NotoSansCJKsc-Medium.otf" + "NotoSansCJKsc-Regular.otf" + "NotoSansCJKsc-Thin.woff2" + "NotoSansCJKsc-Thin.woff" + "NotoSansCJKsc-Regular.woff2" + "NotoSansCJKsc-Thin.otf" + "NotoSansCJKsc-Medium.woff" + "NotoSansCJKsc-Medium.woff2" + "NotoSansCJKsc-Light.woff" + "NotoSansCJKsc-Light.woff2" + "NotoSansCJKsc-Bold.otf" + "NotoSansCJKsc-Black.otf" + "NotoSansCJKsc-Light.otf" + "NotoSansCJKsc-Bold.woff" + "NotoSansCJKsc-DemiLight.otf" + "NotoSansCJKsc-Black.woff" + "NotoSansCJKsc-DemiLight.woff" + "NotoSansCJKsc-Black.woff2" + "NotoSansCJKsc-DemiLight.woff2" + "NotoSansCJKsc-Bold.woff2" + "font.css" + ) + + if [ ! -d "$JELLYFIN_ROOT_PATH/config/font" ]; then + mkdir -p "$JELLYFIN_ROOT_PATH/config/font" + for FILE in "${FONT_FILES[@]}"; do + wget -q "${BASE_URL}font/${FILE}" -P "$JELLYFIN_ROOT_PATH/config/font/" || echo "Failed to download $FILE, continuing..." + done + fi + + if [ ! -d "$JELLYFIN_ROOT_PATH/config/dejavu" ]; then + mkdir -p "$JELLYFIN_ROOT_PATH/config/dejavu" + for FILE in "${DEJAVU_FILES[@]}"; do + wget -q "${BASE_URL}dejavu/${FILE}" -P "$JELLYFIN_ROOT_PATH/config/dejavu/" || echo "Failed to download $FILE, continuing..." + done + fi + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi