Skip to content

arediss/Oscarr

Repository files navigation

Oscarr

Oscarr

A modern, self-hosted media request & management platform.
Radarr & Sonarr are the source of truth. Oscarr is the interface.

Version License PRs Welcome Discord
Quality Gate Security Rating Reliability Rating Maintainability Rating

Oscarr Preview

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.


The idea

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.

Core capabilities

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_KEY env 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.

Seerr-compatible API

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.


Installation

Quick Start with Docker

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 -d

Open http://localhost:3456 and follow the setup wizard.

network_mode: host lets Oscarr reach Radarr/Sonarr/Plex on the local network. If OSCARR_SECRET_KEY is 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.

Manual / development install

See docs/installation.md for bare-metal, dev mode, full env-var reference, and the project structure walkthrough.


Plugins

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.

Featured plugins

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.


Verifying image provenance

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.com

Any image without a valid signature from this workflow is not an official Oscarr release.


Contributing

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.

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.


License

MIT

About

A modern, self-hosted media request & management platform. Radarr & Sonarr are the source of truth. Oscarr is the interface.

Topics

Resources

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors