All apps · 0 apps
VaultRequestrr
Docker app from vancityactivist's Repository
Overview
Readme
View on GitHubVaultRequestrr
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
/pendingand 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 —
/animetargets 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
- Create a Discord bot at https://discord.com/developers/applications, copy the
bot token, and invite it with the
applications.commandsandbotscopes (no privileged intents needed). - Grab a Seerr admin API key (Seerr → Settings → General → API Key).
- 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.
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/vancityactivist/vaultrequestrr:latestRuntime arguments
- Web UI
http://[IP]:[PORT:5056]/- Network
bridge- Shell
sh- Privileged
- false
Template configuration
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
Bot token from https://discord.com/developers/applications (Bot tab).
- Target
- DISCORD_TOKEN
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 key (Settings → General → API Key). Must belong to an admin user.
- Target
- SEERR_API_KEY
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 users to link a Plex account before their first request (recommended: true).
- Target
- REQUIRE_LINKING
- Default
- true
- Value
- true
Optional fallback Seerr user id used only when Require Linking is false.
- Target
- DEFAULT_SEERR_USER_ID
DEBUG, INFO, WARNING, or ERROR.
- Target
- LOG_LEVEL
- Default
- INFO
- Value
- INFO
Set a password to enable the admin web dashboard (view/manage links, activity, settings). Leave blank to disable the dashboard.
- Target
- WEB_PASSWORD
Host port for the admin dashboard. Only used when a Dashboard Password is set.
- Target
- 5056
- Default
- 5056
- Value
- 5056
DM the requester when their movie/season becomes available.
- Target
- NOTIFY_ON_AVAILABLE
- Default
- true
- Value
- true
DM the requester when an admin declines their request.
- Target
- NOTIFY_ON_DECLINED
- Default
- true
- Value
- true
DM the reporter when their reported issue is marked resolved.
- Target
- NOTIFY_ON_ISSUE_RESOLVED
- Default
- true
- Value
- true
How often to poll Seerr for request status changes (0 disables notifications).
- Target
- POLL_INTERVAL_SECONDS
- Default
- 120
- Value
- 120