← All articles
MEDIA Self-Hosting Jellyfin: A Free, Open Source Plex Alte... 2026-02-08 · jellyfin · media-server · plex

Self-Hosting Jellyfin: A Free, Open Source Plex Alternative

Media 2026-02-08 jellyfin media-server plex streaming

If you have a collection of movies, TV shows, or music, you've probably looked at Plex. It's the dominant self-hosted media server — but it's not actually open source, and its business model increasingly pushes you toward paid features and ad-supported content you didn't ask for.

Jellyfin is the fully free, open source alternative. No accounts required, no tracking, no upsells. You install it, point it at your media library, and it just works.

Jellyfin vs. Plex: An Honest Comparison

Feature Plex Jellyfin
License Proprietary (freemium) GPLv2 (fully free)
Account required Yes (Plex account) No (local auth)
Remote access Built-in relay Manual setup (reverse proxy)
Hardware transcoding Plex Pass ($5/month or $120 lifetime) Free, built-in
Client apps Polished, all platforms Good on most, rougher on some
Music support Plexamp (excellent) Decent, improving
Live TV / DVR Yes (Plex Pass) Yes (free)
Telemetry Extensive None
Cost Free tier + paid features Completely free

When Plex is still the better choice

When Jellyfin wins

What Jellyfin Can Do

Out of the box, Jellyfin handles:

The web interface runs in your browser, and native clients exist for Android, iOS, Android TV, Fire TV, Roku, and more.

Self-Hosting Jellyfin: What You Need

Server requirements

Jellyfin's requirements depend heavily on whether you transcode media:

Docker Compose setup

services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    container_name: jellyfin
    ports:
      - "8096:8096"
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /path/to/media:/media:ro
    devices:
      - /dev/dri:/dev/dri  # Intel Quick Sync
    restart: unless-stopped
docker compose up -d

Open http://your-server:8096 and follow the setup wizard. That's it.

Enabling hardware transcoding

If you have an Intel CPU with Quick Sync:

  1. Make sure the /dev/dri device is passed through (shown in the compose file above)
  2. In Jellyfin dashboard, go to Playback → Transcoding
  3. Select Video Acceleration API (VA-API) or Intel Quick Sync (QSV)
  4. Enable the codecs your hardware supports (H.264 and HEVC at minimum)

For NVIDIA GPUs, you'll need to install the NVIDIA Container Toolkit and pass through the GPU instead of /dev/dri.

Remote access

Unlike Plex, Jellyfin doesn't have a relay service. For remote access, you need:

  1. A reverse proxy (Caddy, nginx, or Traefik)
  2. A domain or dynamic DNS pointing to your home IP
  3. Port forwarding on your router (or a Cloudflare Tunnel / WireGuard VPN)

Example Caddy configuration:

jellyfin.yourdomain.com {
    reverse_proxy localhost:8096
}

This gives you HTTPS automatically via Let's Encrypt.

Organizing Your Media Library

Jellyfin uses folder structure and file naming to identify content. Follow this convention:

/media/
  movies/
    The Matrix (1999)/
      The Matrix (1999).mkv
    Inception (2010)/
      Inception (2010).mkv
  tv/
    Breaking Bad (2008)/
      Season 01/
        Breaking Bad - S01E01 - Pilot.mkv
  music/
    Artist Name/
      Album Name (Year)/
        01 - Track Title.flac

If your files are named this way, Jellyfin will automatically fetch metadata, artwork, descriptions, and ratings from TMDb and MusicBrainz.

The Honest Trade-offs

Jellyfin is great if:

Jellyfin is not ideal if:

Bottom line: For most self-hosters, Jellyfin is the clear choice. It does everything Plex does for media playback, without the account requirement, telemetry, or paywalled features. The main gap is remote access convenience, which is solvable if you're willing to set up a reverse proxy.

Resources