1f4eba49cf8405b31864acbcb0a2ec3401c016df
Overseerr Webhook Proxy
A lightweight Spring Boot proxy that receives Overseerr / Jellyseerr webhook notifications and forwards them to multiple Discord servers, with per-notification-type routing.
How it works
Overseerr ──POST /webhook──► Proxy ──► Discord Server A (Admins)
──► Discord Server B (General)
──► Discord Server C (Film fans)
Each Discord embed is colour-coded by notification type and includes the media title, requester name, and media type.
Quick start
1. Clone & configure
git clone https://github.com/yourname/overseerr-webhook-proxy
cd overseerr-webhook-proxy
mkdir config
cp src/main/resources/application.yml config/application.yml
Edit config/application.yml and replace the placeholder webhook URLs with your
real Discord webhook URLs.
2. Run with Docker Compose
docker compose up -d
3. Configure Overseerr
In Overseerr → Settings → Notifications → Webhook:
| Field | Value |
|---|---|
| Webhook URL | http://<your-server-ip>:8080/webhook |
| JSON payload | (leave as default) |
Click Test to send a test notification and verify it arrives in Discord.
Configuration reference (application.yml)
proxy:
routes:
MEDIA_APPROVED:
- https://discord.com/api/webhooks/ID1/TOKEN1 # admins
- https://discord.com/api/webhooks/ID2/TOKEN2 # general
MEDIA_AVAILABLE:
- https://discord.com/api/webhooks/ID2/TOKEN2 # general only
MEDIA_FAILED:
- https://discord.com/api/webhooks/ID1/TOKEN1 # admins only
default: # catch-all
- https://discord.com/api/webhooks/ID1/TOKEN1
Supported notification types
| Type | Description |
|---|---|
MEDIA_PENDING |
New request submitted |
MEDIA_APPROVED |
Request approved |
MEDIA_DECLINED |
Request declined |
MEDIA_AVAILABLE |
Media is now available |
MEDIA_FAILED |
Download/processing failed |
TEST_NOTIFICATION |
Test from Overseerr settings |
default |
Catches any type not listed above |
Building without Docker
Requirements: Java 21, Maven 3.9+
mvn package -DskipTests
java -jar target/overseerr-webhook-proxy-1.0.0.jar \
--spring.config.additional-location=file:./config/application.yml
Endpoints
| Method | Path | Description |
|---|---|---|
POST |
/webhook |
Receives Overseerr notifications |
GET |
/health |
Simple liveness check |
GET |
/actuator/health |
Spring Boot Actuator health |
Description
Languages
Java
96.6%
Dockerfile
3.4%