A modern, self-hosted media request & management platform.
Radarr & Sonarr are the source of truth. Oscarr is the interface.
The idea · Core capabilities · Seerr API · Installation · Plugins · Contributing
Oscarr is a lightweight, plugin-first media request interface for Radarr and Sonarr.
It gives your users a clean way to request movies and shows without exposing the *arr admin panels. Authentication, routing, quality, notifications, and a polished UI are baked into the core — the rest grows through plugins.
If Seerr / Overseerr / Jellyseerr already fits your setup, keep using it. Oscarr is for people who want something more modular, hackable, and easier to extend around their own stack.
Oscarr sits on top of your existing media stack.
- Your users get a simple request interface.
- Your Radarr/Sonarr instances stay central to the request, download, and import workflow.
- Your setup grows through plugins instead of stuffing every feature into the core.
The philosophy:
- keep the core lean;
- avoid the "all-in-one" trap;
- let plugins handle specific integrations and custom workflows;
- make the app easy to self-host, customise, and extend.
What ships in the core, no plugin needed:
- Multi-instance Radarr & Sonarr with priority-based folder rules (genre, language, country, user, role, keyword tag) so a 4K library, an anime Sonarr and a regional Radarr coexist naturally.
- Quality selection for users — SD / HD / 4K / 4K HDR mapped to specific *arr profiles per service, with role-based gating.
- Multi-provider auth — Email + password, Plex OAuth, Jellyfin, Emby, Discord. Each provider toggleable independently.
- AES-256-GCM encryption at rest for stored service credentials. Master key derived from the
OSCARR_SECRET_KEYenv var via HKDF-SHA256. - Per-app API keys with revocation (Admin → Access → API Keys) so each external integration gets its own scoped credential.
- Seerr-compatible API at
/api/v1/*so existing Seerr-aware tools can talk to Oscarr without a custom integration. See below. - Customisable admin dashboard with drag-and-drop widgets and multi-tab layout.
- Notification matrix (Discord, Telegram, Email) per event type, plus VAPID web push.
- Backups with HMAC-signed archives and a re-auth gate before restore.
- i18n — EN + FR shipped, more locales contribution-friendly.
- PWA — installable, offline-tolerant.
Oscarr exposes an experimental Seerr-compatible API layer at /api/v1/*, so third-party tools that already speak Overseerr / Jellyseerr / Seerr can point to Oscarr without waiting for a native Oscarr integration.
Tested clients:
- Homarr (dashboard widget integration)
- Doplarr (Discord request bot)
Each external app gets its own revokable API key from Admin → Access → API Keys. Endpoints not yet implemented return a clean 501 Not Implemented so clients degrade gracefully instead of hanging.
Compatibility is best-effort and limited to the endpoints third-party clients commonly call (status, auth/me, search, request, media, movie/tv, settings, user). Oscarr is not affiliated with Overseerr, Jellyseerr or Seerr — this is interoperability, not a clone.
Generate a secret key (32-byte hex) — keep it safe, lose it = stored credentials unrecoverable:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"services:
oscarr:
image: ghcr.io/arediss/oscarr:latest
container_name: oscarr
restart: unless-stopped
network_mode: host
volumes:
- oscarr-data:/data
environment:
- JWT_SECRET=your_random_jwt_secret
- OSCARR_SECRET_KEY=your_64_hex_chars_key
volumes:
oscarr-data:docker compose up -dOpen http://localhost:3456 and follow the setup wizard.
network_mode: hostlets Oscarr reach Radarr/Sonarr/Plex on the local network. IfOSCARR_SECRET_KEYis missing or malformed, the container exits at boot with a friendly message + a freshly-generated key you can copy-paste.macOS Docker Desktop caveat: containers can't reach LAN IPs even with
--network host. Use Colima locally, or deploy to a Linux host for end-to-end testing.
See docs/installation.md for bare-metal, dev mode, full env-var reference, and the project structure walkthrough.
Plugins are optional. The base app works out of the box: connect Radarr/Sonarr, configure your users, request media.
Plugins exist so Oscarr can grow around your own setup — think browser extensions: install what you need, ignore the rest.
| Plugin | What it does |
|---|---|
| Leonarr | Discord bridge: link accounts, search TMDB, submit requests with slash commands, DMs when media is ready. |
| Subscription | Per-user subscription tiers with automatic role changes and expiration notifications. |
| Communication | Broadcast markdown announcements with scheduled publishing, role targeting, severity levels. |
| qBittorrent Manager | View qBittorrent queue and transfer stats inside Oscarr. |
| Radarr Manager | Library browser, quality monitoring, releases, analytics, file management. |
| Sonarr Manager | Series browser, season/episode drill-down, releases, analytics, file management. |
| Support | Ticket system extracted from the core in 0.8.0 — users open tickets, admins reply. |
Discover and install from Admin → Plugins → Discover. Each install shows the manifest's requested capabilities so you can review what the plugin is allowed to do.
Building a plugin? See docs/plugins.md.
Published ghcr.io/arediss/oscarr images are keyless-signed by the GitHub Actions release workflow (Sigstore / cosign). Each signed manifest also carries an SPDX SBOM.
cosign verify ghcr.io/arediss/oscarr:latest \
--certificate-identity-regexp 'https://github.com/arediss/Oscarr/.github/workflows/release.yml@.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.comAny image without a valid signature from this workflow is not an official Oscarr release.
Contributions welcome — bug reports, features, plugins, real-stack testing.
Before opening a large PR, please open an issue first so we can discuss the direction.
CONTRIBUTING.md— dev setup, conventions, PR expectationsCONTRIBUTORS.md— everyone who's shipped code to Oscarr
Development workflow — This project uses Claude Code as a dev assistant for code reviews, security audits, brainstorming, documentation, and issue/PR management. All architecture decisions and implementation are made by the maintainers — Claude serves as a quality and productivity tool, much like a linter or a CI pipeline.
MIT

