Skip to content

Build from Source

Kolin edited this page Jun 13, 2026 · 1 revision

Build from Source

Prerequisites

Clone the Repository

git clone https://github.com/K0lin/jellyfin-plugin-sso.git
cd jellyfin-plugin-sso

Build

cd SSO-Auth
dotnet build

The build output is placed in SSO-Auth/bin/Debug/net9.0/.

Publish (for deployment)

dotnet publish -c Release -o ./publish

Copy the following files from ./publish/ to your Jellyfin plugins directory (<jellyfin-config>/plugins/SSO-Auth/):

  • SSO-Auth.dll
  • Duende.IdentityModel.OidcClient.dll
  • Duende.IdentityModel.dll

Running a Local Jellyfin Instance for Development

The repository includes a jellyfin-dev-data/ directory for local development. To start Jellyfin locally pointing to this config:

docker run -d \
  --name jellyfin-dev \
  -p 8096:8096 \
  -v $(pwd)/jellyfin-dev-data:/config \
  -v $(pwd)/SSO-Auth/bin/Debug/net9.0:/config/plugins/SSO-Auth \
  jellyfin/jellyfin:latest

Jellyfin will be available at http://localhost:8096.

Code Quality

Before submitting a pull request:

  • Run dotnet build . and fix all warnings
  • Run Prettier on HTML/CSS/JS/Markdown files:
    npx prettier --write "**/*.{html,css,js,md}"

Building a Release Package

The project uses JPRM (Jellyfin Plugin Repository Manager) to produce release artifacts:

jprm plugin build .

This reads build.yaml and produces a versioned ZIP file and a meta.json manifest.

CI/CD

The GitHub Actions workflows handle automated builds and releases:

Workflow Trigger What it does
dotnet.yml Pull requests Builds and checks for warnings
publish.yml Release published Builds, uploads assets, updates manifest
publish-nightly.yml Push to main Builds nightly, updates the nightly release

Related Pages

Clone this wiki locally