Integrating Uptime Kuma v2 with Nextcloud Talk (Nextcloud AIO)
This guide explains how to integrate Uptime Kuma v2 with Nextcloud 32 (Nextcloud AIO) and Nextcloud Talk, allowing monitoring alerts to be automatically sent into a Talk conversation.
Once configured, when a monitored service goes down, a notification will automatically appear in the Talk room.
Example of a message in Talk when a service fails:
[Audiobookshelf] π΄ Down Request failed with status code 502
And when the service recovers:
[Audiobookshelf] β
Up 200 - OK
Prerequisites
Before starting, ensure the following environment is available:
-
Nextcloud 32.x
-
Nextcloud Talk app installed
-
Nextcloud AIO (All-in-One)
-
Uptime Kuma v2
You will also need:
-
administrative access to the Nextcloud server
-
terminal access (SSH)
-
access to the Uptime Kuma web interface
Integration Architecture
The communication between the systems works as follows:
Uptime Kuma
β
β notification
βΌ
Nextcloud Talk Bot
β
βΌ
Talk conversation
Uptime Kuma sends notifications directly to the Talk conversation using a Talk bot.
1. Create a conversation in Nextcloud Talk
First, create a conversation (room) where monitoring alerts will be sent.
Steps:
-
Log in to the Nextcloud web interface
-
Open the Talk application
-
Click New conversation
-
Enter a name, for example:
infra-alerts
- Create the conversation
This room will serve as a channel for infrastructure alerts.
2. Obtain the Conversation Token
After opening the conversation, the browser URL will look similar to this:
https://cloud.example.com/call/abcd1234
The part after /call/ is the Conversation Token:
abcd1234
This token will be required when configuring notifications.
3. Create a Talk bot
Nextcloud Talk allows creating bots using an OCC command.
With Nextcloud AIO, the command must be executed inside the Nextcloud container.
Run:
sudo docker exec -it nextcloud-aio-nextcloud php occ talk:bot:create "Uptime Kuma Bot"
After running the command, Nextcloud will:
-
create a new Talk bot
-
automatically generate a secure secret token
Example output:
Bot created successfully
Bot ID: 16
Secret: 3cfa8b8c5e4e1f7b7d2c2a0c0a9c0e4f7c8a3b9e2d1c6f5a4b3c2d1e0f9a8b7
Save the following values:
Bot ID
Bot Secret
They will be needed in later steps.
4. Add the bot to the conversation
The bot must be added to the Talk room so it can send messages.
Run the following command:
sudo docker exec -it nextcloud-aio-nextcloud php occ talk:bot:setup BOT_ID CONVERSATION_TOKEN
Example:
sudo docker exec -it nextcloud-aio-nextcloud php occ talk:bot:setup 16 abcd1234
If the configuration is correct, you will see:
Successfully set up for conversation abcd1234
The bot is now connected to the conversation and can send messages to it.
5. Verify the bot configuration
To list all configured Talk bots, run:
sudo docker exec -it nextcloud-aio-nextcloud php occ talk:bot:list
Example output:
ID | Name | features
16 | Uptime Kuma Bot | response
This command is useful if multiple bots exist on the system.
6. Configure the notification in Uptime Kuma
Open the Uptime Kuma web interface.
Navigate to:
Settings
β Notifications
β Add New Notification
β Nextcloud Talk
Fill in the following values.
Friendly Name
Nextcloud Talk Alerts
Nextcloud host
https://cloud.example.com
Conversation token
abcd1234
Bot secret
Use the secret token generated when the bot was created.
Example:
3cfa8b8c5e4e1f7b7d2c2a0c0a9c0e4f7c8a3b9e2d1c6f5a4b3c2d1e0f9a8b7
Save the configuration.
7. Test the notification
Click the Test button.
If everything is configured correctly, a message will appear in the Talk room:
My Nextcloud Talk Alert Testing
This confirms that the integration between Uptime Kuma and Nextcloud Talk is working.
8. Assign the notification to monitors
To receive alerts, the notifier must be assigned to specific monitors.
Steps:
-
Open a monitor in Uptime Kuma
-
Click Edit
-
Go to the Notifications section
-
Select:
Nextcloud Talk Alerts
After saving, Uptime Kuma will send notifications whenever the monitor status changes.
Resulting alerts in Talk
When a service goes down:
[Audiobookshelf] π΄ Down Request failed with status code 502
When the service recovers:
[Audiobookshelf] β
Up 200 - OK
Recommendations for clearer alerts
It is good practice to use clear monitor names.
Example:
π₯ Proxmox
π¬ Plex
π Audiobookshelf
πΎ PBS Backup
Alerts in Talk will then appear like:
[π¬ Plex] π΄ Down Request failed with status code 502
This makes it easier to immediately identify the affected service.