2024-06-20 22:05:10 -04:00
### DISCLAIMER: This is a third party addition to dockcheck - best effort testing.
2025-09-15 05:25:23 -04:00
NOTIFY_GOTIFY_VERSION = "v0.5"
2024-06-20 22:05:10 -04:00
#
# 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 GOTIFY_TOKEN and GOTIFY_DOMAIN in your dockcheck.config file.
2024-06-20 22:05:10 -04:00
2025-09-15 05:25:23 -04:00
trigger_gotify_notification( ) {
if [ [ -n " $1 " ] ] ; then
gotify_channel = " $1 "
else
gotify_channel = "gotify"
fi
2025-02-09 22:01:08 +01:00
2025-09-15 05:25:23 -04:00
UpperChannel = " ${ gotify_channel ^^ } "
2025-02-09 22:01:08 +01:00
2025-09-15 05:25:23 -04:00
GotifyTokenVar = " ${ UpperChannel } _TOKEN "
GotifyUrlVar = " ${ UpperChannel } _DOMAIN "
if [ [ -z " ${ !GotifyTokenVar :- } " ] ] || [ [ -z " ${ !GotifyUrlVar :- } " ] ] ; then
printf " The ${ gotify_channel } notification channel is enabled, but required configuration variables are missing. Gotify notifications will not be sent.\n "
remove_channel gotify
return 0
fi
GotifyToken = " ${ !GotifyTokenVar } " # e.g. GOTIFY_TOKEN=token-value
GotifyUrl = " ${ !GotifyUrlVar } /message?token= ${ GotifyToken } " # e.g. GOTIFY_URL=https://gotify.domain.tld
2025-05-02 20:08:04 +02:00
2025-05-25 12:26:13 -04:00
if [ [ " $PrintMarkdownURL " = = true ] ] ; then
ContentType = "text/markdown"
else
ContentType = "text/plain"
fi
2025-05-02 20:08:04 +02:00
2025-05-29 16:43:34 -04:00
JsonData = $( " $jqbin " -n \
2025-05-25 12:26:13 -04:00
--arg body " $MessageBody " \
--arg title " $MessageTitle " \
--arg type " $ContentType " \
'{message: $body, title: $title, priority: 5, extras: {"client::display": {"contentType": $type}}}' )
2025-03-16 20:47:46 +01:00
2025-06-24 09:16:48 -04:00
curl -S -o /dev/null ${ CurlArgs } --data " ${ JsonData } " -H 'Content-Type: application/json' -X POST " ${ GotifyUrl } " 1> /dev/null
if [ [ $? -gt 0 ] ] ; then
NotifyError = true
fi
2024-06-20 22:05:10 -04:00
}