How to Install Seerr in 2026: Complete Setup Guide for Docker, Linux, Unraid, and Windows

How to Install Seerr in 2026: Complete Setup Guide for Docker, Linux, Unraid, and Windows

How to Install Seerr in 2026: Complete Setup Guide

Seerr is the unified successor to Jellyseerr and Overseerr - the community standard for letting users request movies and TV shows on your self-hosted media server. If you run Jellyfin or Emby with Radarr and Sonarr, Seerr is the missing piece that turns your stack into a proper streaming platform with user-facing request management.

This guide covers a fresh Seerr installation from scratch on Linux, Unraid, and Windows - not a migration from Jellyseerr or Overseerr (see our migration guide for that).


What Is Seerr?

Seerr provides:

  • A polished web interface where users search for movies and TV shows
  • One-click request submission
  • Automatic handoff to Radarr (movies) and Sonarr (TV shows)
  • Request status tracking (pending → approved → downloading → available)
  • User management with request quotas
  • Notification support (Discord, Telegram, email, webhooks)

Default port: 5055


Prerequisites

Before installing Seerr, you need:

  • A running Jellyfin or Emby server
  • Radarr configured with at least one root folder and quality profile
  • Sonarr configured with at least one root folder and quality profile
  • Docker installed (for Docker/Unraid methods)

The fastest and most reliable installation method.

docker-compose.yml

services:
  seerr:
    image: ghcr.io/seerr-team/seerr:latest
    init: true
    container_name: seerr
    environment:
      - LOG_LEVEL=info
      - TZ=Europe/Paris
      - PORT=5055
    ports:
      - 5055:5055
    volumes:
      - ./seerr/config:/app/config
    healthcheck:
      test: wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/status || exit 1
      start_period: 20s
      timeout: 3s
      interval: 15s
      retries: 3
    restart: unless-stopped

Important notes

  • The container runs as user node (UID 1000) by default
  • Ensure the config directory is owned by UID 1000:1000:
mkdir -p ./seerr/config
sudo chown -R 1000:1000 ./seerr/config
  • The init: true flag ensures proper signal handling for graceful shutdowns

Start Seerr

docker compose up -d

Access Seerr at http://YOUR_SERVER_IP:5055.


Method 2: Native Linux Installation (Debian/Ubuntu)

If you prefer running Seerr directly on a Linux host without Docker:

Prerequisites

# Install Node.js 20+ (via NodeSource)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt install -y nodejs git

Clone and build

git clone https://github.com/seerr-team/seerr.git /opt/seerr
cd /opt/seerr
npm install
npm run build

Create a systemd service

# /etc/systemd/system/seerr.service
[Unit]
Description=Seerr Media Request Manager
After=network.target

[Service]
Type=simple
User=seerr
Group=seerr
WorkingDirectory=/opt/seerr
ExecStart=/usr/bin/npm start
Restart=on-failure
Environment=PORT=5055

[Install]
WantedBy=multi-user.target
sudo useradd -r -s /bin/false seerr
sudo chown -R seerr:seerr /opt/seerr
sudo systemctl enable --now seerr

Access at http://YOUR_IP:5055.

For most users, Docker remains the recommended method. Native installation requires manual updates and dependency management.


Method 3: Unraid Installation

Via Community Applications

  1. Open the Apps tab in Unraid
  2. Search for Seerr
  3. Click Install
  4. Configure the template:
    • Config path: /mnt/user/appdata/seerr
    • Port: 5055
    • TZ: Your timezone
  5. Click Apply

Manual Docker on Unraid

If Seerr is not yet in Community Apps:

  1. Go to Docker → Add Container
  2. Repository: ghcr.io/seerr-team/seerr:latest
  3. Add path mapping: Container /app/config → Host /mnt/user/appdata/seerr
  4. Add port mapping: 50555055
  5. Click Apply

Fix permissions on Unraid

chown -R 1000:1000 /mnt/user/appdata/seerr

Method 4: Windows Installation (Docker Desktop)

Seerr does not have a native Windows installer - use Docker Desktop.

Install Docker Desktop

  1. Download from docker.com/products/docker-desktop
  2. Install and enable WSL 2 backend when prompted
  3. Restart your computer

docker-compose.yml for Windows

services:
  seerr:
    image: ghcr.io/seerr-team/seerr:latest
    init: true
    container_name: seerr
    environment:
      - LOG_LEVEL=info
      - TZ=Europe/Paris
    ports:
      - 5055:5055
    volumes:
      - seerr-data:/app/config
    healthcheck:
      test: wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/status || exit 1
      start_period: 20s
      timeout: 3s
      interval: 15s
      retries: 3
    restart: unless-stopped

volumes:
  seerr-data:

Open a terminal in the folder containing your docker-compose.yml:

docker compose up -d

Access at http://localhost:5055.


First-Run Setup Wizard

Open http://YOUR_IP:5055 and follow the wizard:

Step 1: Connect Your Media Server

For Jellyfin:

JellyWatchTry JellyWatch — Your Jellyfin companion, everywhere.
  1. Select Jellyfin as your media server
  2. Enter your Jellyfin URL: http://jellyfin:8096 (Docker) or http://YOUR_IP:8096
  3. Enter your Jellyfin admin username and password
  4. Click Save

For Emby:

  1. Select Emby
  2. Enter your Emby URL and API key
  3. Click Save

Step 2: Connect Radarr (Movies)

  1. Click Add Radarr Server
  2. Server name: Radarr
  3. Hostname: radarr (Docker) or your server IP
  4. Port: 7878
  5. API Key: found in Radarr → Settings → General → API Key
  6. Select your default quality profile and root folder
  7. Click TestSave

Step 3: Connect Sonarr (TV Shows)

Same process:

  1. Click Add Sonarr Server
  2. Hostname: sonarr, Port: 8989
  3. API Key from Sonarr → Settings → General
  4. Select quality profile and root folder
  5. TestSave

Step 4: Import Users

Seerr can import your existing Jellyfin/Emby users:

  1. Go to Settings → Users
  2. Click Import Users from Jellyfin/Emby
  3. Set default permissions (request movies, request TV, auto-approve, etc.)

Seerr Configuration Best Practices

Request limits

Prevent users from flooding your server with requests:

Settings → Users → Default Permissions:

  • Movie request limit: 5 per week
  • TV request limit: 3 per week
  • Auto-approve: Off (unless you trust all users)

Notifications

Seerr supports notifications via:

  • Discord (webhook URL)
  • Telegram (bot token + chat ID)
  • Email (SMTP)
  • Webhooks (custom endpoints)
  • Pushover, Slack, Gotify

Configure in Settings → Notifications.

Reverse proxy (HTTPS)

Never expose Seerr directly to the internet without HTTPS.

Caddyfile:

requests.yourdomain.com {
    reverse_proxy seerr:5055
}

Seerr Ports and Network Reference

ServiceDefault PortProtocol
Seerr5055HTTP
Jellyfin8096HTTP
Emby8096HTTP
Radarr7878HTTP
Sonarr8989HTTP

All services communicate over HTTP internally. Use a reverse proxy for external HTTPS access.


Backing Up Seerr

Seerr stores all data in the /app/config directory:

  • db/ - SQLite database (users, requests, settings)
  • settings.json - Server configuration
  • logs/ - Application logs

Backup command

docker stop seerr
tar -czf seerr-backup-$(date +%Y%m%d).tar.gz ./seerr/config
docker start seerr

Schedule this weekly with cron for automated protection.


Seerr vs Jellyseerr vs Overseerr

FeatureSeerrJellyseerrOverseerr
StatusActive developmentDeprecatedDeprecated
Jellyfin supportYesYesNo
Emby supportYesNoNo
Plex supportYesYesYes
Migration from predecessorsAutomaticN/AN/A

Seerr is the only actively maintained option in 2026. Both Jellyseerr and Overseerr are deprecated.


Troubleshooting

ProblemFix
Cannot connect to JellyfinVerify URL and credentials - use Docker service name if on same network
Radarr/Sonarr test failsCheck API key and ensure the service is reachable from Seerr container
Permission denied on configchown -R 1000:1000 ./seerr/config
Port 5055 already in useChange the host port in docker-compose.yml: 5056:5055
Users not importingEnsure your Jellyfin/Emby admin account has permission to list users

Manage Seerr Requests from Your Phone

Seerr has no official mobile app. JellyWatch and EmbyWatch fill this gap with native Android integration:

  • View all pending, approved, and available requests
  • Approve or reject requests with a single tap
  • Search TMDB and submit requests directly
  • Push notifications for new incoming requests
  • No browser needed - everything in one native app

Seerr installed? Manage requests from your pocket. Download JellyWatch on Google Play for Jellyfin - or Download EmbyWatch on Google Play for Emby - and approve media requests natively on Android.


Seerr image: ghcr.io/seerr-team/seerr:latest. Default port: 5055. Check the Seerr GitHub for the latest release notes.

Comments

No comments yet. Be the first to share your thoughts.

Leave a comment

Never displayed publicly.
0 / 2000 · Supports limited Markdown: **bold**, *italic*, `code`, [link](url), lists, > quote.