The v0.1.0 release pipeline built the runtime image fine but failed the push to artifactapi.k8s.syd1.au.unkin.net/docker-internal with a TLS x509 unknown-authority error: buildkit did not trust artifactapi's Vault-signed cert. Stage the internal CA into the shared workspace via the almalinux9-base image (already trusts the unkin CA; same image the RPM release pipelines use to reach artifactapi over HTTPS) and point the docker-buildx plugin at it through buildkit_config. buildx copies the referenced CA into the buildkitd container at builder-create time, so the push handshake now verifies. No credentials needed: anonymous push to docker-internal is allowed for trusted clients.
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
artifactapi.k8s.syd1.au.unkin.net/docker-internal/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
- To track a newer upstream, update
UPSTREAM_REFto the desired commit SHA and merge via PR. - Cut a release:
make patch(orminor/major) tagsvX.Y.Zand pushes it, which triggers.woodpecker/docker.yamlto build and pushartifactapi.k8s.syd1.au.unkin.net/docker-internal/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).