DockerSelf-Hosting

Seerr with Docker: Media Requests for Jellyfin, the Jellyseerr Successor (Linux, Windows, Mac)

Before you start

  • 20 min read

Boxes marked Run in terminal are what you type; plain text explains why. Check what you need first

What you get in one minute#

Seerr is a free, self-hosted request page for your media server: people sign in with their Jellyfin account, search for a movie or show, press Request, and you approve it in one click.

Seerr official logo

Logo: the official Seerr project (github.com/seerr-team/seerr)

It suits a family or friends server where people keep asking "can you add this?" It can also pass approved requests to Radarr and Sonarr if you run them.

The name, honestly: Jellyseerr and Overseerr no longer develop separately. Their teams merged into one project called Seerr, announced in February 2026. The Jellyseerr repository now redirects to seerr-team/seerr. The Overseerr repository says it "will no longer receive new features or major updates". Seerr is alive and releases often; a migration section is below.

WhatValue (official docs, read November 2026)
Current versionSeerr v3.5.1, released October 2026 (latest stable)
Image to pinghcr.io/seerr-team/seerr:v3.5.1 (tag checked on the registry)
Time neededAbout 20 minutes with a working Jellyfin server (our estimate, not measured)
Download sizeAbout 254 MB (amd64) or 308 MB (arm64), compressed, from the Docker Hub tag page
RAMNot documented by the project; we did not measure it
PortTCP 5055 (the web page)
LicenceMIT (LICENSE at the release tag)
Official docsdocs.seerr.dev and the repository

Screenshot of the Seerr Discover page with a Recently Added row, a Requests count in the menu and Approve and Decline buttons on a pending request

Image: the official Seerr project (README preview at v3.5.1). The film posters belong to their studios.

At a glance:

  • What it is: a web app for requests, approvals and "is it already available?" checks. It does not play or store media.
  • Who signs in: your Jellyfin users, with their Jellyfin passwords. One media server per Seerr: Jellyfin, Emby or Plex.
  • Optional: Radarr (movies) and Sonarr (shows), version 3 or 4, to act on approved requests.
  • Pin the tag: the docs say latest always means the newest stable release. We pin v3.5.1 and change it on purpose.
  • Rootless: the container runs as user node (UID 1000), so the config folder must belong to that user.
  • Legal use only: Seerr only keeps and forwards a list. What Radarr and Sonarr fetch is your responsibility; use media you have the right to have.

How it fits together#

People talk to Seerr on one TCP port. Seerr asks Jellyfin who they are, asks TMDB for titles and posters, and optionally hands approved requests to Radarr and Sonarr. It keeps everything in one config folder.

Diagram: family and friends open Seerr over HTTPS through an optional Caddy proxy; Seerr on port 5055 saves settings and its database to a config folder on the host, signs people in with Jellyfin on port 8096, looks up titles at TMDB, and optionally sends approved requests to Radarr and Sonarr

Drawn for this guide from the official docs. Dashed parts are optional.

Before you start#

You need a Jellyfin server that already works, Docker with Compose on the machine that will run Seerr, and a Jellyfin account with administrator rights. If you have no Jellyfin yet, start with our Jellyfin with Docker guide.

SystemWhat to use
LinuxDocker Engine and the Compose plugin. The docs call Docker the recommended method
WindowsDocker Desktop with the WSL 2 backend. The docs say WSL 2 must be installed to prevent database corruption
MacDocker Desktop. The docs group macOS with Linux for the commands

Check Docker on every system:

Run in terminalbash
docker --version
docker compose version

Checklist:

  • [ ] Jellyfin works and you know an admin username and password
  • [ ] Docker and Compose run (commands above)
  • [ ] For the HTTPS section only: a DNS name for this machine, and ports 80 and 443 free

Tested on 2026-11-05: Linux = not run, Windows = not run, Mac = not run. The commands come from the official docs, the Dockerfile and the release files read in November 2026. We did not start containers for this guide.

Step 1: Create the folders and a shared network#

Seerr keeps its settings and database in one folder. We use ~/docker_volumes/seerr, as all DIY Lab Hub guides do. The proxy network lets Seerr reach Jellyfin and Caddy by container name.

Linux#

Run in terminalbash
mkdir -p ~/docker_volumes/seerr/{config,backups}
cd ~/docker_volumes/seerr
sudo chown -R 1000:1000 config
docker network create proxy

The chown is from the official docs: the container runs as the node user (UID 1000). If docker network create says the network exists, that is fine.

Windows (PowerShell)#

The docs say not to keep the config folder on a Windows folder, because the shared-folder layer has no file locking and will "eventually corrupt your database". Use a named volume, which lives inside the Docker VM:

Codepowershell
New-Item -ItemType Directory -Force "$HOME\docker_volumes\seerr\backups" | Out-Null
Set-Location "$HOME\docker_volumes\seerr"
docker volume create seerr-data
docker network create proxy

Mac (Terminal)#

Same commands as Linux (the docs list macOS with Linux):

Run in terminalbash
mkdir -p ~/docker_volumes/seerr/{config,backups}
cd ~/docker_volumes/seerr
sudo chown -R 1000:1000 config
docker network create proxy

Check it worked. The folders and the network exist:

Run in terminalbash
ls -ld ~/docker_volumes/seerr/config
docker network ls --filter name=proxy

On Windows, run docker volume ls --filter name=seerr-data and docker network ls --filter name=proxy.

Tip: Skipping the ownership step is the most common first-start failure. The container cannot write to a folder owned by another user and stops with EACCES: permission denied.

Step 2: Write the Compose file and start Seerr#

This is the official Compose file with four changes: the image is pinned to v3.5.1, the config path is ./config, the log level is info (the code default is debug), and Seerr joins the proxy network. The health check, init: true, no-new-privileges and cap_drop: ALL are from the docs. Set TZ to your own time zone name.

Linux#

Run in terminalbash
cd ~/docker_volumes/seerr
cat > docker-compose.yml << 'EOF'
services:
  seerr:
    image: ghcr.io/seerr-team/seerr:v3.5.1
    init: true
    container_name: seerr
    environment:
      - LOG_LEVEL=info
      - TZ=Etc/UTC
      - PORT=5055
    ports:
      - "5055:5055"
    volumes:
      - ./config:/app/config
    healthcheck:
      test: wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/settings/public || exit 1
      start_period: 20s
      timeout: 3s
      interval: 15s
      retries: 3
    security_opt:
      - no-new-privileges
    cap_drop:
      - ALL
    networks:
      - proxy
    restart: unless-stopped

networks:
  proxy:
    external: true
EOF
docker compose up -d
docker compose ps
docker compose logs --tail=30 seerr

Windows (PowerShell)#

The same file, with the named volume from the Windows docs:

Codepowershell
Set-Location "$HOME\docker_volumes\seerr"
@'
services:
  seerr:
    image: ghcr.io/seerr-team/seerr:v3.5.1
    init: true
    container_name: seerr
    environment:
      - LOG_LEVEL=info
      - TZ=Etc/UTC
      - PORT=5055
    ports:
      - "5055:5055"
    volumes:
      - seerr-data:/app/config
    healthcheck:
      test: wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/settings/public || exit 1
      start_period: 20s
      timeout: 3s
      interval: 15s
      retries: 3
    security_opt:
      - no-new-privileges
    cap_drop:
      - ALL
    networks:
      - proxy
    restart: unless-stopped

volumes:
  seerr-data:
    external: true

networks:
  proxy:
    external: true
'@ | Set-Content -Encoding utf8 docker-compose.yml
docker compose up -d
docker compose ps
docker compose logs --tail=30 seerr

Mac (Terminal)#

Same commands and file as Linux.

Check it worked. docker compose ps shows seerr as running, and after the 20-second start period as healthy. The log contains a line like the one below, copied from a user's log in the issue tracker (version number aside, yours should look alike). The page answers on the health URL:

File contenttext
[info]: Starting Seerr version 3.5.1
Run in terminalbash
curl -i http://localhost:5055/api/v1/settings/public

On Windows use curl.exe -i .... Expect HTTP/1.1 200 OK; the health check uses this same URL.

Tip: init: true is required for the Seerr image. The migration guide says the new container has no init process of its own. Do not copy a Jellyseerr Compose file without checking it.

Step 3: Sign in with your Jellyfin admin account#

The first visit runs the setup. Open the page on any system:

Linux#

On the same machine: http://localhost:5055. From another computer: http://<seerr-machine-address>:5055.

Windows (PowerShell)#

The same address in a browser.

Mac (Terminal)#

The same address in a browser.

In the setup, choose Jellyfin and fill in the connection. The docs say to use an account with administrative privileges. The email can be any address: it is only for notifications, password resets and local sign-in, and is not tied to Jellyfin.

The most important field is the Internal URL: the address Seerr itself uses to reach Jellyfin. The docs say that in a normal bridged Docker network, localhost and 127.0.0.1 point at the Seerr container, not at your host.

Where Jellyfin runsInternal URL
In Docker on this machine, also on the proxy networkhttp://jellyfin:8096 (the container name; add networks: [proxy] to its Compose file)
On another machinehttp://<jellyfin-machine-address>:8096
On this machine, not in Dockerhttp://<this-machine-LAN-address>:8096, not localhost

The External URL is only for the "Play on Jellyfin" buttons: use the address your users open in a browser.

Check it worked. You land on the Discover page, signed in as the owner. The docs call the first account the "Owner": it cannot be deleted or edited by others.

Tip: If Jellyfin sits behind a proxy with a home-only certificate (Caddy tls internal), Seerr will refuse it as untrusted. Use the plain http:// internal address inside Docker, or mount your CA and set NODE_EXTRA_CA_CERTS as the docs describe.

Step 4: Choose libraries and scan#

Seerr needs to know what you already have, so it does not offer a request for it.

Linux#

In the web page: Settings, then Jellyfin. Select the libraries Seerr should scan. If a library is missing, press Sync Libraries. Then start a manual scan.

Windows (PowerShell)#

The same page; nothing to run in PowerShell.

Mac (Terminal)#

The same page; nothing to run in Terminal.

Check it worked. Search for a title you know is in Jellyfin. It shows as available, with a "Play on Jellyfin" button. Then search for one you do not have and press Request. The request appears under Requests, where the owner can approve or decline it.

Step 5: Connect Radarr and Sonarr (optional)#

Without these, Seerr only keeps the list and you add media by hand. With them, an approved request is sent on. Use only Radarr and Sonarr v3 or v4; the docs say v2 is not supported.

Linux#

In Settings, then Services, add each server: a name, hostname, port, API key, quality profile, root folder and minimum availability. Defaults from the docs are port 7878 for Radarr and 8989 for Sonarr. The API key is in each app under Settings, General, Security. Mark one server as Default, or requests will fail.

Windows (PowerShell)#

The same page. If Radarr or Sonarr runs in Docker on the proxy network, use its container name as the hostname.

Mac (Terminal)#

The same page. A URL base set in Radarr or Sonarr must be entered in Seerr too.

Check it worked. The Test button shows a success message and the profile and folder lists fill in. Approve a test request: it appears in Radarr or Sonarr.

Coming from Jellyseerr or Overseerr#

The migration guide says there are no manual migration steps: Seerr migrates your instance automatically the first time it starts with your old config. Overseerr users get one extra migration for their settings. Back up first.

  1. Stop the old container and copy the whole config folder somewhere safe.
  2. Change the image to ghcr.io/seerr-team/seerr:v3.5.1.
  3. Add init: true and remove any user: line. The Seerr image does not use PUID or PGID.
  4. Give the old folder to UID 1000: docker run --rm -v /path/to/config:/data alpine chown -R 1000:1000 /data (from the migration guide).
  5. Start it and read docker compose logs --tail=50 seerr.

Seerr supports Jellyfin, Emby and Plex, but one at a time. Overseerr users who use Plex stay on Plex. Back up again after the first successful start.

Put it behind HTTPS (with or without Traefik)#

For a server with a domain, put Seerr behind HTTPS and stop publishing port 5055. Local-only users can skip this section. Both routes assume the proxy network from Step 1 and a DNS name that points at the server. Seerr's docs support subdomains only: a base URL such as example.com/seerr is not supported.

With Traefik#

On a server that already runs Traefik v3 with the Docker provider, add labels and remove the host port. The labels follow the Traefik example in the Seerr docs, with the router name changed and the entrypoint named https (use the name of yours):

File contentyaml
services:
  seerr:
    image: ghcr.io/seerr-team/seerr:v3.5.1
    init: true
    container_name: seerr
    environment:
      - LOG_LEVEL=info
      - TZ=Etc/UTC
    volumes:
      - ./config:/app/config
    healthcheck:
      test: wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/settings/public || exit 1
      start_period: 20s
      timeout: 3s
      interval: 15s
      retries: 3
    security_opt:
      - no-new-privileges
    cap_drop:
      - ALL
    networks:
      - proxy
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=proxy"
      - "traefik.http.routers.seerr.rule=Host(`seerr.<your-domain>`)"
      - "traefik.http.routers.seerr.entrypoints=https"
      - "traefik.http.routers.seerr.tls=true"
      - "traefik.http.services.seerr.loadbalancer.server.port=5055"
    restart: unless-stopped

networks:
  proxy:
    external: true

Run docker compose up -d in ~/docker_volumes/seerr. Then turn on Settings, Network, Enable Proxy Support in Seerr.

Check it worked. curl -I https://seerr.<your-domain>/ returns an HTTP status line over HTTPS, with a valid certificate.

Without Traefik: Caddy#

Choose this if you have no Traefik. Caddy gets and renews its own certificates. The Seerr docs give a one-line Caddy example. We run Caddy in Docker and mount its folder, not a single Caddyfile, because Caddy's Docker docs warn that a single-file mount can miss edits.

Run in terminalbash
mkdir -p ~/docker_volumes/caddy/{conf,data,config}
cd ~/docker_volumes/caddy

Save as ~/docker_volumes/caddy/docker-compose.yml. The image caddy:2.11.8 exists on Docker Hub as of November 2026:

File contentyaml
services:
  caddy:
    image: caddy:2.11.8
    container_name: caddy
    restart: unless-stopped
    ports:
      - "80:80/tcp"
      - "443:443/tcp"
      - "443:443/udp"
    volumes:
      - ./conf:/etc/caddy
      - ./data:/data
      - ./config:/config
    networks:
      - proxy

networks:
  proxy:
    external: true

Save this as ~/docker_volumes/caddy/conf/Caddyfile for a public domain, where Caddy gets a Let's Encrypt certificate by itself:

File contenttext
seerr.example.com {
    reverse_proxy seerr:5055
}

For a home-only name, use Caddy's own certificate instead:

File contenttext
seerr.home.arpa {
    tls internal
    reverse_proxy seerr:5055
}

Caddy reaches Seerr by container name on the proxy network. In the Seerr Compose file, delete the ports: lines (or change them to "127.0.0.1:5055:5055" to keep a local test port), then start both:

Run in terminalbash
cd ~/docker_volumes/caddy && docker compose up -d
cd ~/docker_volumes/seerr && docker compose up -d

For tls internal, each device must trust Caddy's root certificate. Our Caddy guide shows the commands for Linux, Windows and Mac. On Windows and Mac the Docker commands above run the same way in PowerShell or Terminal. Then enable Settings, Network, Enable Proxy Support in Seerr, and set the Application URL under Settings, General.

Check it worked. curl -I https://seerr.example.com/ returns an HTTP status line. For a home-only name, the browser shows a padlock once the root is trusted.

Tip: Let's Encrypt needs the DNS record to point at your server and ports 80 and 443 to reach it. A certificate error usually means the name in the Caddyfile differs from the DNS record.

Security and testing#

Seerr signs people in with Jellyfin credentials and can talk to Radarr and Sonarr. Treat it as an admin tool.

ControlHow
New Jellyfin sign-insOn by default: anyone with access to your Jellyfin server can sign in and gets the default permissions. Set the default permissions low, or untick Enable New Jellyfin Sign-In in Settings, Users and import the people you want
Default permissionsDo not give "auto-approve" or admin rights to everyone. Give approval rights to a few trusted people
Owner accountThe first account is the owner. Use a long, unique Jellyfin password for it
Internet exposurePrefer HTTPS with a proxy. If you only need it at home, keep port 5055 on your LAN and never forward it on the router
API keyUnder Settings, General. Do not share it: the docs say it can give administrator access
Proxy supportEnable it behind a proxy, so Seerr sees client addresses; the fail2ban page says this is needed
Failed sign-insThe docs include a fail2ban filter that reads the Seerr log
Config folder and backupssettings.json holds service keys. Keep the folder and every backup readable only by you (chmod 600 on archives)

What leaves your network: lookups to TMDB for titles and posters, calls to your media server and Radarr and Sonarr, and any notification service you configure. The docs describe no telemetry.

Quick tests after each change:

Run in terminalbash
cd ~/docker_volumes/seerr
docker compose ps
docker compose logs --tail=100 seerr
curl -i http://localhost:5055/api/v1/settings/public

Windows and Mac can run the curl check in PowerShell (curl.exe) or Terminal.

Tip: The health check only asks one public URL. In one report, a PostgreSQL setup hung while the health check stayed green. Judge Seerr by trying a search and a request, not only by the "healthy" label.

Common mistakes#

These come from the official docs' warnings, the project's issue tracker, and common AI assistant answers.

MistakeWhy it happensDo this instead
Skipping the folder ownershipThe container runs as UID 1000. Issues #2970 (April 2026) and #3552 (September 2026) report EACCES: permission denied at startRun chown -R 1000:1000 on the config folder, as the docs say
Using PUID and PGIDThird-party images read them; the official image never did. Issue #2546 (February 2026)Set folder ownership instead; the image is rootless
http://localhost:8096 as the Jellyfin addressInside the container, localhost is Seerr itself. Issue #1358 (the project's earlier Jellyseerr days) shows INVALID_URLUse the container name on a shared network, or the Jellyfin machine's LAN address
Copying an old Jellyseerr Compose fileOld files have the old image name, may lack init: true or carry a user: lineFollow the migration guide: new image, init: true, no user:
Putting the config folder on a Windows folderThe docs say the shared-folder layer lacks file locking and will corrupt the databaseUse a named volume such as seerr-data
Using latest for a server others rely onTags move; issue #2423 (February 2026) reported a start failure after an upgrade, fixed in 3.0.1Pin v3.5.1, read the release notes, then change it
Serving Seerr under example.com/seerrThe docs: base URLs cannot be configured; only subdomains are supportedUse seerr.example.com
Leaving new sign-ins open to everyone with a Jellyfin accountThe default is on, with default permissionsReview defaults or switch it off
AI assistants: inventing image names or variablesAssistants often suggest fallenbagel/jellyseerr, sctx/overseerr, PUID/PGID, or a Jellyfin URL in an environment variableUse ghcr.io/seerr-team/seerr:<tag>; the docs set Jellyfin in the web page
AI assistants: telling you to forward 5055 or use latestMany blog examples do bothUse HTTPS with a proxy and a pinned tag

Tip: Before you paste a Compose file from any site, check four lines against the Seerr docs: the image name, init: true, no user: or PUID, and the config volume.

Tip: After every change run docker compose logs --tail=100 seerr. Permission, network and TMDB errors print there.

Tip: Back up the config folder before every version change and before any migration. The migration guide marks it as a danger notice.

Troubleshooting#

ProblemSolution
Container restarts, log shows EACCES: permission deniedFix ownership of the config folder: sudo chown -R 1000:1000 ~/docker_volumes/seerr/config, then docker compose up -d
INVALID_URL or "server is not reachable" when connecting JellyfinDo not use localhost. Use the container name on proxy, or the LAN address; test with docker exec seerr wget -qO- http://jellyfin:8096/System/Info/Public
[TMDB] failed to retrieve/fetch XXXThe docs list four fixes: change DNS servers, use an HTTP(S) proxy, turn on Force IPv4 Resolution First in Settings, Network and restart, and test with docker exec -it seerr sh -c "apk update && apk add curl && curl -L https://api.themoviedb.org"
Your admin account lost its rightsDocumented when the Jellyfin user ID changed. Follow the "Account does not have admin privileges" steps in the docs: back up settings.json, delete it, redo the setup with the same login, stop, restore the file, start
Self-signed certificate refusedMount your CA as PEM and set NODE_EXTRA_CA_CERTS (docs, Self-Signed Certificates)
Web push failsPi-hole: allow fcm.googleapis.com (Chromium browsers) or push.services.mozilla.com (Firefox). Brave: switch on "Use Google services for push messaging"
Scans hang or the page stops answeringSee the known report below; restart the container and read the log

Known reports (read November 2026)#

  • Jellyfin 12 and scans. Issue #3516 (September 2026, closed) reported the web page hanging during scheduled Jellyfin scans on v3.4.1. The maintainer ran Jellyfin 12 without trouble and asked for a support ticket. If it happens, try 3.5.1, read the log, then ask on the project's Discord.
  • PostgreSQL on 3.4.x. Issue #3363 (August 2026, closed) described the connection pool running dry during a Radarr scan. This guide uses the default SQLite. Seerr 3.5.1 is newer than that report.
  • Radarr and Sonarr keys. Issue #3416 (August 2026, closed) reported empty keys after a failed settings migration. Check Settings, Services after any upgrade.

Run docker compose ps, docker compose logs --tail=200 seerr and docker inspect seerr first. The project asks for support questions on its Discord and keeps GitHub issues for bugs.

Updates and backups#

Update. Read the release notes, change the tag in docker-compose.yml, then:

Run in terminalbash
cd ~/docker_volumes/seerr
docker compose pull seerr
docker compose up -d
docker compose logs --tail=50 seerr

Use the same commands in PowerShell and Terminal. Back up before you update.

Back up. What to save: settings.json (all integrations and notification settings) and the database db/db.sqlite3. The docs say: stop Seerr, then back up the config folder.

Linux#

Run in terminalbash
cd ~/docker_volumes/seerr
docker compose down
tar -czf "backups/seerr-$(date +%F).tar.gz" -C config .
chmod 600 backups/seerr-*.tar.gz
docker compose up -d

If tar cannot read a file, run it with sudo; the files belong to UID 1000. To run it nightly at 03:00, put these lines in a script and add 0 3 * * * /home/<you>/docker_volumes/seerr/backup.sh with crontab -e. Keep a copy of the archive on another machine; our restic guide shows how.

Windows (PowerShell)#

The config lives in a named volume, so a small throwaway container makes the archive:

Codepowershell
Set-Location "$HOME\docker_volumes\seerr"
docker compose down
$stamp = Get-Date -Format yyyy-MM-dd
docker run --rm -v seerr-data:/data -v "${HOME}\docker_volumes\seerr\backups:/backup" alpine:3.23 tar -czf "/backup/seerr-$stamp.tar.gz" -C /data .
docker compose up -d

Save these lines as seerr-backup.ps1 and schedule them with Task Scheduler at 03:00, for example schtasks /Create /SC DAILY /ST 03:00 /TN "Seerr backup" /TR "powershell.exe -NoProfile -File $HOME\docker_volumes\seerr\seerr-backup.ps1".

Mac (Terminal)#

Same commands as Linux. For nightly runs, crontab -e works on macOS; launchd is the Apple-native option.

Restore test. Unpack one archive into a new empty folder, never over the live one. The docs say the folder should hold db/db.sqlite3 and settings.json:

Run in terminalbash
mkdir -p /tmp/seerr-restore-test
tar -xzf backups/seerr-<date>.tar.gz -C /tmp/seerr-restore-test
ls -R /tmp/seerr-restore-test | head -20

To restore for real: docker compose down, replace the folder contents with the unpacked files, run sudo chown -R 1000:1000 config, then docker compose up -d. The docs also show an SQLite .backup command for a running instance, but its two file names do not match (seerr_db.sqlite3.bak and seerr_dump.sqlite3.bak), so we stop the container instead.

Performance and resources#

The project publishes no memory or CPU figures, so this guide gives none. Measure your own server:

  • Resources: docker stats seerr shows live CPU and memory.
  • Health: the image's health check runs every 15 seconds; docker compose ps shows the result.
  • Scans: a full Jellyfin scan runs every 24 hours; large libraries take longer. Jobs can be started by hand under Settings, Jobs & Cache.
  • Disk: image caching stores posters in config/cache/images. The docs say it "can use a significant amount of disk space".
  • DNS: the docs describe an experimental DNS cache setting in Settings, Network that helps when a local resolver such as Pi-hole or AdGuard Home is overloaded. Our AdGuard Home guide covers one such resolver.
  • Database: SQLite is the default. PostgreSQL is optional (DB_TYPE and related variables); this guide does not use it.

FAQ#

Is Seerr free to use? Yes, under the MIT licence.

Are Jellyseerr and Overseerr dead? They are superseded. The two teams merged into Seerr in February 2026. Overseerr's repository says it gets no new features. Jellyseerr's repository now redirects to Seerr.

Can it run with Plex and Jellyfin together? No. The release announcement says only one media server integration can be used at a time.

Does Seerr download anything? No. It keeps requests and can pass them to Radarr and Sonarr. Those tools do the fetching, and what they fetch is your responsibility.

Does it send my data to the project? The docs describe no telemetry. It contacts TMDB, your own media server, and the Radarr, Sonarr and notification services you configure.

Sources#

Checked against the official docs on 2026-11-05.