From a5d37ef94d17c519c8b2e5cec2ad592865bf6418 Mon Sep 17 00:00:00 2001
From: okxlin <61420215+okxlin@users.noreply.github.com>
Date: Fri, 26 Jun 2026 01:09:25 +0800
Subject: [PATCH] Add Jellyfin LinuxServer app
---
.../jellyfin-linuxserver/10.11.11/.env.sample | 8 ++
apps/jellyfin-linuxserver/10.11.11/data.yml | 100 ++++++++++++++++++
.../10.11.11/docker-compose.yml | 24 +++++
.../10.11.11/scripts/init.sh | 16 +++
.../10.11.11/scripts/uninstall.sh | 3 +
.../10.11.11/scripts/upgrade.sh | 5 +
apps/jellyfin-linuxserver/README.md | 61 +++++++++++
apps/jellyfin-linuxserver/data.yml | 31 ++++++
apps/jellyfin-linuxserver/latest/.env.sample | 8 ++
apps/jellyfin-linuxserver/latest/data.yml | 100 ++++++++++++++++++
.../latest/docker-compose.yml | 24 +++++
.../latest/scripts/init.sh | 16 +++
.../latest/scripts/uninstall.sh | 3 +
.../latest/scripts/upgrade.sh | 5 +
apps/jellyfin-linuxserver/logo.png | Bin 0 -> 3440 bytes
15 files changed, 404 insertions(+)
create mode 100644 apps/jellyfin-linuxserver/10.11.11/.env.sample
create mode 100644 apps/jellyfin-linuxserver/10.11.11/data.yml
create mode 100644 apps/jellyfin-linuxserver/10.11.11/docker-compose.yml
create mode 100755 apps/jellyfin-linuxserver/10.11.11/scripts/init.sh
create mode 100755 apps/jellyfin-linuxserver/10.11.11/scripts/uninstall.sh
create mode 100755 apps/jellyfin-linuxserver/10.11.11/scripts/upgrade.sh
create mode 100644 apps/jellyfin-linuxserver/README.md
create mode 100644 apps/jellyfin-linuxserver/data.yml
create mode 100644 apps/jellyfin-linuxserver/latest/.env.sample
create mode 100644 apps/jellyfin-linuxserver/latest/data.yml
create mode 100644 apps/jellyfin-linuxserver/latest/docker-compose.yml
create mode 100755 apps/jellyfin-linuxserver/latest/scripts/init.sh
create mode 100755 apps/jellyfin-linuxserver/latest/scripts/uninstall.sh
create mode 100755 apps/jellyfin-linuxserver/latest/scripts/upgrade.sh
create mode 100644 apps/jellyfin-linuxserver/logo.png
diff --git a/apps/jellyfin-linuxserver/10.11.11/.env.sample b/apps/jellyfin-linuxserver/10.11.11/.env.sample
new file mode 100644
index 000000000..e73fe0be4
--- /dev/null
+++ b/apps/jellyfin-linuxserver/10.11.11/.env.sample
@@ -0,0 +1,8 @@
+CONTAINER_NAME=
+PANEL_APP_PORT_HTTP=8096
+CONFIG_PATH=./data/config
+TVSHOWS_PATH=./data/tvshows
+MOVIES_PATH=./data/movies
+TIME_ZONE=Asia/Shanghai
+PUBLISHED_SERVER_URL=
+
diff --git a/apps/jellyfin-linuxserver/10.11.11/data.yml b/apps/jellyfin-linuxserver/10.11.11/data.yml
new file mode 100644
index 000000000..4a9a53a23
--- /dev/null
+++ b/apps/jellyfin-linuxserver/10.11.11/data.yml
@@ -0,0 +1,100 @@
+additionalProperties:
+ formFields:
+ - default: 8096
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: HTTP Port
+ labelZh: HTTP 端口
+ label:
+ en: HTTP Port
+ zh: HTTP 端口
+ zh-Hant: HTTP 連接埠
+ ja: HTTP ポート
+ ko: HTTP 포트
+ ru: HTTP-порт
+ ms: Port HTTP
+ pt-br: Porta HTTP
+ required: true
+ type: number
+ rule: paramPort
+ - default: ./data/config
+ edit: true
+ envKey: CONFIG_PATH
+ labelEn: Config folder path
+ labelZh: 配置文件路径
+ label:
+ en: Config folder path
+ zh: 配置文件路径
+ zh-Hant: 設定檔資料夾路徑
+ ja: 設定フォルダーのパス
+ ko: 설정 폴더 경로
+ ru: Путь к папке конфигурации
+ ms: Laluan folder konfigurasi
+ pt-br: Caminho da pasta de configuração
+ required: true
+ type: text
+ - default: ./data/tvshows
+ edit: true
+ envKey: TVSHOWS_PATH
+ labelEn: TV shows folder path
+ labelZh: 电视剧媒体目录路径
+ label:
+ en: TV shows folder path
+ zh: 电视剧媒体目录路径
+ zh-Hant: 電視劇媒體資料夾路徑
+ ja: テレビ番組フォルダーのパス
+ ko: TV 프로그램 폴더 경로
+ ru: Путь к папке сериалов
+ ms: Laluan folder rancangan TV
+ pt-br: Caminho da pasta de series
+ required: true
+ type: text
+ - default: ./data/movies
+ edit: true
+ envKey: MOVIES_PATH
+ labelEn: Movies folder path
+ labelZh: 电影媒体目录路径
+ label:
+ en: Movies folder path
+ zh: 电影媒体目录路径
+ zh-Hant: 電影媒體資料夾路徑
+ ja: 映画フォルダーのパス
+ ko: 영화 폴더 경로
+ ru: Путь к папке фильмов
+ ms: Laluan folder filem
+ pt-br: Caminho da pasta de filmes
+ required: true
+ type: text
+ - default: Asia/Shanghai
+ edit: true
+ envKey: TIME_ZONE
+ labelEn: Time zone
+ labelZh: 时区
+ label:
+ en: Time zone
+ zh: 时区
+ zh-Hant: 時區
+ ja: タイムゾーン
+ ko: 시간대
+ ru: Часовой пояс
+ ms: Zon waktu
+ pt-br: Fuso horário
+ required: true
+ type: text
+ - default: ""
+ edit: true
+ envKey: PUBLISHED_SERVER_URL
+ labelEn: Published server URL
+ labelZh: 对外服务地址
+ label:
+ en: Published server URL
+ zh: 对外服务地址
+ zh-Hant: 對外服務位址
+ ja: 公開サーバー URL
+ ko: 공개 서버 URL
+ ru: Публичный URL сервера
+ ms: URL pelayan diterbitkan
+ pt-br: URL publica do servidor
+ required: false
+ type: text
+
diff --git a/apps/jellyfin-linuxserver/10.11.11/docker-compose.yml b/apps/jellyfin-linuxserver/10.11.11/docker-compose.yml
new file mode 100644
index 000000000..61a525e56
--- /dev/null
+++ b/apps/jellyfin-linuxserver/10.11.11/docker-compose.yml
@@ -0,0 +1,24 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ jellyfin:
+ image: "linuxserver/jellyfin:10.11.11"
+ container_name: ${CONTAINER_NAME}
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - "${PANEL_APP_PORT_HTTP}:8096"
+ volumes:
+ - "${CONFIG_PATH}:/config"
+ - "${TVSHOWS_PATH}:/data/tvshows"
+ - "${MOVIES_PATH}:/data/movies"
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=${TIME_ZONE}
+ - JELLYFIN_PublishedServerUrl=${PUBLISHED_SERVER_URL:-}
+ labels:
+ createdBy: "Apps"
+
diff --git a/apps/jellyfin-linuxserver/10.11.11/scripts/init.sh b/apps/jellyfin-linuxserver/10.11.11/scripts/init.sh
new file mode 100755
index 000000000..c57a92f8d
--- /dev/null
+++ b/apps/jellyfin-linuxserver/10.11.11/scripts/init.sh
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+paths=(
+ "${CONFIG_PATH:-./data/config}"
+ "${TVSHOWS_PATH:-./data/tvshows}"
+ "${MOVIES_PATH:-./data/movies}"
+)
+
+mkdir -p "${paths[@]}"
+for path in "${paths[@]}"; do
+ case "$path" in
+ ./*|../*) chown -R 1000:1000 "$path" 2>/dev/null || true ;;
+ esac
+done
+
diff --git a/apps/jellyfin-linuxserver/10.11.11/scripts/uninstall.sh b/apps/jellyfin-linuxserver/10.11.11/scripts/uninstall.sh
new file mode 100755
index 000000000..accdccd70
--- /dev/null
+++ b/apps/jellyfin-linuxserver/10.11.11/scripts/uninstall.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+docker-compose down --volumes
+
diff --git a/apps/jellyfin-linuxserver/10.11.11/scripts/upgrade.sh b/apps/jellyfin-linuxserver/10.11.11/scripts/upgrade.sh
new file mode 100755
index 000000000..a6eb46bac
--- /dev/null
+++ b/apps/jellyfin-linuxserver/10.11.11/scripts/upgrade.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+:
+
diff --git a/apps/jellyfin-linuxserver/README.md b/apps/jellyfin-linuxserver/README.md
new file mode 100644
index 000000000..ffc6dd327
--- /dev/null
+++ b/apps/jellyfin-linuxserver/README.md
@@ -0,0 +1,61 @@
+# Jellyfin
+
+## 产品介绍
+Jellyfin 是一个自托管媒体服务器,本应用使用 LinuxServer.io 镜像部署。
+
+## 主要功能
+- 通过浏览器和 Jellyfin 客户端管理、播放媒体库。
+- 使用 `/config` 持久化服务器配置和元数据。
+- 默认映射电视剧和电影两个媒体目录。
+
+## 访问说明
+安装完成后,通过应用表单中的 HTTP 端口访问 Web UI,并按 Jellyfin 初始化向导完成配置。
+
+## Introduction
+Jellyfin is a self-hosted media server. This app deploys the LinuxServer.io image.
+
+## Features
+- Manage and stream media libraries from browsers and Jellyfin clients.
+- Persist server settings and metadata under `/config`.
+- Map separate TV shows and movies media folders by default.
+
+## 应用简介
+Jellyfin 媒体服务器。
+
+英文说明:Media server maintained by LinuxServer.io.
+
+## 部署说明
+- 本应用使用 Docker Compose 在 1Panel 中部署。
+- 应用分类:多媒体。
+- 支持架构:amd64、arm64。
+- 可选版本:`latest`、`10.11.11`。
+
+## 端口
+| 变量 | 说明 | 默认值 | 必填 |
+| --- | --- | --- | --- |
+| PANEL_APP_PORT_HTTP | HTTP 端口 | 8096 | 是 |
+
+## 数据持久化
+| 变量 | 说明 | 默认值 | 必填 |
+| --- | --- | --- | --- |
+| CONFIG_PATH | 配置文件路径 | ./data/config | 是 |
+| TVSHOWS_PATH | 电视剧媒体目录 | ./data/tvshows | 是 |
+| MOVIES_PATH | 电影媒体目录 | ./data/movies | 是 |
+
+升级或迁移前,请在 1Panel 中备份上述数据目录。
+
+## 配置项
+| 变量 | 说明 | 默认值 | 必填 |
+| --- | --- | --- | --- |
+| TIME_ZONE | 时区 | Asia/Shanghai | 是 |
+| PUBLISHED_SERVER_URL | 自动发现返回地址 | 空 | 否 |
+
+## 使用说明
+- 默认仅开放 HTTP Web 端口;HTTPS、DLNA/发现 UDP 端口和硬件加速设备未默认映射。
+- 如需对外开放访问,请同步检查防火墙、安全组和反向代理配置。
+
+## 参考资料
+- 官网:
+- 文档:
+- 源码:
+
diff --git a/apps/jellyfin-linuxserver/data.yml b/apps/jellyfin-linuxserver/data.yml
new file mode 100644
index 000000000..7bb4a8905
--- /dev/null
+++ b/apps/jellyfin-linuxserver/data.yml
@@ -0,0 +1,31 @@
+name: Jellyfin
+tags:
+- Media
+title: Jellyfin 媒体服务器
+description: Jellyfin 媒体服务器
+additionalProperties:
+ key: jellyfin-linuxserver
+ name: Jellyfin
+ tags:
+ - Media
+ shortDescZh: Jellyfin 媒体服务器
+ shortDescEn: Media server maintained by LinuxServer.io
+ description:
+ en: Media server maintained by LinuxServer.io
+ zh: Jellyfin 媒体服务器
+ zh-Hant: Jellyfin 媒體伺服器
+ ja: LinuxServer.io が保守するメディアサーバー
+ ko: LinuxServer.io에서 유지 관리하는 미디어 서버
+ ru: Медиасервер, поддерживаемый LinuxServer.io
+ ms: Pelayan media yang diselenggara oleh LinuxServer.io
+ pt-br: Servidor de midia mantido pela LinuxServer.io
+ type: tool
+ crossVersionUpdate: true
+ limit: 0
+ website: https://jellyfin.org/
+ github: https://github.com/linuxserver/docker-jellyfin
+ document: https://docs.linuxserver.io/images/docker-jellyfin/
+ architectures:
+ - amd64
+ - arm64
+
diff --git a/apps/jellyfin-linuxserver/latest/.env.sample b/apps/jellyfin-linuxserver/latest/.env.sample
new file mode 100644
index 000000000..e73fe0be4
--- /dev/null
+++ b/apps/jellyfin-linuxserver/latest/.env.sample
@@ -0,0 +1,8 @@
+CONTAINER_NAME=
+PANEL_APP_PORT_HTTP=8096
+CONFIG_PATH=./data/config
+TVSHOWS_PATH=./data/tvshows
+MOVIES_PATH=./data/movies
+TIME_ZONE=Asia/Shanghai
+PUBLISHED_SERVER_URL=
+
diff --git a/apps/jellyfin-linuxserver/latest/data.yml b/apps/jellyfin-linuxserver/latest/data.yml
new file mode 100644
index 000000000..4a9a53a23
--- /dev/null
+++ b/apps/jellyfin-linuxserver/latest/data.yml
@@ -0,0 +1,100 @@
+additionalProperties:
+ formFields:
+ - default: 8096
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: HTTP Port
+ labelZh: HTTP 端口
+ label:
+ en: HTTP Port
+ zh: HTTP 端口
+ zh-Hant: HTTP 連接埠
+ ja: HTTP ポート
+ ko: HTTP 포트
+ ru: HTTP-порт
+ ms: Port HTTP
+ pt-br: Porta HTTP
+ required: true
+ type: number
+ rule: paramPort
+ - default: ./data/config
+ edit: true
+ envKey: CONFIG_PATH
+ labelEn: Config folder path
+ labelZh: 配置文件路径
+ label:
+ en: Config folder path
+ zh: 配置文件路径
+ zh-Hant: 設定檔資料夾路徑
+ ja: 設定フォルダーのパス
+ ko: 설정 폴더 경로
+ ru: Путь к папке конфигурации
+ ms: Laluan folder konfigurasi
+ pt-br: Caminho da pasta de configuração
+ required: true
+ type: text
+ - default: ./data/tvshows
+ edit: true
+ envKey: TVSHOWS_PATH
+ labelEn: TV shows folder path
+ labelZh: 电视剧媒体目录路径
+ label:
+ en: TV shows folder path
+ zh: 电视剧媒体目录路径
+ zh-Hant: 電視劇媒體資料夾路徑
+ ja: テレビ番組フォルダーのパス
+ ko: TV 프로그램 폴더 경로
+ ru: Путь к папке сериалов
+ ms: Laluan folder rancangan TV
+ pt-br: Caminho da pasta de series
+ required: true
+ type: text
+ - default: ./data/movies
+ edit: true
+ envKey: MOVIES_PATH
+ labelEn: Movies folder path
+ labelZh: 电影媒体目录路径
+ label:
+ en: Movies folder path
+ zh: 电影媒体目录路径
+ zh-Hant: 電影媒體資料夾路徑
+ ja: 映画フォルダーのパス
+ ko: 영화 폴더 경로
+ ru: Путь к папке фильмов
+ ms: Laluan folder filem
+ pt-br: Caminho da pasta de filmes
+ required: true
+ type: text
+ - default: Asia/Shanghai
+ edit: true
+ envKey: TIME_ZONE
+ labelEn: Time zone
+ labelZh: 时区
+ label:
+ en: Time zone
+ zh: 时区
+ zh-Hant: 時區
+ ja: タイムゾーン
+ ko: 시간대
+ ru: Часовой пояс
+ ms: Zon waktu
+ pt-br: Fuso horário
+ required: true
+ type: text
+ - default: ""
+ edit: true
+ envKey: PUBLISHED_SERVER_URL
+ labelEn: Published server URL
+ labelZh: 对外服务地址
+ label:
+ en: Published server URL
+ zh: 对外服务地址
+ zh-Hant: 對外服務位址
+ ja: 公開サーバー URL
+ ko: 공개 서버 URL
+ ru: Публичный URL сервера
+ ms: URL pelayan diterbitkan
+ pt-br: URL publica do servidor
+ required: false
+ type: text
+
diff --git a/apps/jellyfin-linuxserver/latest/docker-compose.yml b/apps/jellyfin-linuxserver/latest/docker-compose.yml
new file mode 100644
index 000000000..60428e628
--- /dev/null
+++ b/apps/jellyfin-linuxserver/latest/docker-compose.yml
@@ -0,0 +1,24 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ jellyfin:
+ image: "linuxserver/jellyfin:latest"
+ container_name: ${CONTAINER_NAME}
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - "${PANEL_APP_PORT_HTTP}:8096"
+ volumes:
+ - "${CONFIG_PATH}:/config"
+ - "${TVSHOWS_PATH}:/data/tvshows"
+ - "${MOVIES_PATH}:/data/movies"
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=${TIME_ZONE}
+ - JELLYFIN_PublishedServerUrl=${PUBLISHED_SERVER_URL:-}
+ labels:
+ createdBy: "Apps"
+
diff --git a/apps/jellyfin-linuxserver/latest/scripts/init.sh b/apps/jellyfin-linuxserver/latest/scripts/init.sh
new file mode 100755
index 000000000..c57a92f8d
--- /dev/null
+++ b/apps/jellyfin-linuxserver/latest/scripts/init.sh
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+paths=(
+ "${CONFIG_PATH:-./data/config}"
+ "${TVSHOWS_PATH:-./data/tvshows}"
+ "${MOVIES_PATH:-./data/movies}"
+)
+
+mkdir -p "${paths[@]}"
+for path in "${paths[@]}"; do
+ case "$path" in
+ ./*|../*) chown -R 1000:1000 "$path" 2>/dev/null || true ;;
+ esac
+done
+
diff --git a/apps/jellyfin-linuxserver/latest/scripts/uninstall.sh b/apps/jellyfin-linuxserver/latest/scripts/uninstall.sh
new file mode 100755
index 000000000..accdccd70
--- /dev/null
+++ b/apps/jellyfin-linuxserver/latest/scripts/uninstall.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+docker-compose down --volumes
+
diff --git a/apps/jellyfin-linuxserver/latest/scripts/upgrade.sh b/apps/jellyfin-linuxserver/latest/scripts/upgrade.sh
new file mode 100755
index 000000000..a6eb46bac
--- /dev/null
+++ b/apps/jellyfin-linuxserver/latest/scripts/upgrade.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+:
+
diff --git a/apps/jellyfin-linuxserver/logo.png b/apps/jellyfin-linuxserver/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..1cbd0c3e5dd769852f99d16e8bc331beced8b610
GIT binary patch
literal 3440
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
SGb^M30000