What it is
Overseerr is the request manager for Plex. Users (me, plus friends with shared library access) browse a TMDB-style catalogue inside Overseerr, click "request" on the things they want, and Overseerr submits those requests into Plex's request list. From there, downstream automation actually fetches and indexes them.
Why I run it
Without Overseerr, "I want to watch X" means I either fetch it manually or someone messages me. With Overseerr, it's a tab in the same Plex SSO session and the request is one click away. Lower friction for the people sharing my library, less DM-as-ticket-tracker for me.
The other thing it gives me is the request history — a record of what was asked for, what got fulfilled, and how long it took. Useful for noticing patterns in what people actually want.
How I use it
Authentication is Plex SSO — the same Plex account that owns the server is the Overseerr admin, and any user invited to share my Plex library can log in with their Plex account. No separate user management.
Requests submitted in Overseerr go into Plex's request list, where they're consumed by Riven downstream. I haven't wired up Sonarr/Radarr; the homelab uses a different fetching pipeline. The homepage widget shows pending request counts so I can notice when something's waiting on me to approve.
Setup notes
- Host: the media LXC, in the
media-kitchenstack. - Reverse proxy: yes.
- Backups: PBS captures the LXC. Overseerr's request state is in a small SQLite DB in the config directory.
- Update cadence: manual.
Runbook
- Healthy looks like: dashboard loads, Plex SSO works, requesting an item shows up immediately as pending.
- Homepage widget shows "API Error": API key in the homepage env is stale. Regenerate or copy from Overseerr → Settings → General → API Key.
- Plex SSO login fails: Overseerr authenticates against
plex.tv, not the local Plex server. Confirm the container has internet access (curlhttps://plex.tvfrom inside it), that the account is on the Plex server's user list, and that Overseerr's stored Plex token is still valid (Settings → Plex → Test). - Approved requests aren't being fetched: gap is on the downstream consumer side. Verify the request is visible in Plex's request list, then check Riven's logs.
- Where logs live: Settings → Logs in the Overseerr UI;
docker logs overseerron the host.