VaultRequestrr

VaultRequestrr

Docker app from vancityactivist's Repository

Overview

A Discord bot that requests movies and TV shows through Seerr (the Overseerr/Jellyseerr successor). The first time a user requests something, the bot asks for their Plex username/email and links their Discord account to their Seerr user, so every request is attributed to them and their per-user quotas/limits are respected. The link is stored locally (SQLite) and written back into Seerr notification settings. Features: /movie and /tv search with availability indicators and season selection; /quota shows remaining limits and reset time; DM notifications when a request becomes available or is declined; and an optional password-protected admin dashboard (set a Dashboard Password to enable it on port 5056) for managing links, viewing activity, and toggling settings.

VaultRequestrr

CI Docker License: MIT Python 3.12 GHCR Buy Me a Coffee

A Discord bot for requesting movies and TV shows through Seerr (the unified successor to Overseerr/Jellyseerr), with self-service Plex account linking so that each user's requests are attributed to their Seerr account and their per-user quotas/limits are respected.

📖 Full documentation lives on the wiki — setup guides, the full configuration reference, feature deep-dives, and troubleshooting.

Why this exists

Tools like requestrr attribute a request to the right Seerr user by matching a Discord ID that an admin has to hand-enter into each Seerr user's notification settings. After the Overseerr → Seerr migration those IDs are typically empty, so every request falls through to a single default user (or fails) and per-user quotas stop working.

VaultRequestrr fixes this without any admin busywork: the first time a user requests something, the bot asks for their Plex username/email, resolves it to a Seerr user, remembers the link, and from then on submits every request as that user.

Features

  • Per-user attribution — quotas and permissions come from each user's own Seerr account (Account Linking)
  • Requests with availability at a glance — ✅ / 🟡 / ⏳ / 🕒 badges on search results and the season picker (Requests and Approvals)
  • Approval workflow — pending requests DM the admins with persistent Approve/Decline buttons, plus /pending and a dashboard queue
  • Issue reporting with automated re-grab — users report bad video/audio/subtitles; one button blocklists the bad release, grabs a replacement, and watches it through import (Issue Reporting and Re-grab)
  • DM notifications — on availability, decline, and issue resolution — even for requests made in the Seerr web UI (Notifications)
  • Plex invites — linked users can invite friends, with per-user caps (Plex Invites)
  • Anime routing/anime targets dedicated anime Sonarr/Radarr instances (Anime Requests)
  • Admin dashboard — health, links, activity, approvals, issues, invites, live logs, and live-editable settings (Admin Dashboard)

Commands

Command Description
/movie <title> Search for and request a movie
/tv <title> Search for and request a TV show (with season selection)
/anime <title> Search anime and route it to the anime library (when configured)
/issue <title> Report a Video/Audio/Subtitle/Other problem with media on the server
/invite Invite a friend to Plex by email (linked users; admin-enabled)
/quota Show your remaining request quota and when it resets
/myrequests List your recent requests and their current status
/pending (Admin) Review, approve, and decline requests awaiting approval
/linkstatus Show which Seerr account you're linked to
/unlink Remove your link (you'll be asked again on the next request)

Quick start

  1. Create a Discord bot at https://discord.com/developers/applications, copy the bot token, and invite it with the applications.commands and bot scopes (no privileged intents needed).
  2. Grab a Seerr admin API key (Seerr → Settings → General → API Key).
  3. Configure and run:
cp .env.example .env
# edit .env: DISCORD_TOKEN, SEERR_URL, SEERR_API_KEY
# set DISCORD_GUILD_ID for instant slash-command registration
docker compose up -d --build

Or run the published image directly:

docker run -d --name vaultrequestrr --restart unless-stopped \
  -e DISCORD_TOKEN=... \
  -e SEERR_URL=http://10.10.0.10:5055 \
  -e SEERR_API_KEY=... \
  -e DISCORD_GUILD_ID=... \
  -v /path/to/data:/data \
  ghcr.io/vancityactivist/vaultrequestrr:latest

Set WEB_PASSWORD (and publish port 5056) to enable the admin dashboard.

More options — bare Python and a ready-made Unraid template — are on the Installation page, and every environment variable is documented in the Configuration reference.

Development

pip install -r requirements.txt pytest
pytest

See Development for the project layout and CI/release notes.

Install VaultRequestrr on Unraid in a few clicks.

Find VaultRequestrr in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for VaultRequestrr Review the template variables and paths Click Install

Related apps

Details

Repository
ghcr.io/vancityactivist/vaultrequestrr:latest
Last Updated2026-08-23
First Seen2026-06-16

Runtime arguments

Web UI
http://[IP]:[PORT:5056]/
Network
bridge
Shell
sh
Privileged
false

Template configuration

Data DirectoryPathrw

Stores the SQLite database of Discord↔Seerr account links. Keep this on persistent storage.

Target
/data
Default
/mnt/user/appdata/vaultrequestrr
Value
/mnt/user/appdata/vaultrequestrr
Discord Bot TokenVariable

Bot token from https://discord.com/developers/applications (Bot tab).

Target
DISCORD_TOKEN
Seerr URLVariable

Base URL of your Seerr instance, including port. Use your LAN address, e.g. http://10.10.0.10:5055

Target
SEERR_URL
Default
http://192.168.1.10:5055
Value
http://192.168.1.10:5055
Seerr API KeyVariable

Seerr API key (Settings → General → API Key). Must belong to an admin user.

Target
SEERR_API_KEY
Discord Guild IDVariable

Optional: your Discord server ID. Set it so slash commands register instantly (otherwise global registration can take up to ~1 hour). Enable Developer Mode in Discord, right-click the server icon → Copy Server ID.

Target
DISCORD_GUILD_ID
Require LinkingVariable

Require users to link a Plex account before their first request (recommended: true).

Target
REQUIRE_LINKING
Default
true
Value
true
Default Seerr User IDVariable

Optional fallback Seerr user id used only when Require Linking is false.

Target
DEFAULT_SEERR_USER_ID
Log LevelVariable

DEBUG, INFO, WARNING, or ERROR.

Target
LOG_LEVEL
Default
INFO
Value
INFO
Dashboard PasswordVariable

Set a password to enable the admin web dashboard (view/manage links, activity, settings). Leave blank to disable the dashboard.

Target
WEB_PASSWORD
Dashboard PortPorttcp

Host port for the admin dashboard. Only used when a Dashboard Password is set.

Target
5056
Default
5056
Value
5056
Notify When AvailableVariable

DM the requester when their movie/season becomes available.

Target
NOTIFY_ON_AVAILABLE
Default
true
Value
true
Notify When DeclinedVariable

DM the requester when an admin declines their request.

Target
NOTIFY_ON_DECLINED
Default
true
Value
true
Notify When Issue ResolvedVariable

DM the reporter when their reported issue is marked resolved.

Target
NOTIFY_ON_ISSUE_RESOLVED
Default
true
Value
true
Poll Interval (seconds)Variable

How often to poll Seerr for request status changes (0 disables notifications).

Target
POLL_INTERVAL_SECONDS
Default
120
Value
120