From d95d5ef6e768ae0c9a3261783d00ce7f7e601e7d Mon Sep 17 00:00:00 2001 From: thespad Date: Tue, 14 Jul 2026 20:26:16 +0000 Subject: [PATCH 1/2] Rebase to Resolute --- Dockerfile | 8 ++++---- Dockerfile.aarch64 | 12 +++++------- README.md | 28 +++++----------------------- readme-vars.yml | 25 ++++--------------------- 4 files changed, 18 insertions(+), 55 deletions(-) diff --git a/Dockerfile b/Dockerfile index c8596e5f..b272b2d5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -FROM ghcr.io/linuxserver/baseimage-ubuntu:noble +FROM ghcr.io/linuxserver/baseimage-ubuntu:resolute # set version label ARG BUILD_DATE @@ -19,10 +19,10 @@ ENV ATTACHED_DEVICES_PERMS="/dev/dri /dev/dvb /dev/vchiq /dev/vc-mem /dev/video1 RUN \ echo "**** install jellyfin *****" && \ curl -fSsL https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | gpg --dearmor | tee /usr/share/keyrings/jellyfin.gpg >/dev/null && \ - echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/jellyfin.gpg] https://repo.jellyfin.org/ubuntu noble main' > /etc/apt/sources.list.d/jellyfin.list && \ - echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/jellyfin.gpg] https://repo.jellyfin.org/ubuntu noble unstable' >> /etc/apt/sources.list.d/jellyfin.list && \ + echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/jellyfin.gpg] https://repo.jellyfin.org/ubuntu resolute main' > /etc/apt/sources.list.d/jellyfin.list && \ + echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/jellyfin.gpg] https://repo.jellyfin.org/ubuntu resolute unstable' >> /etc/apt/sources.list.d/jellyfin.list && \ if [ -z ${JELLYFIN_RELEASE+x} ]; then \ - JELLYFIN_RELEASE=$(curl -sX GET https://repo.jellyfin.org/ubuntu/dists/noble/unstable/binary-amd64/Packages |grep -A 7 -m 1 'Package: jellyfin-server' | awk -F ': ' '/Version/{print $2;exit}'); \ + JELLYFIN_RELEASE=$(curl -sX GET https://repo.jellyfin.org/ubuntu/dists/resolute/unstable/binary-amd64/Packages |grep -A 7 -m 1 'Package: jellyfin-server' | awk -F ': ' '/Version/{print $2;exit}'); \ fi && \ apt-get update && \ apt-get install -y --no-install-recommends \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 82975ce8..3caf4963 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-noble +FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-resolute # set version label ARG BUILD_DATE @@ -19,18 +19,16 @@ ENV ATTACHED_DEVICES_PERMS="/dev/dri /dev/dvb /dev/vchiq /dev/vc-mem /dev/video1 RUN \ echo "**** install jellyfin *****" && \ curl -s https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | gpg --dearmor | tee /usr/share/keyrings/jellyfin.gpg >/dev/null && \ - echo 'deb [arch=arm64 signed-by=/usr/share/keyrings/jellyfin.gpg] https://repo.jellyfin.org/ubuntu noble main' > /etc/apt/sources.list.d/jellyfin.list && \ - echo 'deb [arch=arm64 signed-by=/usr/share/keyrings/jellyfin.gpg] https://repo.jellyfin.org/ubuntu noble unstable' >> /etc/apt/sources.list.d/jellyfin.list && \ + echo 'deb [arch=arm64 signed-by=/usr/share/keyrings/jellyfin.gpg] https://repo.jellyfin.org/ubuntu resolute main' > /etc/apt/sources.list.d/jellyfin.list && \ + echo 'deb [arch=arm64 signed-by=/usr/share/keyrings/jellyfin.gpg] https://repo.jellyfin.org/ubuntu resolute unstable' >> /etc/apt/sources.list.d/jellyfin.list && \ if [ -z ${JELLYFIN_RELEASE+x} ]; then \ - JELLYFIN_RELEASE=$(curl -sX GET https://repo.jellyfin.org/ubuntu/dists/noble/unstable/binary-amd64/Packages |grep -A 7 -m 1 'Package: jellyfin-server' | awk -F ': ' '/Version/{print $2;exit}'); \ + JELLYFIN_RELEASE=$(curl -sX GET https://repo.jellyfin.org/ubuntu/dists/resolute/unstable/binary-amd64/Packages |grep -A 7 -m 1 'Package: jellyfin-server' | awk -F ': ' '/Version/{print $2;exit}'); \ fi && \ apt-get update && \ apt-get install -y --no-install-recommends \ at \ libjemalloc2 \ - libomxil-bellagio0 \ - libomxil-bellagio-bin \ - libraspberrypi0 \ + mesa-va-drivers \ xmlstarlet && \ apt-get install -y --no-install-recommends \ jellyfin=${JELLYFIN_RELEASE} && \ diff --git a/README.md b/README.md index a953d1ea..9bf9d089 100644 --- a/README.md +++ b/README.md @@ -79,26 +79,7 @@ To enable the OpenCL based DV, HDR10 and HLG tone-mapping, please refer to the O https://mods.linuxserver.io/?mod=jellyfin - -#### OpenMAX (Raspberry Pi) - -Hardware acceleration users for Raspberry Pi MMAL/OpenMAX will need to mount their `/dev/vcsm` and `/dev/vchiq` video devices inside of the container and their system OpenMax libs by passing the following options when running or creating the container: - -``` ---device=/dev/vcsm:/dev/vcsm ---device=/dev/vchiq:/dev/vchiq --v /opt/vc/lib:/opt/vc/lib -``` - -#### V4L2 (Raspberry Pi) - -Hardware acceleration users for Raspberry Pi V4L2 will need to mount their `/dev/video1X` devices inside of the container by passing the following options when running or creating the container: - -``` ---device=/dev/video10:/dev/video10 ---device=/dev/video11:/dev/video11 ---device=/dev/video12:/dev/video12 -``` +And follow this guide even if you are using iGPU: https://jellyfin.org/docs/general/administration/hardware-acceleration/intel/#configure-and-verify-lp-mode-on-linux ### Hardware Acceleration @@ -144,7 +125,7 @@ services: - PUID=1000 - PGID=1000 - TZ=Etc/UTC - - JELLYFIN_PublishedServerUrl=192.168.0.5 #optional + - JELLYFIN_PublishedServerUrl=http://192.168.0.5 #optional volumes: - /path/to/jellyfin/library:/config - /path/to/tvseries:/data/tvshows @@ -165,7 +146,7 @@ docker run -d \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Etc/UTC \ - -e JELLYFIN_PublishedServerUrl=192.168.0.5 `#optional` \ + -e JELLYFIN_PublishedServerUrl=http://192.168.0.5 `#optional` \ -p 8096:8096 \ -p 8920:8920 `#optional` \ -p 7359:7359/udp `#optional` \ @@ -190,7 +171,7 @@ Containers are configured using parameters passed at runtime (such as those abov | `-e PUID=1000` | for UserID - see below for explanation | | `-e PGID=1000` | for GroupID - see below for explanation | | `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). | -| `-e JELLYFIN_PublishedServerUrl=192.168.0.5` | Set the autodiscovery response domain or IP address. | +| `-e JELLYFIN_PublishedServerUrl=http://192.168.0.5` | Set the autodiscovery response domain or IP address. | | `-v /config` | Jellyfin data storage location. *This can grow very large, 50gb+ is likely for a large collection.* | | `-v /data/tvshows` | Media goes here. Add as many as needed e.g. `/data/movies`, `/data/tv`, etc. | | `-v /data/movies` | Media goes here. Add as many as needed e.g. `/data/movies`, `/data/tv`, etc. | @@ -372,6 +353,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **14.07.26:** - Rebase to Ubuntu Resolute. * **21.02.26:** - Add support for IPv6 OOTB. * **20.10.25:** - Add libjemalloc2 as runtime dep. * **06.10.24:** - Fix fontconfig cache path. diff --git a/readme-vars.yml b/readme-vars.yml index 946cf269..b8b75ac5 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -5,6 +5,7 @@ project_name: jellyfin project_url: "https://github.com/jellyfin/jellyfin" project_logo: "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jellyfin-logo.png" project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}" +project_categories: "Media Servers,Music,Audiobooks" project_blurb: "[{{ project_name|capitalize }}]({{ project_url }}) is a Free Software Media System that puts you in control of managing and streaming your media. It is an alternative to the proprietary Emby and Plex, to provide media from a dedicated server to end-user devices via multiple apps. Jellyfin is descended from Emby's 3.5.2 release and ported to the .NET Core framework to enable full cross-platform support. There are no strings attached, no premium licenses or features, and no hidden agendas: just a team who want to build something better and work together to achieve it." # supported architectures available_architectures: @@ -30,7 +31,7 @@ param_usage_include_env: true # optional container parameters opt_param_usage_include_env: true opt_param_env_vars: - - {env_var: "JELLYFIN_PublishedServerUrl", env_value: "192.168.0.5", desc: "Set the autodiscovery response domain or IP address."} + - {env_var: "JELLYFIN_PublishedServerUrl", env_value: "http://192.168.0.5", desc: "Set the autodiscovery response domain or IP address."} opt_param_usage_include_ports: true opt_param_ports: - {external_port: "8920", internal_port: "8920", port_desc: "Optional - Https webUI (you need to set up your own certificate)."} @@ -66,26 +67,7 @@ app_setup_block: | https://mods.linuxserver.io/?mod=jellyfin - - #### OpenMAX (Raspberry Pi) - - Hardware acceleration users for Raspberry Pi MMAL/OpenMAX will need to mount their `/dev/vcsm` and `/dev/vchiq` video devices inside of the container and their system OpenMax libs by passing the following options when running or creating the container: - - ``` - --device=/dev/vcsm:/dev/vcsm - --device=/dev/vchiq:/dev/vchiq - -v /opt/vc/lib:/opt/vc/lib - ``` - - #### V4L2 (Raspberry Pi) - - Hardware acceleration users for Raspberry Pi V4L2 will need to mount their `/dev/video1X` devices inside of the container by passing the following options when running or creating the container: - - ``` - --device=/dev/video10:/dev/video10 - --device=/dev/video11:/dev/video11 - --device=/dev/video12:/dev/video12 - ``` + And follow this guide even if you are using iGPU: https://jellyfin.org/docs/general/administration/hardware-acceleration/intel/#configure-and-verify-lp-mode-on-linux readme_hwaccel: true unraid_template_sync: false # init diagram @@ -131,6 +113,7 @@ init_diagram: | "jellyfin:nightly" <- Base Images # changelog changelogs: + - {date: "14.07.26:", desc: "Rebase to Ubuntu Resolute."} - {date: "21.02.26:", desc: "Add support for IPv6 OOTB."} - {date: "20.10.25:", desc: "Add libjemalloc2 as runtime dep."} - {date: "06.10.24:", desc: "Fix fontconfig cache path."} From e96892dfa572d55dabc9f46a384fe34c333aa5d6 Mon Sep 17 00:00:00 2001 From: thespad Date: Tue, 14 Jul 2026 21:21:29 +0000 Subject: [PATCH 2/2] Fix version fetch --- .github/workflows/external_trigger.yml | 2 +- Jenkinsfile | 2 +- jenkins-vars.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index 14b09fb7..aadffe8f 100644 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -29,7 +29,7 @@ jobs: echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY echo "> External trigger running off of nightly branch. To disable this trigger, add \`jellyfin_nightly\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY - EXT_RELEASE=$(curl -sX GET https://repo.jellyfin.org/ubuntu/dists/noble/unstable/binary-amd64/Packages |grep -A 7 -m 1 'Package: jellyfin-server' | awk -F ': ' '/Version/{print $2;exit}') + EXT_RELEASE=$(curl -sX GET https://repo.jellyfin.org/ubuntu/dists/resolute/unstable/binary-amd64/Packages |grep -A 7 -m 1 'Package: jellyfin-server' | awk -F ': ' '/Version/{print $2;exit}') echo "Type is \`custom_version_command\`" >> $GITHUB_STEP_SUMMARY if grep -q "^jellyfin_nightly_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY diff --git a/Jenkinsfile b/Jenkinsfile index 8713d0d9..86fbcb58 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -149,7 +149,7 @@ pipeline { steps{ script{ env.EXT_RELEASE = sh( - script: ''' curl -sX GET https://repo.jellyfin.org/ubuntu/dists/noble/unstable/binary-amd64/Packages |grep -A 7 -m 1 'Package: jellyfin-server' | awk -F ': ' '/Version/{print $2;exit}' ''', + script: ''' curl -sX GET https://repo.jellyfin.org/ubuntu/dists/resolute/unstable/binary-amd64/Packages |grep -A 7 -m 1 'Package: jellyfin-server' | awk -F ': ' '/Version/{print $2;exit}' ''', returnStdout: true).trim() env.RELEASE_LINK = 'custom_command' } diff --git a/jenkins-vars.yml b/jenkins-vars.yml index 772a90c3..13fc2ac5 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -3,7 +3,7 @@ # jenkins variables project_name: docker-jellyfin external_type: na -custom_version_command: "curl -sX GET https://repo.jellyfin.org/ubuntu/dists/noble/unstable/binary-amd64/Packages |grep -A 7 -m 1 'Package: jellyfin-server' | awk -F ': ' '/Version/{print $2;exit}'" +custom_version_command: "curl -sX GET https://repo.jellyfin.org/ubuntu/dists/resolute/unstable/binary-amd64/Packages |grep -A 7 -m 1 'Package: jellyfin-server' | awk -F ': ' '/Version/{print $2;exit}'" release_type: prerelease release_tag: nightly ls_branch: nightly