Sign inSign up

techblog/apprise-api-bridge

By techblog

•Updated over 4 years ago

Small FastApi application to send notifications using Apprise supported channels

Image
0

739

techblog/apprise-api-bridge repository overview

Please :star: this repo if you find it useful


PayPal

⁠Apprise API Bridge

⁠Single endpoint for sending notifications in multiple channels

Once in a while i need to send notification from my environment. It can be en alert or an informational message. So i created thi sproject to help send these messages with minimum configuration and setup process and with maximum supported notification channels.

⁠Features

With Apprise API Bridge you can:

  • Define notification groups (By importance, departments, etc.)
  • Send notification to a various notification channels using GET or POST request.

⁠Usage

⁠Run from hub
⁠docker-compose from hub
version: "3.6"
services:
  appriseapi:
    image: techblog/apprise-api-bridge:latest
    container_name: appriseapi
    restart: always
    ports:
      - "8080:8080"

⁠Using Apprise API bridge

So now, after you installed Apprise API bridge, It's time to give it a try. Navigate to you server address and you shuold see the configuration screen, that helps you configure the notifications groups amd channels.

Apprise group configuration

⁠Supported Notifications

The section identifies all of the services supported by this library. Check out the wiki for more information on the supported modules here⁠.

The table below identifies the services this tool supports and some example service urls you need to use in order to take advantage of it. Click on any of the services listed below to get more details on how you can configure Apprise to access them.

Notification ServiceService IDDefault PortExample Syntax
Apprise API⁠apprise:// or apprises://(TCP) 80 or 443apprise://hostname/Token
AWS SES⁠ses://(TCP) 443ses://user@domain/AccessKeyID/AccessSecretKey/RegionName
ses://user@domain/AccessKeyID/AccessSecretKey/RegionName/email1/email2/emailN
Boxcar⁠boxcar://(TCP) 443boxcar://hostname
boxcar://hostname/@tag
boxcar://hostname/device_token
boxcar://hostname/device_token1/device_token2/device_tokenN
boxcar://hostname/@tag/@tag2/device_token
Discord⁠discord://(TCP) 443discord://webhook_id/webhook_token
discord://avatar@webhook_id/webhook_token
Emby⁠emby:// or embys://(TCP) 8096emby://user@hostname/
emby://user:password@hostname
Enigma2⁠enigma2:// or enigma2s://(TCP) 80 or 443enigma2://hostname
Faast⁠faast://(TCP) 443faast://authorizationtoken
FCM⁠fcm://(TCP) 443fcm://project@apikey/DEVICE_ID
fcm://project@apikey/#TOPIC
fcm://project@apikey/DEVICE_ID1/#topic1/#topic2/DEVICE_ID2/
Flock⁠flock://(TCP) 443flock://token
flock://botname@token
flock://app_token/u:userid
flock://app_token/g:channel_id
flock://app_token/u:userid/g:channel_id
Gitter⁠gitter://(TCP) 443gitter://token/room
gitter://token/room1/room2/roomN
Google Chat⁠gchat://(TCP) 443gchat://workspace/key/token
Gotify⁠gotify:// or gotifys://(TCP) 80 or 443gotify://hostname/token
gotifys://hostname/token?priority=high
Growl⁠growl://(UDP) 23053growl://hostname
growl://hostname:portno
growl://password@hostname
growl://password@hostname:port
Note: you can also use the get parameter version which can allow the growl request to behave using the older v1.x protocol. An example would look like: growl://hostname?version=1
Home Assistant⁠hassio:// or hassios://(TCP) 8123 or 443hassio://hostname/accesstoken
hassio://user@hostname/accesstoken
hassio://user:password@hostname:port/accesstoken
hassio://hostname/optional/path/accesstoken
IFTTT⁠ifttt://(TCP) 443ifttt://webhooksID/Event
ifttt://webhooksID/Event1/Event2/EventN
ifttt://webhooksID/Event1/?+Key=Value
ifttt://webhooksID/Event1/?-Key=value1
Join⁠join://(TCP) 443join://apikey/device
join://apikey/device1/device2/deviceN/
join://apikey/group
join://apikey/groupA/groupB/groupN
join://apikey/DeviceA/groupA/groupN/DeviceN/
KODI⁠kodi:// or kodis://(TCP) 8080 or 443kodi://hostname
kodi://user@hostname
kodi://user:password@hostname:port
Kumulos⁠kumulos://(TCP) 443kumulos://apikey/serverkey
LaMetric Time⁠lametric://(TCP) 443lametric://apikey@device_ipaddr
lametric://apikey@hostname:port
lametric://client_id@client_secret
Mailgun⁠mailgun://(TCP) 443mailgun://user@hostname/apikey
mailgun://user@hostname/apikey/email
mailgun://user@hostname/apikey/email1/email2/emailN
mailgun://user@hostname/apikey/?name="From%20User"
Matrix⁠matrix:// or matrixs://(TCP) 80 or 443matrix://hostname
matrix://user@hostname
matrixs://user:pass@hostname:port/#room_alias
matrixs://user:pass@hostname:port/!room_id
matrixs://user:pass@hostname:port/#room_alias/!room_id/#room2
matrixs://token@hostname:port/?webhook=matrix
matrix://user:token@hostname/?webhook=slack&format=markdown
Mattermost⁠mmost:// or mmosts://(TCP) 8065mmost://hostname/authkey
mmost://hostname:80/authkey
mmost://user@hostname:80/authkey
mmost://hostname/authkey?channel=channel
mmosts://hostname/authkey
mmosts://user@hostname/authkey
Microsoft Teams⁠msteams://(TCP) 443msteams://TokenA/TokenB/TokenC/
MQTT⁠mqtt:// or mqtts://(TCP) 1883 or 8883mqtt://hostname/topic
mqtt://user@hostname/topic
mqtts://user:pass@hostname:9883/topic
Nextcloud⁠ncloud:// or nclouds://(TCP) 80 or 443ncloud://adminuser:pass@host/User
nclouds://adminuser:pass@host/User1/User2/UserN
NextcloudTalk⁠nctalk:// or nctalks://(TCP) 80 or 443nctalk://user:pass@host/RoomId
nctalks://user:pass@host/RoomId1/RoomId2/RoomIdN
Notica⁠notica://(TCP) 443notica://Token/
Notifico⁠notifico://(TCP) 443notifico://ProjectID/MessageHook/
Office 365⁠o365://(TCP) 443o365://TenantID:AccountEmail/ClientID/ClientSecret
o365://TenantID:AccountEmail/ClientID/ClientSecret/TargetEmail
o365://TenantID:AccountEmail/ClientID/ClientSecret/TargetEmail1/TargetEmail2/TargetEmailN
OneSignal⁠onesignal://(TCP) 443onesignal://AppID@APIKey/PlayerID
onesignal://TemplateID:AppID@APIKey/UserID
onesignal://AppID@APIKey/#IncludeSegment
onesignal://AppID@APIKey/Email
Opsgenie⁠opsgenie://(TCP) 443opsgenie://APIKey
opsgenie://APIKey/UserID
opsgenie://APIKey/#Team
opsgenie://APIKey/*Schedule
opsgenie://APIKey/^Escalation
ParsePlatform⁠parsep:// or parseps://(TCP) 80 or 443parsep://AppID:MasterKey@Hostname
parseps://AppID:MasterKey@Hostname
PopcornNotify⁠popcorn://(TCP) 443popcorn://ApiKey/ToPhoneNo
popcorn://ApiKey/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/
popcorn://ApiKey/ToEmail
popcorn://ApiKey/ToEmail1/ToEmail2/ToEmailN/
popcorn://ApiKey/ToPhoneNo1/ToEmail1/ToPhoneNoN/ToEmailN
Prowl⁠prowl://(TCP) 443prowl://apikey
prowl://apikey/providerkey
PushBullet⁠pbul://(TCP) 443pbul://accesstoken
pbul://accesstoken/#channel
pbul://accesstoken/A_DEVICE_ID
pbul://accesstoken/[email protected]
pbul://accesstoken/#channel/#channel2/[email protected]/DEVICE
Pushjet⁠pjet:// or pjets://(TCP) 80 or 443pjet://hostname/secret
pjet://hostname:port/secret
pjets://secret@hostname/secret
pjets://hostname:port/secret
Push (Techulus)⁠push://(TCP) 443push://apikey/
Pushed⁠pushed://(TCP) 443pushed://appkey/appsecret/
pushed://appkey/appsecret/#ChannelAlias
pushed://appkey/appsecret/#ChannelAlias1/#ChannelAlias2/#ChannelAliasN
pushed://appkey/appsecret/@UserPushedID
pushed://appkey/appsecret/@UserPushedID1/@UserPushedID2/@UserPushedIDN
Pushover⁠pover://(TCP) 443pover://user@token
pover://user@token/DEVICE
pover://user@token/DEVICE1/DEVICE2/DEVICEN
Note: you must specify both your user_id and token
PushSafer⁠psafer:// or psafers://(TCP) 80 or 443psafer://privatekey
psafers://privatekey/DEVICE
psafer://privatekey/DEVICE1/DEVICE2/DEVICEN
Reddit⁠reddit://(TCP) 443reddit://user:password@app_id/app_secret/subreddit
reddit://user:password@app_id/app_secret/sub1/sub2/subN
Rocket.Chat⁠rocket:// or rockets://(TCP) 80 or 443rocket://user:password@hostname/RoomID/Channel
rockets://user:password@hostname:443/#Channel1/#Channel1/RoomID
rocket://user:password@hostname/#Channel
rocket://webhook@hostname
rockets://webhook@hostname/@User/#Channel
Ryver⁠ryver://(TCP) 443ryver://Organization/Token
ryver://botname@Organization/Token
SendGrid⁠sendgrid://(TCP) 443sendgrid://APIToken:FromEmail/
sendgrid://APIToken:FromEmail/ToEmail
sendgrid://APIToken:FromEmail/ToEmail1/ToEmail2/ToEmailN/
ServerChan⁠serverchan://(TCP) 443serverchan://token/
SimplePush⁠spush://(TCP) 443spush://apikey
spush://salt:password@apikey
spush://apikey?event=Apprise
Slack⁠slack://(TCP) 443slack://TokenA/TokenB/TokenC/
slack://TokenA/TokenB/TokenC/Channel
slack://botname@TokenA/TokenB/TokenC/Channel
slack://user@TokenA/TokenB/TokenC/Channel1/Channel2/ChannelN
SMTP2Go⁠smtp2go://(TCP) 443smtp2go://user@hostname/apikey
smtp2go://user@hostname/apikey/email
smtp2go://user@hostname/apikey/email1/email2/emailN
smtp2go://user@hostname/apikey/?name="From%20User"
Streamlabs⁠strmlabs://(TCP) 443strmlabs://AccessToken/
strmlabs://AccessToken/?name=name&identifier=identifier&amount=0&currency=USD
SparkPost⁠sparkpost://(TCP) 443sparkpost://user@hostname/apikey
sparkpost://user@hostname/apikey/email
sparkpost://user@hostname/apikey/email1/email2/emailN
sparkpost://user@hostname/apikey/?name="From%20User"
Spontit⁠spontit://(TCP) 443spontit://UserID@APIKey/
spontit://UserID@APIKey/Channel
spontit://UserID@APIKey/Channel1/Channel2/ChannelN
Syslog⁠syslog://(UDP) 514 (if hostname specified)syslog://
syslog://Facility
syslog://hostname
syslog://hostname/Facility
Telegram⁠tgram://(TCP) 443tgram://bottoken/ChatID
tgram://bottoken/ChatID1/ChatID2/ChatIDN
Twitter⁠twitter://(TCP) 443twitter://CKey/CSecret/AKey/ASecret
twitter://user@CKey/CSecret/AKey/ASecret
twitter://CKey/CSecret/AKey/ASecret/User1/User2/User2
twitter://CKey/CSecret/AKey/ASecret?mode=tweet
Twist⁠twist://(TCP) 443twist://pasword:login
twist://password:login/#channel
twist://password:login/#team:channel
twist://password:login/#team:channel1/channel2/#team3:channel
XBMC⁠xbmc:// or xbmcs://(TCP) 8080 or 443xbmc://hostname
xbmc://user@hostname
xbmc://user:password@hostname:port
XMPP⁠xmpp:// or xmpps://(TCP) 5222 or 5223xmpp://user:password@hostname
xmpps://user:password@hostname:port?jid=user@hostname/resource
xmpps://user:password@hostname/target@myhost, target2@myhost/resource
Webex Teams (Cisco)⁠wxteams://(TCP) 443wxteams://Token
Zulip Chat⁠zulip://(TCP) 443zulip://botname@Organization/Token
zulip://botname@Organization/Token/Stream
zulip://botname@Organization/Token/Email
⁠Sending Notification

In order to send notification you can use two existing methods, Both are doing the same. One is a POST Method and the other is a GET Method. You can see the swagger documentation by adding "/docs" to the end of the url.

SafeUrl scan in progress

Tag summary

Content type

Image

Digest

Size

179.3 MB

Last updated

over 4 years ago

docker pull techblog/apprise-api-bridge