Kent, UK

Interface reference

What Jellyfin is

Jellyfin is a free, open-source media server that lets you stream your own music, films, TV shows and photos to any device on your network or remotely. It is a fork of Emby, created after Emby moved to a closed-source model. Unlike Plex, Jellyfin has no account requirements, no telemetry, no premium tier and no external authentication dependency — your media stays yours, served from your own hardware.

Jellyfin supports hardware-accelerated transcoding (VAAPI, QSV, NVENC), automatic metadata fetching, subtitle downloads, user profiles with parental controls, and clients on Android, iOS, web, Roku, Fire TV, Kodi and more.

Why I run it

I run Jellyfin because I want full control over my media library without relying on a third-party service that can change its terms, inject ads or require an internet connection to access my own files. It runs on my Docker infrastructure alongside my other self-hosted services, accessible locally and remotely through Tailscale — never exposed directly to the internet.

It also lets me set up separate user profiles for family members with appropriate content restrictions, without needing to pay for a premium plan or create external accounts.

Docker Compose

A representative Compose file for deploying Jellyfin. Adjust the volume paths to match your media and config locations.

docker-compose.yml
services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    container_name: jellyfin
    restart: unless-stopped
    ports:
      - "8096:8096"
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /path/to/media:/media:ro
    environment:
      - TZ=Europe/London
    devices:
      - /dev/dri:/dev/dri  # hardware transcoding

What this gives you

A private, ad-free media server that streams to any device on your network, with no external dependencies, no account requirements and no risk of a vendor deciding to monetise your library access. Combined with Tailscale for remote access, it works anywhere without opening ports or configuring reverse proxies.