A public status page for Django projects.
It gives visitors one simple place to check whether your website or services are working, whether there is an active incident, and how things have been behaving recently.
- A public page showing the overall status of your services.
- Service health supplied by Uptime Kuma, when you want to use it.
- A 60-day view of recent uptime.
- Incidents with updates, affected services, severity, and progress.
- A Django admin screen where you choose and order the services shown publicly.
- Responsive HTML, a light/dark theme, and visitor-friendly timestamps.
- A fallback mode that still shows your page when Kuma is unavailable or not configured.
This is a showcase of the status-page feature, rather than a complete Django project that you can clone and run immediately.
It does not include a manage.py, Django settings, a database, or a user login system. Those parts belong to the larger project where the feature is installed. The useful part here is the app itself: the models, admin workflow, templates, static files, migrations, and tests.
The basic process is:
- Copy the
status/folder into your Django project, usually asapps/status/. - Add
apps.statustoINSTALLED_APPS. - Include
status.urlsin your project’s URL configuration. - Connect the app to your project’s way of identifying a site from a request host.
- Run the included migrations and collect static files.
- Open Django admin, create a status page, and choose the services it should show.
The app supports more than one website in the same Django project. If your project only has one website, you can keep the same idea with a single site entry.
There is one important integration detail: this showcase expects the host project to provide the site lookup helpers imported by status/models.py, status/admin.py, and status/views.py. A different Django project will need to connect those imports to its own site and host setup.
The examples/host_integration/ folder provides
copyable URL and Kuma settings snippets plus the exact site-registry interface
the host must supply.
Kuma is optional. Without it, you can create services in Django admin and use the status page with its fallback health state.
For Kuma-backed health and uptime history, configure these environment settings in the host project:
STATUS_KUMA_BASE_URL=http://uptime-kuma:3001
STATUS_KUMA_STATUS_PAGE_SLUG=main
STATUS_KUMA_TIMEOUT_SECONDS=3
STATUS_KUMA_CACHE_SECONDS=300
The app reads Kuma’s public status-page endpoints. It does not need Kuma credentials for the current integration. The scheduled sync_status_uptime management command stores daily history in Django so the page is not limited to Kuma’s short public heartbeat window.
If you want to look closer at the implementation, start here:
- Create a status page
- How the app works
- Integration details
- Database models
- Public HTML behavior
- Tests
- Design decisions
Released under the MIT License.