Ben Vin a0983157a0 Add jellyfin-ha container build
Build-orchestration for the jellyfin-ha Jellyfin fork: pins an upstream
commit (UPSTREAM_REF), publishes the .NET 10 server, and builds/pushes the
runtime image to git.unkin.net/unkin/jellyfin-ha on v* tags.

- UPSTREAM_REF pinned to d4f9c12
- Dockerfile.runtime (vendored runtime-only image + jellyfin-web 10.11.6)
- .woodpecker/{build,docker}.yaml (publish + docker-buildx, k8s resources)
- Makefile (publish/build + patch/minor/major release tagging)
2026-07-05 22:48:15 +10:00
2026-07-05 22:48:15 +10:00
2026-07-05 22:48:15 +10:00
2026-07-05 22:48:15 +10:00
2026-07-05 22:48:15 +10:00
2026-07-05 22:48:15 +10:00

jellyfin-ha (container build)

Build-orchestration repo for ZoltyMat/jellyfin-ha — a Jellyfin fork that adds distributed, Redis-backed transcoding for multi-pod Kubernetes (lease-aware cleanup, HA session takeover, optional PostgreSQL).

This repo does not vendor the fork's source. It pins an upstream commit, builds the .NET 10 server, and produces a runtime container image pushed to the Gitea registry.

What it produces

git.unkin.net/unkin/jellyfin-ha:<tag> — an mcr.microsoft.com/dotnet/aspnet:10.0 based image with ffmpeg and the prebuilt jellyfin-web client, running the published jellyfin-ha server.

Layout

File Purpose
UPSTREAM_REF Pinned upstream commit SHA. Bumping the fork = edit this + cut a release.
Dockerfile.runtime Runtime-only image; COPYs the CI-produced publish-output/ and the web client.
Makefile Local make publish / make build; make patch|minor|major to tag + push a release.
.woodpecker/build.yaml PR pipeline: dotnet publish + docker dry_run.
.woodpecker/docker.yaml Tag (v*) pipeline: dotnet publish + build & push to the Gitea registry.

Releasing

  1. To track a newer upstream, update UPSTREAM_REF to the desired commit SHA and merge via PR.
  2. Cut a release: make patch (or minor / major) tags vX.Y.Z and pushes it, which triggers .woodpecker/docker.yaml to build and push git.unkin.net/unkin/jellyfin-ha:vX.Y.Z + :latest.

Local build

make build            # clones pinned upstream, dotnet publish, docker build

Requires the .NET 10 SDK and Docker. make publish runs just the clone + publish into ./publish-output.

Deployment

Deployed to Kubernetes via ArgoCD — see argocd-apps (apps/base/jellyfin, media ApplicationSet/project).

S
Description
Container build for the jellyfin-ha (HA transcoding) Jellyfin fork
Readme 62 KiB
Languages
Makefile 60.8%
Shell 39.2%