Seerr / Overseerr / Jellyseerr
Seerr (and its forks Overseerr and Jellyseerr) is a media request management tool. Users can request movies and TV shows, and Seerr sends them to Sonarr/Radarr for download. Dubby integrates with all three variants to show media availability.
How it works
Section titled “How it works”Dubby acts as a “media server” in Seerr’s configuration, similar to how Plex or Jellyfin integrate. This enables:
- Availability display — Seerr shows which requested media is already available in your Dubby library
- Library sync — Seerr periodically fetches your Dubby library to update availability status
- Webhook notifications — Dubby notifies Seerr when new media is added
You can connect Seerr to Dubby in two ways: during the initial setup wizard, or later in settings.
Option A: During setup wizard
Section titled “Option A: During setup wizard”The setup wizard includes an optional Seerr integration step (after Playback, before Optimization). The guided flow walks you through:
- Enter your Seerr URL and API key — Find the API key in your Seerr instance under Settings > General > API Key
- Test connection — Dubby verifies connectivity and auto-detects your variant (Seerr, Overseerr, or Jellyseerr) and version
- Save credentials — Dubby generates a Dubby API key for the Seerr side. You’ll see step-by-step instructions for configuring your Seerr instance to connect back to Dubby
You can skip this step and configure it later in Settings.
Option B: From settings
Section titled “Option B: From settings”- Go to Settings > Integrations > Seerr in the Dubby admin panel
- Click Add Instance and enter your Seerr URL and API key
- Test the connection, then save
Configure the Seerr side
Section titled “Configure the Seerr side”After connecting from Dubby, configure Seerr to talk back to Dubby:
- In your Seerr instance, go to Settings > Dubby
- Enter your Dubby server URL (e.g.,
http://dubby:3000) - Paste the Dubby API key that was generated during setup
- Click Save and Sync Libraries
API endpoints
Section titled “API endpoints”Dubby exposes several endpoints specifically for Seerr integration:
| Endpoint | Description |
|---|---|
GET /api/seerr/system/info | Server identity (no auth required) |
GET /api/seerr/libraries | List all libraries |
GET /api/seerr/libraries/:id/items | Paginated media items in a library |
GET /api/seerr/items/:id | Single item details |
POST /api/seerr/availability/check | Check if specific media is available |
GET /api/seerr/recent | Recently added media |
POST /api/seerr/webhook | Receive availability updates |
These endpoints use a separate API key (not your user Bearer token) that is exchanged during the initial registration handshake.
Docker networking
Section titled “Docker networking”If running both Dubby and Seerr in Docker, ensure they’re on the same Docker network so they can communicate by service name:
services: dubby: image: dubbytv/dubby:latest networks: - media
seerr: image: seerr/seerr:latest networks: - media
networks: media:Then use http://dubby:3000 as the server URL in Seerr’s configuration.
Kubernetes networking
Section titled “Kubernetes networking”If running both Dubby and Seerr in Kubernetes, use the internal ClusterIP service name:
| Seerr runs in… | URL to enter in Seerr | Example |
|---|---|---|
| Same namespace as Dubby | http://<service>:<port> | http://dubby-server:3000 |
| Different namespace | http://<service>.<namespace>:<port> | http://dubby-server.dubby:3000 |
| Outside the cluster | External hostname or IP | http://dubby.example.com |
Find the Dubby service name with:
kubectl get svc -n dubbyExternal DNS resolution
Section titled “External DNS resolution”If Seerr uses an external hostname (e.g. seerr.example.com) rather than an internal service name, the Dubby pod must be able to resolve it via DNS. Some Kubernetes distributions (k3s, air-gapped clusters) may not forward external DNS queries by default.
Test resolution from a pod:
kubectl run -it --rm dns-test --image=busybox -- nslookup seerr.example.comIf this fails, check your CoreDNS ConfigMap for a working forward directive:
kubectl get configmap coredns -n kube-system -o yamlEnsure it includes a forward rule pointing to a DNS server that can resolve external hostnames (e.g. forward . 8.8.8.8 1.1.1.1).
Troubleshooting
Section titled “Troubleshooting”When a connection test fails, Dubby provides a friendly error message and a platform-specific troubleshooting hint. Common errors include:
| Error | Meaning |
|---|---|
| DNS lookup failed | The hostname could not be resolved |
| Could not reach… | The server is not responding (connection refused) |
| Connection timed out | The server is unreachable or blocked |
| SSL/TLS error | Certificate issue (e.g., self-signed certs) |
| Invalid API key | The Seerr API key is wrong |