Overview
Discover what makes Seerr powerful
Seerr (formerly Jellyseerr) is a lightweight, self‑hosted request manager that sits between your media server (Jellyfin, Plex, or Emby) and automated downloaders such as Sonarr and Radarr. From a developer’s perspective, it is essentially a micro‑service that exposes a REST API and a GraphQL‑style UI while delegating media discovery to the underlying server’s own APIs. The core idea is simple: users submit requests for missing titles, and admins approve or deny them, triggering the appropriate downloader to fetch the content. This tight coupling is achieved through a combination of OAuth2 authentication against the media server and webhook hooks that notify Sonarr/Radarr once a request is approved.
Language & Framework
Database
Communication
Containerization
Overview
Seerr (formerly Jellyseerr) is a lightweight, self‑hosted request manager that sits between your media server (Jellyfin, Plex, or Emby) and automated downloaders such as Sonarr and Radarr. From a developer’s perspective, it is essentially a micro‑service that exposes a REST API and a GraphQL‑style UI while delegating media discovery to the underlying server’s own APIs. The core idea is simple: users submit requests for missing titles, and admins approve or deny them, triggering the appropriate downloader to fetch the content. This tight coupling is achieved through a combination of OAuth2 authentication against the media server and webhook hooks that notify Sonarr/Radarr once a request is approved.
Architecture
- Language & Framework: Written in TypeScript, the backend uses NestJS for modular routing and dependency injection, while the frontend is a Vue 3 SPA built with Vite. The separation of concerns allows developers to extend either layer independently.
- Database: Supports both SQLite (for quick, single‑node deployments) and PostgreSQL (recommended for production). The ORM layer is Prisma, which provides type‑safe query generation and migration tooling.
- Communication: RESTful endpoints (
/api/*) are documented via OpenAPI and can be consumed by external tooling. Webhooks are exposed for Sonarr/Radarr to post updates, and an optional GraphQL endpoint is available for advanced querying. - Containerization: A ready‑to‑run Docker image (
fallenbagel/jellyseerr) bundles the runtime, database migrations, and a simple init script. The image is multi‑arch (AMD64, ARM64) and pulls automatically from Docker Hub.
Core Capabilities
- User & Permission Management: Syncs users from the media server, supports granular roles (admin, approver, requester), and offers JWT‑based session handling.
- Request Lifecycle: CRUD operations on requests, with state transitions (
pending,approved,denied,in‑progress,completed). Each transition triggers corresponding webhooks to Sonarr/Radarr. - Library Scanning: Periodic scans of the media server’s library to maintain a cache of available titles, preventing duplicate requests.
- Notification Agents: Built‑in support for SMTP, Discord webhooks, and Slack. Developers can plug in custom agents by implementing a simple interface.
- Extensibility: A plugin system allows third‑party modules to register new media servers or downloaders. The core exposes hooks (
onRequestApproved,onUserCreated) that plugins can subscribe to.
Deployment & Infrastructure
- Self‑Hosting: No external dependencies beyond a relational database and the media server. The Docker image can be run behind Nginx/Traefik with TLS termination.
- Scalability: Stateless API servers can be horizontally scaled behind a load balancer; the database is the single source of truth, so replication is straightforward.
- Observability: Exposes Prometheus metrics (
/metrics) and structured logs (JSON) that integrate with Loki or ELK stacks.
Integration & Extensibility
- API: Full OpenAPI spec available at
/api-docs. Endpoints cover user management, request CRUD, media lookup, and webhook configuration. - Webhooks: Sonarr/Radarr can be configured to POST to
/webhook/sonarror/webhook/radarr. Developers can create custom endpoints for other downloaders. - Plugins: The plugin API is defined in
src/plugins/. Adding a new media server involves implementing an interface that fetches library items and authenticates users. - Customization: Theme variables, localization files (
.po), and a simple templating system for emails allow deep UI/UX tailoring without code changes.
Developer Experience
- Documentation: Comprehensive docs at
docs.seerr.dev, including API reference, deployment guides, and plugin tutorials. - Community: Active Discord channel, GitHub Discussions, and a public issue tracker. The project follows semantic versioning and publishes changelogs automatically.
- Testing: Jest for unit tests, Cypress for end‑to‑end UI tests. CI pipelines run on GitHub Actions and publish Docker images to Docker Hub.
Use Cases
- Home Media Labs – A developer sets up Seerr behind a reverse proxy, connects it to Jellyfin and Radarr, and gives family members a web portal to request new movies. The admin can approve requests from a phone app.
- Enterprise Media Management – An organization uses Plex for internal distribution and Radarr for automated ingestion; Seerr acts as a gatekeeper, ensuring only approved content is added.
- Custom Download Pipelines – A dev writes a plugin that forwards approved requests to an in‑house torrent client, bypassing Sonarr/Radarr entirely.
Advantages
- Performance: NestJS and Prisma provide a fast, type‑safe backend; the UI is single‑page and lazy‑loads components.
- Flexibility: The plugin architecture means you can swap out Sonarr for a custom downloader or add new media servers with minimal code.
- Licensing: MIT license encourages commercial use without copyleft obligations.
- Community & Support: Rapid issue resolution, active contributors, and extensive documentation reduce onboarding time.
In short, Seerr delivers a production‑ready request workflow that is easy to deploy, highly extensible, and fully documented—making it a compelling choice for developers who need an integrated media request layer without reinventing the wheel.
Open SourceReady to get started?
Join the community and start self-hosting Seerr today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
GraphHopper
Fast, memory‑efficient routing engine for maps and logistics
Bencher
Continuous benchmarking to detect performance regressions before they hit production
Immich
Self‑hosted photo and video manager
Homepage
Minimalist self‑hosted portal with dynamic backgrounds and quick links
Kriss Feed
Lightweight RSS reader without a database
SelfHostBlocks
Your privacy‑first, NixOS‑powered self‑hosting platform