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)
Method 1: Docker Compose (Recommended)
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: trueflag 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
- Open the Apps tab in Unraid
- Search for Seerr
- Click Install
- Configure the template:
- Config path:
/mnt/user/appdata/seerr - Port:
5055 - TZ: Your timezone
- Config path:
- Click Apply
Manual Docker on Unraid
If Seerr is not yet in Community Apps:
- Go to Docker → Add Container
- Repository:
ghcr.io/seerr-team/seerr:latest - Add path mapping: Container
/app/config→ Host/mnt/user/appdata/seerr - Add port mapping:
5055→5055 - 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
- Download from docker.com/products/docker-desktop
- Install and enable WSL 2 backend when prompted
- 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:
- Select Jellyfin as your media server
- Enter your Jellyfin URL:
http://jellyfin:8096(Docker) orhttp://YOUR_IP:8096 - Enter your Jellyfin admin username and password
- Click Save
For Emby:
- Select Emby
- Enter your Emby URL and API key
- Click Save
Step 2: Connect Radarr (Movies)
- Click Add Radarr Server
- Server name:
Radarr - Hostname:
radarr(Docker) or your server IP - Port:
7878 - API Key: found in Radarr → Settings → General → API Key
- Select your default quality profile and root folder
- Click Test → Save
Step 3: Connect Sonarr (TV Shows)
Same process:
- Click Add Sonarr Server
- Hostname:
sonarr, Port:8989 - API Key from Sonarr → Settings → General
- Select quality profile and root folder
- Test → Save
Step 4: Import Users
Seerr can import your existing Jellyfin/Emby users:
- Go to Settings → Users
- Click Import Users from Jellyfin/Emby
- 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
| Service | Default Port | Protocol |
|---|---|---|
| Seerr | 5055 | HTTP |
| Jellyfin | 8096 | HTTP |
| Emby | 8096 | HTTP |
| Radarr | 7878 | HTTP |
| Sonarr | 8989 | HTTP |
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 configurationlogs/- 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
| Feature | Seerr | Jellyseerr | Overseerr |
|---|---|---|---|
| Status | Active development | Deprecated | Deprecated |
| Jellyfin support | Yes | Yes | No |
| Emby support | Yes | No | No |
| Plex support | Yes | Yes | Yes |
| Migration from predecessors | Automatic | N/A | N/A |
Seerr is the only actively maintained option in 2026. Both Jellyseerr and Overseerr are deprecated.
Troubleshooting
| Problem | Fix |
|---|---|
| Cannot connect to Jellyfin | Verify URL and credentials - use Docker service name if on same network |
| Radarr/Sonarr test fails | Check API key and ensure the service is reachable from Seerr container |
| Permission denied on config | chown -R 1000:1000 ./seerr/config |
| Port 5055 already in use | Change the host port in docker-compose.yml: 5056:5055 |
| Users not importing | Ensure 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