Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Status page application with browser and REST API interface.
Install the package
pip install django-statusboard
Add the following applications to your Django projects
INSTALLED_APPS += [
'django.contrib.humanize',
'django.contrib.staticfiles',
'rest_framework',
'statusboard',
]
Update your urlconf:
# myproject/urls.py
urlpatterns += [
url(r'^statusboard/$', include('statusboard.urls')),
]
Update your database
./manage migrate
You can configure the app using the dict STATUSBOARD
in settings.py
:
from django.templatetags.static import static
STATUSBOARD = {
"INCIDENT_DAYS_IN_INDEX": 7,
"OPEN_INCIDENT_IN_INDEX": True,
"AUTO_REFRESH_INDEX_SECONDS": 0,
"FAVICON_DEFAULT": static('statusboard/images/statusboard-icon-default.png'),
"FAVICON_INDEX_DICT": {
0: static('statusboard/images/statusboard-icon-operational.png'),
1: static('statusboard/images/statusboard-icon-performance.png'),
2: static('statusboard/images/statusboard-icon-partial.png'),
3: static('statusboard/images/statusboard-icon-major.png'),
},
}
INCIDENT_DAYS_IN_INDEX
: number of days to show in index (1 = today).OPEN_INCIDENT_IN_INDEX
: show not fixed incidents in index, whether or not
the incident is older than INCIDENT_DAYS_IN_INDEX
.AUTO_REFRESH_INDEX_SECONDS
: auto refresh home page every N seconds (0 = disabled).FAVICON_DEFAULT
: default favicon.FAVICON_INDEX_DICT
: favicon for index, based on the worst status (default:
FAVICON_DEFAULT
). The keys (0, 1, 2, 3)
are the status values (see SERVICE_STATUSES
in statusboard/models.py
).django-statusboard
supports the following languages:
The following blocks are customizable in statusboard/base.html
:
title
: title of the pagebranding
: branding in fixed navbarbootstrap_theme
: bootstrap themeheader
: header of the pageuserlinks
: links in the headerfooter
: footer divstyle
: CSS
filesscript
: JavaScript filesTo customize the default style, create the file statusboard/base.html
that
extends the original base template and customize some blocks, e.g.:
{% extends "statusboard/base.html" %}
{% load static %}
{% block title %}
A.C.M.E. statuspage
{% endblock %}
{% block branding %}
<a class="navbar-brand" href="{% url 'statusboard:index' %}"><img src="{% static "/images/logo.png" %}"></a>
{% endblock %}
{% block bootstrap_theme %}
<link rel="stylesheet" href="{% static "/statusboard/css/spacelab-bootstrap.min.css" %}" />
<link rel="stylesheet" href="{% static "/css/mystyle.css" %}" />
{% endblock %}
Create a statusboard/base.html
in one of your templates dir:
{% extends `statusboard/base.html %}
{% block title %}
ACME, Inc.
{% endblock %}
{% block branding %}
<a class="navbar-brand" href="{% url 'statusboard:index' %}">ACME status</a>
{% endblock %}
django-statusboard
doesn't provide an out-of-the-box notification system, but
it's easy to implement using django signals or you can use django-statusboard-notify that provides some builtin notifications (e.g. email, Telegram).
Moreover, django-statusboard
tracks the previous status of a service
(Service._status
).
from django.dispatch import receiver
from django.db.models.signals import post_save
from django.core.mail import mail_admins
from statusboard import Service
@receiver(post_save, sender=Service)
def notify_service_update(sender, instance, **kwargs):
# Send an email to admins if the service is getting worse, otherwise do nothing.
if instance.status > instance._status:
mail_admins("Alert", "Service {} is {}".format(instance.name, instance.get_status_display()))
django-statusboard
comes with a set of REST API to manage its models, based on Django REST Framework ModelViewSet
:
/api/v0.1/servicegroup/
/api/v0.1/service/
/api/v0.1/incident/
/api/v0.1/incidentupdate/
/api/v0.1/maintenance/
$ DJANGO_SETTINGS_MODULE=tests.test_settings python manage.py test
$ cd statusboard && django-admin makemessages -l LOCALE
Copyright (C) 2019-2023 Emanuele Di Giacomo emanuele@digiacomo.cc
django-statusboard is licensed under GPLv2+.
FAQs
Django app to show system status
We found that django-statusboard demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.