Jellyseerr: Media Request Management for Jellyfin
Let users request movies and TV shows. Seamless integration with *Arr stack and Jellyfin.
Introduction: Democratizing Your Media Library
Imagine this scenario: You run a Jellyfin server for your family. Your spouse wants to watch “The Crown” but it’s not in your library. They text you. You manually search for it on Sonarr, select quality profiles, confirm the download, wait for it to complete, and notify them it’s ready. This happens three times a week.
Now imagine this: Your spouse opens a beautiful web interface, searches for “The Crown,” clicks “Request,” and receives a notification when it’s ready to watch. No texting you. No explaining Sonarr. No technical knowledge required. That’s Jellyseerr.
Jellyseerr is a fork of Overseerr (designed for Plex) that brings request management to Jellyfin and Emby. It provides a Netflix-like discovery interface where users can browse, search, and request content. Behind the scenes, it communicates with Sonarr and Radarr to automatically download approved requests, then notifies users when content becomes available.
By the end of this guide, you’ll have:
- Jellyseerr installed via Docker with proper configuration
- Integration with Jellyfin/Plex for authentication and library detection
- Sonarr and Radarr connected for automatic downloads
- User management with request quotas and permissions
- Notification systems (Discord, email, Telegram, etc.)
- Request approval workflows for controlled content acquisition
- Mobile-friendly interface for requesting content anywhere
Whether you share your media server with family, roommates, or friends, Jellyseerr transforms the request process from tedious to effortless.
What is Jellyseerr?
The Request Management Problem
When you share a media server, content requests create friction:
Without Request Management:
- User: “Can you add The Mandalorian?”
- Admin: “Which season? What quality?”
- User: “I don’t know, just the show?”
- Admin: Opens Sonarr, searches, configures, monitors
- Admin: Two hours later “It’s ready”
- User: “What’s ready?”
With Jellyseerr:
- User: Opens Jellyseerr, searches, clicks “Request”
- Jellyseerr: Automatically sends to Sonarr
- Sonarr: Downloads via configured quality profile
- Jellyseerr: Detects completion, notifies user
- User: Watches immediately in Jellyfin
Core Features
For Users (Non-Technical):
- Netflix-style discovery interface with posters, descriptions, trailers
- Search across movies and TV shows
- See what’s already available vs. what can be requested
- Track request status (pending, approved, downloading, available)
- Receive notifications when content is ready
- Mobile-responsive design for requests on the go
For Administrators:
- Approve or auto-approve requests based on user permissions
- Set request quotas (e.g., 10 movies per week per user)
- Integration with Sonarr (TV) and Radarr (movies)
- Support for 4K instances (separate Radarr4K, Sonarr4K)
- Detailed request history and analytics
- User management with granular permissions
For Automation:
- Automatic quality profile selection
- Root folder assignment per user or globally
- Release monitoring and status updates
- Webhook notifications to Discord, Slack, Telegram
- Email notifications for approvals and completions
- API for custom integrations
Jellyseerr vs. Overseerr
Overseerr (original project):
- Designed for Plex
- Mature, stable, larger community
- Some Plex-specific features
Jellyseerr (fork):
- Added Jellyfin support
- Added Emby support (limited)
- Nearly feature-parity with Overseerr
- Active development, responsive to Jellyfin community
If you use Jellyfin, use Jellyseerr. If you use Plex, either works (Overseerr has longer track record). If you use both Jellyfin and Plex simultaneously, Jellyseerr supports both.
Prerequisites
Required Services
Before installing Jellyseerr, you need:
1. Media Server:
- Jellyfin (recommended) OR Plex
- Admin access to create API keys
- Library already configured
2. Download Management:
- Radarr (for movies) - installed and configured
- Sonarr (for TV shows) - installed and configured
- At least one download client (qBittorrent, Transmission, NZBGet, etc.)
3. Infrastructure:
- Docker and Docker Compose installed
- Network access to all services
- 100MB free disk space for Jellyseerr
- Reverse proxy (optional, for HTTPS and custom domain)
Recommended Setup
Typical Stack:
Jellyfin (port 8096) ← Media playback
Radarr (port 7878) ← Movie management
Sonarr (port 8989) ← TV management
qBittorrent (port 8080) ← Download client
Jellyseerr (port 5055) ← Request interface All running in Docker containers on the same network for easy communication.
Knowledge Assumptions
You should be comfortable with:
- Basic Docker commands
- Accessing web UIs
- Finding API keys in Jellyfin/Radarr/Sonarr
- Editing YAML files (docker-compose)
If you need to set up Radarr/Sonarr first, see our *arr Stack Guide.
Installation
Docker Compose Deployment (Recommended)
We’ll use Docker Compose for easy management and updates.
Step 1: Create Directory Structure
# Create Jellyseerr directory
mkdir -p ~/jellyseerr
cd ~/jellyseerr
# Create config directory
mkdir -p config Step 2: Create docker-compose.yml
version: '3.8'
services:
jellyseerr:
image: fallenbagel/jellyseerr:latest
container_name: jellyseerr
environment:
- LOG_LEVEL=info
- TZ=America/New_York # Change to your timezone
ports:
- 5055:5055
volumes:
- ./config:/app/config
restart: unless-stopped Important Configuration Notes:
- Timezone: Replace
America/New_Yorkwith your timezone (TZ database) - Port 5055: Default Jellyseerr port, change if you have conflicts
- LOG_LEVEL: Options are
debug,info,warn,error
Step 3: Deploy Container
# Start Jellyseerr
docker compose up -d
# Verify it's running
docker compose ps
# Expected output:
# NAME IMAGE STATUS
# jellyseerr fallenbagel/jellyseerr:latest Up 10 seconds
# Check logs for any errors
docker compose logs -f jellyseerr Step 4: Access Web Interface
Open your browser and navigate to:
http://your-server-ip:5055 You should see the Jellyseerr welcome screen prompting you to begin setup.
Standalone Docker Deployment
If you prefer standalone Docker without Compose:
docker run -d --name jellyseerr -e LOG_LEVEL=info -e TZ=America/New_York -p 5055:5055 -v ~/jellyseerr/config:/app/config --restart unless-stopped fallenbagel/jellyseerr:latest Initial Configuration
Setup Wizard
When you first access Jellyseerr, you’ll go through a guided setup wizard.
Screen 1: Welcome
Click Get Started to begin configuration.
Screen 2: Media Server Selection
Choose your media server:
- Use Jellyfin (recommended if you use Jellyfin)
- Use Plex
- Use Emby
For this guide, we’ll configure Jellyfin. Plex configuration is similar.
Screen 3: Jellyfin Server Configuration
Jellyfin Server URL:
- Internal (same Docker network):
http://jellyfin:8096 - External/Host network:
http://192.168.1.100:8096(use your Jellyfin IP)
Getting the Jellyfin API Key:
- Open Jellyfin
- Go to Dashboard → API Keys
- Click + (New API Key)
- App name:
Jellyseerr - Click OK
- Copy the API key (you can’t view it again)
Paste API key into Jellyseerr
Sign-In URL (Optional): Leave blank for default Jellyfin login, or specify custom URL if using reverse proxy.
Click Save Changes.
Screen 4: Library Sync
Jellyseerr will connect to Jellyfin and fetch your libraries.
Select which libraries to monitor:
- Check Movies library
- Check TV Shows library
- Uncheck personal libraries (home videos, photos, etc.)
Click Continue.
Initial library scan begins (may take 1-5 minutes depending on library size).
Screen 5: Radarr Configuration
Now we’ll connect Radarr for movie requests.
Enable Radarr: Toggle ON
Connection Details:
- Default Server: Checked (if this is your only Radarr instance)
- 4K Server: Unchecked (we’ll cover 4K later)
- Server Name:
Radarr(or custom name) - Hostname or IP:
radarr(Docker internal) or192.168.1.100 - Port:
7878(Radarr default) - Use SSL: Usually unchecked for internal connections
- API Key: Found in Radarr → Settings → General → Security → API Key
Test Connection: Click Test button
Should show green checkmark: “Radarr connection successful”
Radarr Configuration:
- Quality Profile: Select default (e.g., “HD Balanced”)
- Root Folder:
/data/media/movies(or your Radarr movie path) - Minimum Availability:
Released(download when available)
Click Add Server.
Screen 6: Sonarr Configuration
Similar to Radarr, now for TV shows.
Enable Sonarr: Toggle ON
Connection Details:
- Default Server: Checked
- 4K Server: Unchecked
- Server Name:
Sonarr - Hostname or IP:
sonarr(Docker internal) or192.168.1.100 - Port:
8989(Sonarr default) - Use SSL: Unchecked (for internal)
- API Key: From Sonarr → Settings → General → Security → API Key
Test Connection: Click Test
Sonarr Configuration:
- Quality Profile: Select default (e.g., “TV Fast & Upgrade”)
- Root Folder:
/data/media/tv(your Sonarr TV path) - Language Profile: English (or your preference)
- Anime Quality Profile: Select if you watch anime
- Anime Root Folder: Separate folder for anime (optional)
- Season Folder: Checked (organize episodes by season)
Click Add Server.
Screen 7: Admin Account
Create your administrator account:
Import Jellyfin Users: Checked (recommended)
This imports existing Jellyfin users. You’ll see a list of Jellyfin accounts.
Select your admin account from the list.
Set Email (Optional): For password reset and notifications
Set Locale/Region: For content discovery (affects TMDb metadata)
Click Finish Setup.
Jellyseerr redirects you to the main interface!
User Management
Importing Jellyfin Users
Jellyseerr can automatically import users from Jellyfin, allowing them to log in with their existing Jellyfin credentials.
Step 1: Enable User Import
Settings (gear icon) → Jellyfin → Sign-In Settings
- Enable New Jellyfin Sign-In: Checked
- Enable Jellyfin User Import: Checked
Click Save Changes.
Step 2: Sync Users
Settings → Users
Click Import Jellyfin Users button (if not auto-synced during setup)
You’ll see all Jellyfin users listed.
User Permissions
Each user has configurable permission levels:
Permission Types:
User (Default)
- Can request content
- See their own requests
- Limited to request quotas
Request Manager
- All User permissions
- Can view all requests
- Can approve/decline requests
- Cannot modify settings
Administrator
- Full access
- Can modify all settings
- User management
- No request quotas
Setting User Permissions:
Settings → Users → Select a user
Permissions Section:
- Admin: Full control
- Manage Requests: Can approve requests
- Manage Issues: Can handle reported problems
- View Recent Requests: See all recent activity
- Auto Approve (Movies): User’s movie requests auto-approved
- Auto Approve (TV): User’s TV requests auto-approved
- Request 4K (Movies/TV): Can request 4K versions
Request Limits:
- Movie Request Limit: Number of movies per period (e.g., 10)
- Series Request Limit: Number of series per period (e.g., 5)
- Limit Duration:
Day,Week, orMonth
Example Configuration:
For a trusted family member:
- Auto Approve Movies: Checked
- Auto Approve TV: Checked
- Movie Limit: 20 per month
- Series Limit: 10 per month
For a casual friend:
- Auto Approve: Unchecked (requires admin approval)
- Movie Limit: 5 per month
- Series Limit: 2 per month
Click Save after configuring.
Local User Accounts
You can also create local Jellyseerr accounts (not linked to Jellyfin):
Settings → Users → Create Local User
- Email: User’s email address
- Username: Login username
- Password: Set initial password
- Permissions: Configure as above
Click Create.
User receives email invitation (if email configured).
Request Workflows
User Request Process
From User Perspective:
User logs in to Jellyseerr with Jellyfin credentials
Browse or search for content
- Popular movies/TV shows displayed on home page
- Search bar for specific content
- Filter by genre, year, etc.
Click on desired content
- View details: description, cast, trailer, ratings
- See if already available in Jellyfin (green “Available” badge)
- See if already requested (yellow “Pending” badge)
Click “Request” button
Request Modal appears:
For Movies:
- Select quality profile (if allowed)
- Select 4K option (if permitted)
- Add note to admin (optional)
For TV Shows:
- Select all seasons or specific seasons
- Select quality profile
- Add note
Submit request
Confirmation:
- “Request submitted successfully”
- Can view status in Requests page
Notifications:
- When admin approves (if manual approval required)
- When download starts
- When content becomes available
Admin Approval Process
For Auto-Approved Requests:
No action needed. Jellyseerr immediately sends to Radarr/Sonarr.
For Manual Approval Requests:
Admin receives notification (email, Discord, etc.)
Navigate to Requests page
View pending requests:
- See requester name
- Content details
- Notes from requester
Review request:
- Click on request for full details
- Check if content meets quality standards
- Verify storage space available
Approve or Decline:
- Approve: Jellyseerr sends to Radarr/Sonarr automatically
- Decline: Select reason (optional), user receives notification
Bulk Actions:
Select multiple requests → Approve Selected or Decline Selected
Request Status Tracking
Status Indicators:
- Pending: Awaiting admin approval
- Approved: Sent to Radarr/Sonarr, waiting for download
- Partially Available: Some episodes/seasons available
- Available: Fully downloaded and in Jellyfin library
- Declined: Admin rejected request
- Failed: Technical error (check logs)
Viewing Request Status:
Users can check Requests page to see:
- All their pending/approved requests
- Estimated completion time (based on download speed)
- Why a request was declined (if admin provided reason)
Notifications Configuration
Jellyseerr supports extensive notification options to keep users informed.
Email Notifications
Step 1: Configure Email Settings
Settings → Notifications → Email
Enable Agent: Toggle ON
SMTP Configuration:
Using Gmail:
SMTP Host: smtp.gmail.com
SMTP Port: 587
Encryption Method: STARTTLS
Username: [email protected]
Password: App password (not regular password)
From Email: [email protected]
From Name: Jellyseerr Getting Gmail App Password:
- Google Account → Security
- 2-Step Verification (must be enabled)
- App passwords → Generate
- Use generated password in Jellyseerr
Using Custom SMTP (e.g., Mailgun, SendGrid):
SMTP Host: smtp.mailgun.org
SMTP Port: 587
Encryption Method: STARTTLS
Username: your-mailgun-user
Password: your-mailgun-password Test Configuration: Click Test button
Should send test email to admin address.
Click Save Changes.
Step 2: Enable Email Notification Types
For each notification type, toggle which events trigger emails:
Media Requested:
- Admin Email: Checked (notify admins of new requests)
- User Email: Unchecked (user knows they requested)
Media Approved:
- User Email: Checked (notify requester)
Media Available:
- User Email: Checked (notify when ready to watch)
Media Failed:
- Admin Email: Checked (notify admins of failures)
Discord Notifications
Step 1: Create Discord Webhook
- Open Discord server
- Server Settings → Integrations → Webhooks
- Click New Webhook
- Name:
Jellyseerr - Channel: Select notification channel (e.g., #media-requests)
- Copy Webhook URL
Step 2: Configure in Jellyseerr
Settings → Notifications → Discord
Enable Agent: Toggle ON
Webhook URL: Paste Discord webhook URL
Username: Jellyseerr (appears as bot name in Discord)
Avatar URL: (Optional) Custom bot avatar
Notification Types:
Toggle which events post to Discord:
- Media Requested: Checked
- Media Approved: Checked
- Media Available: Checked
- Media Declined: Checked
- Media Failed: Checked
Test: Click Send Test Notification
Check Discord channel for test message.
Click Save Changes.
Telegram Notifications
Step 1: Create Telegram Bot
- Open Telegram, search for
@BotFather - Send
/newbot - Follow prompts to name your bot
- Copy bot token (looks like
123456789:ABCdefGHIjklMNOpqrsTUVwxyz)
Step 2: Get Chat ID
- Start conversation with your new bot (send any message)
- Visit:
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates - Find
"chat":{"id":123456789}in response - Copy chat ID
Step 3: Configure in Jellyseerr
Settings → Notifications → Telegram
Enable Agent: Toggle ON
Bot API Token: Paste bot token from BotFather
Chat ID: Paste chat ID from getUpdates
Send Silently: Checked (no sound notification)
Notification Types: Toggle as desired
Test: Click Send Test Notification
Check Telegram for test message.
Webhook Notifications (Advanced)
For custom integrations, use webhooks.
Settings → Notifications → Webhook
Webhook URL: https://your-automation-server.com/jellyseerr-webhook
Authorization Header: (Optional) Bearer your-secret-token
JSON Payload: Automatically sent with event details
Example Payload (Media Requested):
{
"notification_type": "MEDIA_REQUESTED",
"event": "media.requested",
"subject": "New Request: The Matrix",
"message": "User requested The Matrix (1999)",
"media": {
"media_type": "movie",
"tmdbId": 603,
"tvdbId": null,
"status": "pending"
},
"request": {
"request_id": 42,
"requestedBy_username": "alice"
}
} Use this for custom automation, logging, or integration with home automation systems.
Advanced Configuration
4K Request Management
Many users maintain separate 4K libraries with higher quality requirements. Jellyseerr supports dual Radarr/Sonarr instances.
Step 1: Deploy 4K Radarr Instance
Create separate Radarr container for 4K:
radarr-4k:
image: linuxserver/radarr:latest
container_name: radarr-4k
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
ports:
- "7879:7878" # Different port
volumes:
- ./radarr-4k/config:/config
- /data:/data
restart: unless-stopped Configure with:
- Root folder:
/data/media/movies-4k - Quality profile: 4K/2160p settings
- Custom format scores favoring Remux/high-quality releases
Step 2: Add 4K Server to Jellyseerr
Settings → Radarr
Click Add Radarr Server
- Default Server: Unchecked
- 4K Server: Checked
- Server Name:
Radarr 4K - Hostname:
radarr-4k(or IP) - Port:
7879 - API Key: From Radarr 4K instance
- Quality Profile: 4K quality profile
- Root Folder:
/data/media/movies-4k
Test and Save.
Repeat for Sonarr 4K if desired.
Step 3: Enable 4K Requests for Users
Settings → Users → Select user
Permissions:
- Request 4K Movies: Checked
- Request 4K Series: Checked
Now when users request content, they see checkbox:
- Request in 4K
Checking this routes to 4K Radarr/Sonarr instance instead of regular.
Quality Profile Override
Allow users to select quality profiles on request (advanced feature).
Settings → Radarr (or Sonarr)
Server Settings:
- Enable Quality Profile Selection: Checked
Now users see dropdown during request:
- Quality:
[HD Balanced | 4K UHD | SD Only]
Useful for giving power users more control.
External Access with Reverse Proxy
For accessing Jellyseerr from outside your network with HTTPS.
Using Traefik:
Add to docker-compose.yml:
jellyseerr:
image: fallenbagel/jellyseerr:latest
container_name: jellyseerr
environment:
- LOG_LEVEL=info
- TZ=America/New_York
volumes:
- ./config:/app/config
networks:
- web
labels:
- "traefik.enable=true"
- "traefik.http.routers.jellyseerr.rule=Host(`jellyseerr.yourdomain.com`)"
- "traefik.http.routers.jellyseerr.entrypoints=websecure"
- "traefik.http.routers.jellyseerr.tls.certresolver=letsencrypt"
- "traefik.http.services.jellyseerr.loadbalancer.server.port=5055"
restart: unless-stopped Access via: https://jellyseerr.yourdomain.com
Using Nginx:
server {
listen 443 ssl http2;
server_name jellyseerr.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/jellyseerr.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/jellyseerr.yourdomain.com/privkey.pem;
location / {
proxy_pass http://localhost:5055;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
} Update Jellyseerr Base URL:
Settings → General → Application URL
Set to: https://jellyseerr.yourdomain.com
Save and restart Jellyseerr.
Issue Reporting
Users can report problems with media:
Enable Issue Reporting:
Settings → General → Enable Issue Reporting: Checked
Users can now report:
- Video playback issues
- Audio sync problems
- Subtitle errors
- Wrong media (incorrect match)
Admins view issues:
Issues page → See all reported problems with details
Useful for quality control and user feedback.
Troubleshooting
Jellyseerr Can’t Connect to Jellyfin
Symptoms:
- “Failed to connect to Jellyfin server”
- Timeout errors during setup
Solutions:
1. Verify Jellyfin URL:
# From Jellyseerr container
docker exec jellyseerr curl http://jellyfin:8096/health
# Should return 200 OK 2. Check API Key:
- Regenerate in Jellyfin: Dashboard → API Keys → Delete old → Create new
- Verify no extra spaces when pasting
3. Network connectivity:
# Ensure same Docker network
docker network inspect <network-name>
# Both Jellyfin and Jellyseerr should be listed 4. Firewall:
- Ensure port 8096 not blocked
- Check Docker firewall rules
Requests Not Appearing in Radarr/Sonarr
Symptoms:
- User requests content
- Nothing happens in Radarr/Sonarr
- Request stuck in “Pending” or “Approved”
Diagnostics:
Check Jellyseerr Logs:
docker logs jellyseerr --tail 50
# Look for errors like:
# "Failed to add movie to Radarr"
# "Radarr API returned error" Verify Radarr/Sonarr Connection:
Settings → Radarr → Click Test
Should show green checkmark.
Common Issues:
Wrong API Key:
- Regenerate in Radarr: Settings → General → Security → Regenerate API Key
- Update in Jellyseerr
Wrong Root Folder:
- Radarr Settings → Media Management → Root Folders
- Ensure path in Jellyseerr matches exactly
- Case-sensitive on Linux
Quality Profile Doesn’t Exist:
- Radarr Settings → Profiles
- Ensure quality profile selected in Jellyseerr exists in Radarr
- Re-select profile in Jellyseerr settings
Network Issues:
# Test from Jellyseerr container
docker exec jellyseerr curl http://radarr:7878/api/v3/system/status?apiKey=YOUR_API_KEY
# Should return JSON with Radarr version info Users Can’t Login
Symptoms:
- “Invalid credentials” error
- Login page loops
Solutions:
Jellyfin User Import Not Enabled:
Settings → Jellyfin → Enable New Jellyfin Sign-In: Checked
User Not Imported:
Settings → Users → Import Jellyfin Users button
Case-Sensitive Usernames:
- Jellyfin usernames are case-sensitive
- Ensure exact match (e.g., “Alice” ≠ “alice”)
Jellyfin Password Changed:
- User must use current Jellyfin password
- If changed in Jellyfin, use new password in Jellyseerr
Local Account vs. Jellyfin Account:
- Verify user is logging in with correct account type
- Jellyfin users: use Jellyfin credentials
- Local users: use Jellyseerr-created credentials
Notifications Not Sending
Email Not Working:
Test SMTP:
# From Jellyseerr logs
docker logs jellyseerr | grep -i smtp
# Look for connection errors Common Fixes:
- Gmail: Use App Password, not regular password
- Enable “Less secure app access” (if using old Gmail)
- Verify SMTP port (587 for STARTTLS, 465 for SSL)
- Check firewall blocking port 587/465
Discord Webhook Not Working:
- Verify webhook URL is correct (should contain
/api/webhooks/) - Ensure Discord channel still exists
- Regenerate webhook in Discord if suspicious
Test Individual Notifications:
Settings → Notifications → Discord → Send Test Notification
Check Discord for message.
Best Practices
User Onboarding
For Family/Friends:
Create dedicated “How to Request” guide:
- Screenshot walkthrough
- Share via Google Docs or Notion
- Include Jellyseerr URL
Set reasonable quotas:
- Start conservative (5-10 movies/month)
- Increase based on behavior
- Prevents abuse/storage issues
Enable auto-approval for trusted users:
- Saves admin time
- Builds trust
- Monitor initially
Configure notifications:
- Users love knowing when content is ready
- Email + Discord/Telegram recommended
- Set expectations (downloads may take 1-6 hours)
Admin Workflows
Daily Tasks:
- Check pending requests (if not auto-approved)
- Review any failed downloads
- Monitor storage space
Weekly Tasks:
- Review request history/analytics
- Adjust quotas based on usage
- Check for Jellyseerr updates
Monthly Tasks:
- Audit user permissions
- Review quality profiles
- Clean up declined/old requests
Security
Restrict External Access:
- Don’t expose Jellyseerr to internet without authentication
- Use reverse proxy with SSL
- Consider VPN-only access (Tailscale)
Rate Limiting: Settings → General → Enable Rate Limiting: Checked
Prevents brute-force login attempts.
Regular Backups:
# Backup Jellyseerr config
docker exec jellyseerr tar czf /app/config/backup.tar.gz /app/config/db
docker cp jellyseerr:/app/config/backup.tar.gz ~/jellyseerr-backup-$(date +%F).tar.gz Update Regularly:
# Pull latest image
docker compose pull jellyseerr
# Restart with new image
docker compose up -d jellyseerr Integration with Other Tools
Tautulli Integration
Tautulli tracks Jellyfin/Plex watch history. Combine with Jellyseerr for powerful analytics.
Use Case: Identify requested content that’s never watched.
Setup:
- Install Tautulli (monitors Jellyfin)
- Compare Tautulli watch data with Jellyseerr request data
- Identify unused content for cleanup
Homepage/Dashy Integration
Add Jellyseerr to your homelab dashboard.
Homepage.dev Widget:
- Media Requests:
icon: jellyseerr.png
href: https://jellyseerr.yourdomain.com
description: Request Movies & TV Dashy:
- title: Jellyseerr
icon: fas fa-film
url: http://192.168.1.100:5055 Automation Scripts
Auto-Delete Old Requests:
Jellyseerr doesn’t auto-purge old requests. Create cleanup script:
#!/bin/bash
# Jellyseerr API cleanup
JELLYSEERR_URL="http://localhost:5055"
API_KEY="your-jellyseerr-api-key"
# Delete requests older than 90 days and available
curl -X DELETE "$JELLYSEERR_URL/api/v1/request/cleanup?days=90" -H "X-Api-Key: $API_KEY" Run monthly via cron.
Conclusion
Jellyseerr transforms shared media servers from an administrative burden into a delightful, user-friendly service. Your users get a Netflix-quality browsing experience, while you maintain full control over what gets added to your library.
What You’ve Built:
- Self-service request system eliminating manual work
- Integration with Sonarr/Radarr for automatic downloads
- Notification system keeping everyone informed
- Granular permission system with quotas and approvals
- Production-ready deployment with monitoring and backups
Key Takeaways:
- Auto-approve trusted users to minimize admin overhead
- Set quotas to prevent storage exhaustion
- Configure notifications for better user experience
- Use reverse proxy for secure remote access
- Regular updates ensure security and new features
Next Steps:
- Fine-tune quality profiles based on actual requests
- Implement 4K instances if you have storage
- Set up analytics to understand request patterns
- Create user documentation for your specific setup
- Explore Jellyseerr API for custom integrations
For families, roommates, or any shared media environment, Jellyseerr is the missing piece that makes self-hosted streaming competitive with commercial services. Your users get the convenience of Netflix requests, while you maintain the privacy and control of self-hosting.
Additional Resources
Official Documentation
- Jellyseerr GitHub
- Jellyseerr Documentation
- Overseerr Docs (many features identical)
Community Resources
Related Guides
- Jellyfin Setup Guide
- *Arr Stack Guide - Sonarr/Radarr setup
- Traefik Reverse Proxy
Document Version: 1.0 Last Updated: December 16, 2025 Word Count: ~5,400 words