Docs / Self-Hosted Applications / How to Set Up Jellyfin Media Server

How to Set Up Jellyfin Media Server

By Admin · Mar 2, 2026 · Updated Apr 25, 2026 · 34 views · 3 min read

How to Set Up Jellyfin Media Server

Jellyfin is a free, open-source media server that lets you stream your personal movie, TV show, and music collections from your Breeze to any device. Unlike proprietary media servers, Jellyfin has no premium tiers, no tracking, and no restrictions. It supports hardware transcoding, live TV with DVR, and a rich ecosystem of client apps.

Prerequisites

  • A Breeze instance with at least 2 GB of RAM (4 GB recommended for transcoding)
  • Docker installed on your Breeze
  • Media files organized in folders (Movies, TV Shows, Music)
  • A domain or subdomain (e.g., media.example.com)

Step 1 — Organize Your Media

Create a clean directory structure that Jellyfin can scan effectively:

mkdir -p /data/media/{movies,tvshows,music}
# Movies: /data/media/movies/Movie Name (Year)/Movie Name (Year).mkv
# TV Shows: /data/media/tvshows/Show Name/Season 01/Show Name - S01E01.mkv
# Music: /data/media/music/Artist/Album/01 - Track.flac

Step 2 — Deploy Jellyfin with Docker

docker run -d \
  --name jellyfin \
  --restart unless-stopped \
  -p 127.0.0.1:8096:8096 \
  -v /data/jellyfin/config:/config \
  -v /data/jellyfin/cache:/cache \
  -v /data/media:/media:ro \
  jellyfin/jellyfin:latest

The :ro flag mounts media as read-only, preventing accidental modifications through Jellyfin.

Step 3 — Initial Setup Wizard

Access Jellyfin at http://your-breeze-ip:8096 and walk through the setup wizard:

  1. Create your admin account with a strong password
  2. Add media libraries by pointing to the /media/movies, /media/tvshows, and /media/music directories
  3. Select your preferred metadata language and enable automatic metadata downloading
  4. Configure remote access settings

Step 4 — Reverse Proxy Configuration

Set up Nginx to proxy Jellyfin with WebSocket support for live playback:

server {
    listen 443 ssl http2;
    server_name media.example.com;

    location / {
        proxy_pass http://127.0.0.1:8096;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_buffering off;
    }

    location /socket {
        proxy_pass http://127.0.0.1:8096;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Step 5 — Client Apps

Jellyfin has client apps for virtually every platform:

  • Web — the built-in web player works on any modern browser
  • Android / iOS — official apps available on Google Play and App Store
  • Android TV / Fire TV — dedicated TV interface for big-screen viewing
  • Desktop — Jellyfin Media Player for Windows, macOS, and Linux
  • Roku — community-maintained Roku channel

Hardware Transcoding

If your Breeze has a compatible GPU, you can enable hardware transcoding for smoother streaming. Go to Dashboard → Playback → Transcoding and select your hardware acceleration method (VAAPI for Intel, NVENC for NVIDIA). This dramatically reduces CPU usage when converting media formats on the fly.

Maintenance

  • Schedule library scans via Dashboard → Scheduled Tasks
  • Monitor transcoding logs for performance issues
  • Back up the /config directory to preserve your library metadata and user settings

Was this article helpful?