Track unsent iMessages. Get notified for pending or successful Jellyseerr requests. Receive notifications when Radarr downloads start or are completed. Alerts when Prowlarr proxies disconnect or are restored.
Webhook is still in active development, but I use it every day!
- A Maubot instance with the Webhook plugin installed
- A working BlueBubbles Server to track unsent messages (optional)
- A MongoDB collection (optional, only needed for tracking unsent messages)
- You can create a free MongoDB account and configure a shared instance, or self- host.
- Docker and Docker Compose for easier deployment
- Alternatively, you can deploy the application manually. I will not be able to offer support for alternative deployment, but you can find instructions provided by FastAPI for cloud deployment or running a server manually.
- Python 3.12 is required for manual deployment.
- If you use Coolify and link this repository, you can skip steps 2, 3, 5, and 6. It will also automatically update. This is the option I recommend the most!
-
Set up
maubotwebhook
to use the configuration below. We'll leave authentication blank since we won't be exposing the Maubot instance.path: /send method: POST room: '{{ json.room_id }}' message: '{{ json.message }}' message_format: plaintext auth_type: auth_token: force_json: true ignore_empty_messages: true
-
Clone the repository
git clone https://github.com/mehapps/webhook
-
Navigate into the repository
cd webhook
-
Create a
.env
file with:ATLAS_URI
(this should be your MongoDB connection string, and should be URL encoded)MAUBOT_URL
(this should be your base URL)MATRIX_ID
(this should be your Matrix room ID)BB_URL
(optional - this should be your BlueBubbles base URL, needed if you're using BlueBubbles)BB_PASSWORD
(optional - this should be your BlueBubbles password, needed if you're using BlueBubbles)AREA_CODE
(this is optional and will default to +1, only needed if you're using BlueBubbles)TIMEZONE
(this is optional and will default to America/New_York, only needed if you're using BlueBubbles)
Here is an example:
AREA_CODE=+1 ATLAS_URI=mongodb+srv:/your_url MATRIX_ID=room:homeserver.tld BB_PASSWORD=password BB_URL=http://127.0.0.1:1234 MAUBOT_URL=http://127.0.0.1:29316/_matrix/maubot/plugin/maubotwebhook/send TIMEZONE=America/New_York
-
Build the Docker image:
docker compose --pull --env-file .env build .
-
Start the Docker container:
docker compose --env-file .env up -d
-
If you're using BlueBubbles, create a new Webhook in the
API & Webhooks
section of the BlueBubbles Server settings. Enter the server address and port, followed bybluebubbles-webhook
. Then make sure to selectNew Messages
andMessage Updates
.
If you have any issues running the server or have any suggestions, feel free to create an issue and I'll do my best to help you! I especially want to know what services you'd like to use to receive notifications, so please open an issue/feature request for that!