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