Skip to content
Go back

Overseerr vs Jellyseerr

· Updated:
By SumGuy 12 min read
Overseerr vs Jellyseerr
Contents

When Family Stops Texting You About Missing Movies

Overseerr wins if you run Plex, and Jellyseerr wins the moment you’re on Jellyfin or Emby since Overseerr won’t authenticate against either.

Updated (September 2026): Overseerr and Jellyseerr merged into a single project called Seerr with the v3.0.0 release on February 14, 2026. Overseerr’s GitHub repo (sct/overseerr) is now archived and gets no further updates. For a new install, use ghcr.io/seerr-team/seerr:latest (currently v3.4.1) instead of either legacy image below. The comparison in this article still explains the Plex-vs-Jellyfin split that led to the fork, and it’s still useful if you’re running one of the old images, but both projects now share one codebase.

You’ve got Sonarr auto-grabbing shows, Radarr hunting movies, and a media server humming along in your basement. Life is good. Then your partner says: “Hey, can you add that new sci-fi thing?”

And you’re staring at SSH, database schemas, and API keys. Your 2 AM self is not pleased.

This is where a request UI comes in. A friendly web interface that lets non-technical people ask for content instead of bugging you directly. It’s the difference between being a sysadmin and being a household hero.

Two main contenders exist: Overseerr (Plex-only, polished, the original) and Jellyseerr (a community fork that added Jellyfin and Emby support). Both feed requests into your *arr stack. The question is: which one fits your media server?


Which Request Tool Fits Your Media Server?

OverseerrJellyseerr
Supported serversPlex onlyPlex, Jellyfin, Emby
AuthPlex OAuth, mirrors your Plex usersNative Jellyfin auth, or Plex
MaturityOriginal, larger communityFork, smaller but active
Sonarr/Radarr integrationYes, API keyYes, API key

The *Arr Stack Needs a Frontend

Quick context if you’re new here: Sonarr and Radarr are the workhorses. They monitor RSS feeds, find torrents or Usenet articles, and hand them off to your downloader (qBittorrent, sabnzbd, whatever). But they’re not user-friendly. They’re APIs and databases. Your mom shouldn’t have to touch them.

That’s where Overseerr or Jellyseerr lives, between your family and your download infrastructure. It’s a request aggregator: your sister wants The Expanse season 6, she clicks a button, it goes into a queue, you (or automatic approval rules) greenlights it, and Sonarr/Radarr takes it from there.

It’s a mailroom. People drop requests in the mailbox (the web UI), they pile up, and then the mail sorter (Sonarr/Radarr) distributes them to the right departments (your indexers, your downloaders). Without the mailroom, everyone’s just yelling at you directly.


Overseerr: The Plex-Native Original

Overseerr is the OG. It was built for Plex. If Plex is your media server, Overseerr feels native, like it was designed for you specifically.

The good:

The catch:

How auth works: Overseerr trusts your Plex token. You connect it to your Plex server, it reads your user list, and boom, everyone who’s on your Plex share can log into Overseerr. It’s managed by your Plex admin account. No separate password database.

The sctx/overseerr image below still exists on Docker Hub and still runs, but it’s a frozen legacy build now that the upstream repo is archived. New installs should pull ghcr.io/seerr-team/seerr:latest instead.

# Overseerr in Docker (legacy image, frozen post-merger)
overseerr:
image: sctx/overseerr:latest
ports:
- "5055:5055"
environment:
LOG_LEVEL: info
volumes:
- ./config:/app/config
restart: unless-stopped

First run, you’ll hit the web UI, authenticate with your Plex account, and it pulls your server info automatically.


Jellyseerr: The Fork That Went Wider

Jellyseerr is a community fork of Overseerr that does one thing differently: it supports Jellyfin and Emby in addition to Plex.

The good:

The catch:

How auth works: If you’re on Jellyfin, Jellyseerr talks to your Jellyfin instance directly. Your Jellyfin users are your Jellyseerr users. No token nonsense. Just your existing user database.

The fallenbagel/jellyseerr image below hasn’t been updated in over a year (last pushed August 2025); Jellyseerr’s active development now happens under the Seerr project. New installs should pull ghcr.io/seerr-team/seerr:latest instead.

# Jellyseerr in Docker (legacy image, superseded by Seerr)
jellyseerr:
image: fallenbagel/jellyseerr:latest
ports:
- "5055:5055"
environment:
LOG_LEVEL: info
volumes:
- ./config:/app/config
restart: unless-stopped

During setup, you’ll point it at your Jellyfin server URL and give it admin credentials. It syncs users from there.


Decision Tree: Which One Picks You?

Running Plex? → Overseerr. It’s home field. OAuth, library sync, no friction.

Running Jellyfin and married to open source? → Jellyseerr. It’s your only option with native auth. Overseerr will technically work if you manually add users, but that defeats the point.

Running Emby? → Jellyseerr. Overseerr doesn’t support it.

Running multiple servers (Plex + Jellyfin)? → Jellyseerr can do it, but it’s one instance per server. You’d need two Jellyseerr installations if you want both to talk to their respective backends. Overseerr can’t bridge that gap at all.


Integration with Sonarr and Radarr

Both Overseerr and Jellyseerr talk to Sonarr and Radarr the same way: API keys.

Log into each *arr app, generate an API key (Settings → General, or in Radarr/Sonarr settings), then paste it into Overseerr/Jellyseerr:

Overseerr/Jellyseerr settings:
Sonarr:
Host: http://sonarr:8989
API Key: [your-sonarr-api-key]
Quality Profile: "1080p" (or whatever you named it)
Radarr:
Host: http://radarr:7878
API Key: [your-radarr-api-key]
Quality Profile: "1080p"

Both apps will then:

  1. Check if the requested content already exists in your library (Plex/Jellyfin)
  2. Submit the request to Sonarr/Radarr
  3. Queue it for download based on your rules

Quality profiles matter. When someone requests a show, Overseerr/Jellyseerr picks a quality profile (4K, 1080p, whatever). You set this per-app. A request for The Expanse will grab 1080p WEB-DL if that’s your Sonarr profile, not some crusty 480p rip.


Approval Workflows and Automation

You can go two ways:

1. Auto-approve everything (chaos mode)

Settings → Requests → Auto-approve:
✓ Enable auto-approval for TV
✓ Enable auto-approval for Movies

Useful if it’s just your household and you trust everyone. Requests become downloads immediately.

2. Require approval (sane mode) Leave auto-approve off. Requests sit in a queue. You review them (via the UI, or notifications, more on that in a sec), and click “Approve” when it makes sense. Overseerr/Jellyseerr then submits to Sonarr/Radarr.

You can also set rules like “auto-approve if request is from admin” or “auto-approve if it already exists on disk.”


Notifications: Keeping Requests Visible

Notifications tell you when a request lands, gets approved, or finishes downloading.

Both apps support:

Example Discord setup:

Settings → Notifications → Discord:
Webhook URL: [your-discord-webhook-url]
Notification types:
✓ Request submitted
✓ Request approved/denied
✓ Available (when download completes)

Your household can see real-time status. “Your request is being downloaded.” “It’s here!” No more “is this done yet?” messages.


Docker Compose Example

Here’s a minimal setup with Overseerr + Sonarr + Radarr (Jellyseerr would be the same, just swap the image). For a new install, swap sctx/overseerr:latest for ghcr.io/seerr-team/seerr:latest instead, since Overseerr and Jellyseerr are now the same unified Seerr project:

services:
overseerr:
image: sctx/overseerr:latest
container_name: overseerr
ports:
- "5055:5055"
environment:
LOG_LEVEL: info
TZ: America/New_York
volumes:
- ./overseerr_config:/app/config
restart: unless-stopped
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
ports:
- "8989:8989"
environment:
PUID: 1000
PGID: 1000
TZ: America/New_York
volumes:
- ./sonarr_config:/config
- /mnt/media/tv:/tv
- /mnt/downloads:/downloads
restart: unless-stopped
radarr:
image: lscr.io/linuxserver/radarr:latest
container_name: radarr
ports:
- "7878:7878"
environment:
PUID: 1000
PGID: 1000
TZ: America/New_York
volumes:
- ./radarr_config:/config
- /mnt/media/movies:/movies
- /mnt/downloads:/downloads
restart: unless-stopped

Spin this up:

Terminal window
docker compose up -d

Then:

  1. Hit http://localhost:8989 (Sonarr), set up your indexers and downloader
  2. Hit http://localhost:7878 (Radarr), same story
  3. Hit http://localhost:5055 (Overseerr), authenticate with Plex, link Sonarr/Radarr APIs
  4. Tell your family the URL and let them go nuts

Reverse Proxy and HTTPS

Running this behind a reverse proxy? (You should be.)

Caddy example:

seerr.your-domain.com {
reverse_proxy localhost:5055
}

Both apps handle proxies fine. Just make sure:

Plex OAuth gotcha: If Overseerr is behind HTTPS and your Plex account is authenticating from the internet, Plex needs to redirect back to your URL. Make sure your reverse proxy’s public domain is reachable from outside your network (or at least, accessible where your users will be logging in from).


Common Gotchas

1. Plex token rotation Your Plex token (the auth credential Overseerr uses) can expire or rotate. If logins suddenly fail, go to Overseerr → Settings → Plex Server, re-authenticate. Takes 30 seconds.

2. Base path confusion If you’re proxying at /overseerr/ instead of a subdomain, you need to set this in the UI (Settings → General → Base URL). Otherwise, CSS and JS load from the wrong paths and the UI looks broken.

3. Jellyfin user sync lag Jellyseerr caches user lists. If you add a new Jellyfin user, they might not show up in Jellyseerr immediately. Restart the container or wait for the sync interval to refresh.

4. Sonarr/Radarr API mismatches Make sure your Sonarr and Radarr versions match what Overseerr/Jellyseerr expects. Older versions (pre-v3) have different APIs. If requests fail silently, check the logs: docker logs overseerr.

5. Certificate headaches If Sonarr/Radarr are HTTPS (self-signed certs), Overseerr/Jellyseerr might refuse the connection due to cert validation. You can disable cert checks in Docker (not recommended for prod), or use proper certificates.


The Fork Reality (Now History)

Jellyseerr started life as a fork, maintained by volunteers who also had day jobs, while Overseerr stayed upstream. For years that meant occasional lag: Jellyseerr catching up on features or schema changes Overseerr shipped first.

That’s no longer how it works. As of the Seerr v3.0.0 release in February 2026, Overseerr and Jellyseerr merged into one codebase under the Seerr project. Overseerr’s repo is archived; there’s no upstream left to lag behind. Migration to the merged project runs automatically the first time the new container starts against an existing Overseerr or Jellyseerr config.

If you’re already running one of the old images and it works, it isn’t going to break under you, but it also isn’t getting new features anymore. Move to ghcr.io/seerr-team/seerr when you’re ready to stay current.


Pick the Seerr That Matches Your Server

For a new install, skip both legacy images and pull ghcr.io/seerr-team/seerr:latest. It authenticates against Plex, Jellyfin, or Emby from the same codebase, so you’re not picking a side anymore.

For an existing install, the split above still matters: Overseerr (now frozen at sctx/overseerr:latest) if you’re on Plex and not touching anything, Jellyseerr (frozen at fallenbagel/jellyseerr:latest) if you’re on Jellyfin or Emby and not touching anything. Either way, moving to Seerr is a one-time upgrade, not a rewrite.

Either way, you’ve solved the “Mom, can you add X?” problem. Your family gets a friendly web UI. You get your sanity back. Everyone wins.

Set up notifications so you know when things are approved and ready. Tweak your quality profiles so downloads meet your standards. And then step back and let the *arr stack do what it does best: feed your media addiction without you lifting a finger.

Your 2 AM self thanks you.


Share this post on:

Send a Webmention

Written about this post on your own site? Send a webmention and it'll show up above once verified.


Previous Post
Tautulli Beyond Plex Stats
Next Post
The *arr Stack Without 9000 Reddit Threads

Discussion

Powered by Garrul . Sign in with GitHub or Google, or post anonymously.

Related Posts