Skip to main content

statusboard-notify

Build Pypi codecov

Utility for django-statusboard that notifies users about service status changes. The system supports notifications via email, Telegram, and Google Chat.

This app periodically notifies about service status changes - except for changes from "Operational" to "Performance issues" (and viceversa).

screenshot of a Telegram channel

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]

Note: this package requires the pandoc command installed on your system. Otherwise you can install the pypandoc_binary package (see https://pypi.org/project/pypandoc/)

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',
]

Internationalization and localization

django-statusboard supports the following languages:

  • English
  • Italian

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:

screenshot of the admin page

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:

  1. Create a bot with BotFather.
  2. Create a channel.
  3. Make your bot an admin of your channel.
  4. 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

Google Chat notification

To enable the Google Chat notifications, configure the STATUSBOARD_NOTIFY_GOOGLE_CHAT_WEBHOOK_URL setting.

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-2026 Emanuele Di Giacomo emanuele@digiacomo.cc

django-statusboard-notify is licensed under GPLv2+.

Metadata

Release files for django-statusboard-notify 0.8.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-statusboard-notify 0.8.3
File Size Uploaded
django_statusboard_notify-0.8.3.tar.gz 18.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-statusboard-notify 0.8.3
File Interpreter ABI Platform
django_statusboard_notify-0.8.3-py3-none-any.whl Python 3 none any Details

Total release size: 40.9 kB

Release files / django_statusboard_notify-0.8.3.tar.gz

Download URL django_statusboard_notify-0.8.3.tar.gz
Size 18.0 kB
Tags Source
SHA-256 checksum
How to use checksums
8724563b38ff8e4cbd6b87dd59529400b400c8332ea56291e039cfec74f0d639
BLAKE2b-256 checksum
How to use checksums
ecdf21b5f9bf1374076bc218d63a2334c6992d7f1e7fd9f822926c7d0ca5d871
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release files / django_statusboard_notify-0.8.3-py3-none-any.whl

Download URL django_statusboard_notify-0.8.3-py3-none-any.whl
Size 22.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ab8d102f9fdf2259c3e255c504bc1f33ebb3deab6332d0128229931256b86133
BLAKE2b-256 checksum
How to use checksums
e480976921eddae7d93969ce4ee736dc82f80416fdeee8cd53282f10e4b7ff01
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release history Release notifications | RSS feed

This release

0.8.3 This release

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page