django-statusboard-notify 0.7.0

Creator: codyrutscher

Last updated:

Add to Cart

Description:

djangostatusboardnotify 0.7.0

statusboard-notify



Utility for django-statusboard that notifies users about service status
changes. The notification are sent via email or published in a Telegram channel.
This app periodically notifies about service status changes - except for
changes from "Operational" to "Performance issues" (and viceversa).

Note the notification script attempts to send the message only once for
each backend.
Installation
Install the package:
pip install django-statusboard-notify[with_telegram]

If you don't need Telegram notifications, you can install the package without
the with_telegram extra.
Configure the application
Add the following applications to your Django projects:
# settings.py
INSTALLED_APPS += [
'statusboard',
'statusboard-notify',
]

Email notification
In order to enable the email notifications, you have to set the sender:
# settings.py
STATUSBOARD_NOTIFY_EMAIL_SENDER = "statusboard@localhost.localdomain

You can edit the subject:
# settings.py
STATUSBOARD_NOTIFY_EMAIL_SUBJECT = "Mysubject"

You can add a list of recipients that will receive the notifications about all
the services:
# settings.py
STATUSBOARD_NOTIFY_EMAIL_RECIPIENTS = [
"admin@localhost.localdomain",
"anotheradmin@localhost.localdomain",
]

From the admin page you can associate an existing user to one or more services:

The email is sent in two formats: plain text and html. The email is created
using the template
statusboard_notify/templates/statusboard_notify/email.html
and then is converted using pypandoc to create the plain text version.
It's possibile to customize the footer of the email: create the file
templates/statusboard_notify/email.html that extends the original template:
{% extends "statusboard_notify/email.html" %}
{% block footer %}
<footer class="footer">
For more informations please visit <a href="https://localhost.localdomain/status">the statuspage</a>
</footer>
{% endblock %}

Telegram notification
In order to enable the Telegram notifications, you have to:

Create a bot with BotFather.
Create a channel.
Make your bot an admin of your channel.
Go to https://web.telegram.org and open the channel: the URL is something
like https://web.telegram.org/#/im?p=c1234567890_1231231231231231231.
The channel id is the concatenation of -100 and the numbers between c
and _ (in the example, 1234567890, then the chat id is -1001234567890).

Then add the following variables to your settings.py.
# settings.py
STATUSBOARD_NOTIFY_TELEGRAM_TOKEN = "TELEGRAM-TOKEN-FROM-BOTFATHER"
STATUSBOARD_NOTIFY_TELEGRAM_CHAT_ID = -1001234567890

Configure the notification script
The notifications are fired by command send_notifications, that reads the
notification queue from the DB and sends the services status changes to the
recipients (the notifications are then removed).
You can activate the command using crontab, systemd, celery, etc. Below,
an example with crontab:
# Check every 10 minutes for service status changes
*/10 * * * * /path/to/django/project/manage.py send_notifications

Contact and copyright information
Copyright (C) 2021 Emanuele Di Giacomo emanuele@digiacomo.cc
django-statusboard-notify is licensed under GPLv2+.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.