Does anyone have a good tutorial to get started using apprise (the notification service) ? reddit / selfhosted ---------------------------------------------------------------------- ovizii · 2023-10-05 10:26 I got it up and running via docker compose and then I'm stuck. I read the wiki, and it seems I simply don't get the different terms: \- what is a configuration text/yaml? \- what is an URL? \- how do they relate to each other? \- I assume any service/job/etc which can execute some action can trigger an apprise notification via API/URL? \- i.e. some self-hosted IFTTT or a monitoring tool could trigger apprise? If I want external services to send via apprise, do I need a reverse proxy, right? Which port do I expose? Is there authentication or is my apprise api then exposed to the whole internet? I'd appreciate any how-tos, tutorials explanations or links as I am pretty sure somebody on this reddit does use apprise :-) ---------------------------------------------------------------------- selfh-sted · 2023-10-05 11:54 You're asking a lot of good questions about Apprise (I've also found the documentation a bit lacking), but if you're going to expose it externally, I think it's worth ensuring you have a proper/secure reverse proxy configured first (your question about exposing ports raises concerns). Happy to help if you don't mind answering a few questions: - Are you deploying any sort of a reverse proxy currently? - Do you have an example of an external service you'd like to receive notifications for via Apprise? - Do you have an example of an internal service you'd like to receive notifications for via Apprise? If you have an internal service, we can walk through getting that set up because you won't need to rely on Apprise being proxied to do so. If you have an external service, we should talk through reverse proxies first and get that straightened out. ---------------------------------------------------------------------- ovizii · 2023-10-05 12:59 Thanks for taking the time to help. Let me explain what I currently have. I have about 40-50 active docker containers (all little tools for my personal usage) on a PVE instance as well as 2 VMs. One VM (i.e. home assistant) as well as a couple of containers (i.e. plex, outline, filerun, portainer) are exposed to the internet via traefik as a reverse proxy. Some of them have their own authentication methods, others I use authentik for authentication through traefik. ​ The use cases I imagined, and I might be totally misunderstanding the use of apprise are these. Let's keep it simple, I am able to abstract other uses once I am pointed in the right direction. ​ I have a few internal services which currently send me notifications via email and some which do so via pushbullet. I'd be already very happy if I understood how to get these to notify me via apprise (which in turn would use email or pushbullet i.e. depending on tags the service sends to apprise. Do they need to call a webhook and pass tags so apprise knows what to do with the notification? I also run n8n for a few automations so this could also connect to apprise. ​ example: \- outline can call webhooks when certain events happen. \- healthchecks can add apprise urls as an integration \- home assistant could use apprise to notify me about stuff I have an externally hosted uptimekuma instance which we can forget about in this case as it seems to have apprise baked in and only needs me to supply it with an apprise URL. So lets only look at internal services so I take back my question about exposing apprise to the internet. ---------------------------------------------------------------------- selfh-sted · 2023-10-05 13:08 Okay, perfect. To start - pick one internal service and [decide which notification service you'd like to leverage via Apprise](https://github.com/caronc/apprise/wiki#notification- services). We can walk through setting it up together. ---------------------------------------------------------------------- ovizii · 2023-10-05 14:28 OK, lets try this: ​ outline can send a POST request to a certain URL when comments are created/updated/deleted Can we get an apprise URL for this so apprise uses a local postfix reachable on [10.10.10.10](https://10.10.10.10) port 25 without any authentication and no TLS/SSL to notify me? According to: [https://github.com/caronc/apprise/wiki/Notify\_email](h ttps://github.com/caronc/apprise/wiki/Notify_email) it should work somehow like this: ​ >Using a local relay server that does not require authentication? No problem, use this:mailto://{user}:{password}@{domain}:{port}?from={fro m\_email}&to={to\_email} ---------------------------------------------------------------------- ovizii · 2023-10-05 16:39 I have made progress. I managed to persistently save an apprise key which sends an email via a local postfix reachable on 10.10.10.10 port 25 without any authentication and no TLS/SSL and have successfully sent a test message. Now I am struggling to put things together. It sounds like I can add multiple notification services to one apprise key. I can have multiple apprise keys. The apprise GUI shows me these instructions to use the key I have successfuly set up. They look different but do the same thing. Very confusing :-( The following command would cause apprise to directly notify all of your services: apprise --body="Test Message" \ apprise://10.10.10.10:8744/apprise/?tags=all and The following command would cause apprise to retrieve the configuration loaded and send a test notification to all of your added services: apprise --body="Test Message" --tag=all \ --config=http://10.10.10.10:8744/get/apprise I assume this means “to all services of this key”? I figured out here: [https://github.com/caronc/apprise/wiki/CLI\_Usage ](https://github.com/caronc/apprise/wiki/CLI_Usage) that I can add tags to different services within the configuration of one key. So I am left wondering what is the use case for multiple apprise keys if I can configure multiple tags and services within one? ---------------------------------------------------------------------- lead2gold · 2023-10-05 23:32 A few things i can add for you. Create a config file in \~/.apprise and put the following: # use comments if you want to document entries: include http://10.10.10.10:8744/get/apprise Once you do this, you can now just use the command line without the --config entry. apprise --body="test message" --tag=all There is no real difference between the apprise CLI tool and the web page. One just wraps the underlining library with a command line interface, and the other offers the same functionality but via a web page (http requests). Both allow you to prepare/save a configuration file and call it. Tagging is simply a way of defining more then one end point and grouping them ... Using the `tag=all` as you are using just triggers every single notification you defined regardless of any further tagging. I do also agree that Apprise lacks documentation; i do need to step it up here. But feel free to ask questions here too. Thank you u/selfh- sted for all your advice you've already provided! · ---------------------------------------------------------------------- ovizii · 2023-10-06 14:43 Thanks everyone. I'll summarize my findings after extensively playing with apprise: ​ \- apprise works nicely for other services which look like they have apprise bundled within them like uptimekuma or bazarr \- works nicely for services within the same network as apprise and which have the option to define the exact webhook details like the method and the actual parameters to be sent (i.e. tautulli does this) \- works nicely with scripts and cronjobs on the same system which can use i.e. curl to trigger apprise ​ I really like that you can persistently store multiple endpoints and tag them within a single apprise key. I haven't figured out why one would need multiple apprise keys though. ---------------------------------------------------------------------- lead2gold · 2023-10-07 21:36 Think of a situation where you're in an office. You could have: becky=mailto://credentials jane=mailto://credentials jason=mailto://credentials devteam=slack://credentials devteam=discord://credentials jake=mailto://credentials admin=becky, jane mgmt=jane, jake Now you can notify people by their tags, or as a group. In the above i showed 2 ways to group (multiple use of the same tag) as well as creating a new tag and assigning it others: # Notify admin (becky and jane) apprise -g admin -b "guys, we need you on the 4th floor right away" # Just notify jason: apprise -g jason -b "You're lunch is still in the microwave" # Notify the devteam and mgmt apprise -g devteam,mgmt "Kudos to the great work you've been doing" I hope that helps justify why you'd use tags (instead of \`all\`). That said, depending on how simple your use case is, there is nothign wrong with the \`all\` route at all. If you don't assign any tag at all to a URL, then you don't even need to use the \`all\`... Hence this is a perfectly valid config file: # you don't need to tag = url # url by itself is fine mailto://credentials discord://credentials Without a tag defined in your configuration, you don't need to use the `--tag` or `-g` at all. This is valid: apprise -b "hello world!" I hope that makes sense :); feel free to ask any more questions if you have any. You can also just [open up a discussion](https://github.com/caronc/apprise/discussions) on the github page (as maybe others share the same concern or know-how you do) ---------------------------------------------------------------------- ovizii · 2023-10-07 22:11 >I haven't figured out why one would need multiple apprise keys though. The question was about multiple keys – I totally got the usage of tags and have already successfully implemented it, but thanks for the detailed explanation :-) ​ >I really like that you can persistently store multiple endpoints and tag them within a single apprise key. i.e. me,email=mailto://credentials me,pushbullet=pbul://apikey/device ​ I can use all my notification channels for total emergencies with the tag "me" or chose one: email or pushbullet ---------------------------------------------------------------------- [deleted] · 2023-10-08 02:40 [deleted] ---------------------------------------------------------------------- lead2gold · 2023-10-08 13:23 > The question was about multiple keys Ah I'm sorry. Yes the use case for multiple keys isn't strong. At the time i was thinking maybe a household might have multiple accounts. If you're keys are `/jane/` or `/jack/` then there is no real use. However if you allow people to have their own namespace and use keys that are random ([up to 64 characters] such as a `sha1` or `uuid4`, etc (https://github.com/caronc/apprise-api#api-notes)), you effectively password protect your namespace from others (providing a more shared environment). ---------------------------------------------------------------------- ovizii · 2023-10-08 16:24 No need to apologize, and thanks for following up on my question with all the useful input. ---------------------------------------------------------------------- ovizii · 2023-10-11 09:39 >Create a config file in \~/.apprise and put the following: How would that look like when one is using apprise via docker? Not sure where that goes and what format it should have. Currently I have mapped these volumes: volumes: - ./data/config:/config - ./data/plugin:/plugin - ./data/attach:/attach