Utility for django-statusboard to notify status changes
Project description
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).
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 betweenc
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+.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django-statusboard-notify-0.4.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 025356563b603cc42a80b4c0f91514f0c2de5c0dfba95aed8a20f446a0166b0a |
|
MD5 | bfade40695fb81d3f77469a6b575b455 |
|
BLAKE2b-256 | 326d7e67c4b6e298992c1ef82b31fbf1d9b63d60ff182c92be71332195e1dc4c |
Hashes for django_statusboard_notify-0.4.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3cd6bf45c05e36331f6ed3019612c27244f4c71388b4b1806b35593afe076b2b |
|
MD5 | a95edc99e372dbf07cd9bc7b249d2984 |
|
BLAKE2b-256 | 5eb2e28c03cb5f95753dc6c8c60534d993b997ae5cefca03aa8ad347e277618b |