2024-02-10 03:03:07 +03:30
### DISCLAIMER: This is a third party addition to dockcheck - best effort testing.
2025-06-24 09:16:48 -04:00
NOTIFY_MATRIX_VERSION = "v0.3"
2024-02-10 03:03:07 +03:30
#
# Required receiving services must already be set up.
2025-05-29 16:43:34 -04:00
# Leave (or place) this file in the "notify_templates" subdirectory within the same directory as the main dockcheck.sh script.
# If you instead wish make your own modifications, make a copy in the same directory as the main dockcheck.sh script.
# Do not modify this file directly within the "notify_templates" subdirectory. Set MATRIX_ACCESS_TOKEN, MATRIX_ROOM_ID, and MATRIX_SERVER_URL in your dockcheck.config file.
2024-02-10 03:03:07 +03:30
2025-05-25 12:26:13 -04:00
if [ [ -z " ${ MATRIX_ACCESS_TOKEN :- } " ] ] || [ [ -z " ${ MATRIX_ROOM_ID } :- " ] ] || [ [ -z " ${ MATRIX_SERVER_URL } :- " ] ] ; then
printf "Matrix notification channel enabled, but required configuration variables are missing. Matrix notifications will not be sent.\n"
2025-02-09 22:01:08 +01:00
2025-05-25 12:26:13 -04:00
remove_channel matrix
fi
2025-02-09 22:01:08 +01:00
2025-05-25 12:26:13 -04:00
trigger_matrix_notification( ) {
AccessToken = " ${ MATRIX_ACCESS_TOKEN } " # e.g. MATRIX_ACCESS_TOKEN=token-value
Room_id = " ${ MATRIX_ROOM_ID } " # e.g. MATRIX_ROOM_ID=myroom
MatrixServer = " ${ MATRIX_SERVER_URL } " # e.g. MATRIX_SERVER_URL=http://matrix.yourdomain.tld
MsgBody = " {\"msgtype\":\"m.text\",\"body\":\" $MessageBody \"} "
2025-02-09 22:01:08 +01:00
2025-05-25 12:26:13 -04:00
# URL Example: https://matrix.org/_matrix/client/r0/rooms/!xxxxxx:example.com/send/m.room.message?access_token=xxxxxxxx
2025-06-24 09:16:48 -04:00
curl -S -o /dev/null ${ CurlArgs } -X POST " $MatrixServer /_matrix/client/r0/rooms/ $Room_id /send/m.room.message?access_token= $AccessToken " -H 'Content-Type: application/json' -d " $MsgBody "
if [ [ $? -gt 0 ] ] ; then
NotifyError = true
fi
2025-05-25 12:26:13 -04:00
}