a screen shot of a computer

Jellyseerr: Self-Hosted Media Request Management for Jellyfin and Plex

Media 2026-04-20 · 4 min read jellyseerr jellyfin plex radarr sonarr media-server
By Selfhosted Guides Editorial TeamSelf-hosting practitioners covering open source software, home lab infrastructure, and data sovereignty.

If you run a media server for your family, partner, or roommates, you've almost certainly been the "download guy." Someone texts you the name of a movie. A housemate asks if you can grab the latest season of a show. You open Radarr, search, click, confirm. Repeat. It's not hard, but it turns every casual request into a personal favor — and the people making those requests have no visibility into whether it worked, how long it will take, or what's already queued.

Photo by Zach Graves on Unsplash

Jellyseerr ends that. It's a self-hosted request management interface that sits in front of Radarr and Sonarr, letting anyone with an account browse a Netflix-style catalog, click "Request," and get their movie or episode added to the download queue automatically. Your role drops from dispatcher to administrator.

What Jellyseerr actually is

Jellyseerr is a fork of Overseerr with full Jellyfin and Emby support added alongside Plex. It:

Because it's a fork, it inherits Overseerr's polished UI but adds a substantial feature: native Jellyfin auth. If you moved away from Plex, this is the only mature request tool that treats Jellyfin as a first-class citizen.

Deployment with Docker Compose

Here's a minimal docker-compose.yml that runs Jellyseerr with persistent config:

services:
  jellyseerr:
    image: fallenbagel/jellyseerr:latest
    container_name: jellyseerr
    environment:
      - LOG_LEVEL=info
      - TZ=America/Los_Angeles
      - PORT=5055
    ports:
      - 5055:5055
    volumes:
      - ./config:/app/config
    restart: unless-stopped

Bring it up with docker compose up -d and visit http://<host>:5055 to start the setup wizard. You'll authenticate with a Jellyfin or Plex admin account, then point Jellyseerr at your Radarr/Sonarr instances using their API keys.

The Radarr/Sonarr connection

This is where Jellyseerr earns its keep. During setup, for each Radarr/Sonarr instance, you configure:

You can run multiple Radarr instances — one for 1080p, one for 4K — and Jellyseerr lets advanced users pick which one. Most households won't need that, but it's there.

When a user requests a movie, Jellyseerr calls Radarr's API with the TMDB ID, and Radarr handles the rest: indexer search, download client, import, rename. Jellyseerr polls Radarr to show status (Pending → Processing → Available) back to the requester.

Want more media guides? Get guides like this in your inbox — Self-Hosted Weekly delivers one free deep-dive every week.

User management and approval workflows

By default, new users can request content but requests need admin approval. For a trusted household, flip this to auto-approve and set reasonable quotas:

For my setup, partner and kids get auto-approve with quotas; housemates get a higher tier with approval required for 4K content. The quota system is the single best feature for managing expectations — it stops the occasional "I just added 40 things to the list" enthusiasm that fills your storage overnight.

Notifications

Jellyseerr's notification system is the other underrated feature. Every request event (created, approved, available, declined, failed) can fire notifications to multiple channels. For a household, the useful ones are:

I pipe admin alerts to an ntfy topic that goes to my phone. That's how I find out about Radarr issues without logging in.

Integration with reverse proxies

If you're exposing Jellyseerr publicly via Cloudflare Tunnel, Tailscale, or a reverse proxy, there's one gotcha: Jellyseerr enforces strict CSRF checks and needs the HOSTNAME environment variable set correctly when behind a proxy. For Caddy:

requests.example.com {
  reverse_proxy 10.0.0.5:5055 {
    header_up Host {http.request.host}
    header_up X-Real-IP {http.request.remote}
  }
}

For Nginx Proxy Manager, enable the "Websocket Support" toggle — Jellyseerr uses WebSockets for real-time status updates on the homepage.

When not to use Jellyseerr

Jellyseerr adds another moving part. If you're the only user of your media server, you don't need it. If you already have a workflow with Ombi (the older, heavier alternative), Jellyseerr isn't dramatically better feature-for-feature — but it's faster, has a nicer UI, and is more actively maintained.

The one real gap: Jellyseerr doesn't handle music requests. If you want request management for Lidarr, you'll need a separate tool (or Ombi, which supports Lidarr).

Backup strategy

The config/ directory contains a SQLite database with all requests, user accounts, and settings. Back it up nightly — rebuilding user permissions and notification rules from scratch is painful. restic or borgbackup pointed at the config volume is enough.

Final verdict

For a family media server, Jellyseerr collapses "download dispatcher" into "occasional administrator." Your users browse, request, and get notified. You approve exceptions and watch the stack work. If you run Jellyfin or Plex with the *arr stack, the 10-minute Docker Compose install has one of the highest quality-of-life payoffs in the self-hosted ecosystem.

Get free weekly tips in your inbox. Subscribe to Self-Hosted Weekly

More media guides

One focused tutorial every week — no spam, unsubscribe anytime.

Opens Substack to confirm — no spam, unsubscribe anytime.

Before you go...

Get a free weekly guide from Self-Hosted Weekly — one focused topic, delivered every week. No spam.

Opens Substack to confirm — no spam, unsubscribe anytime.