Django Enterprise Maintenance Suite
Enterprise Maintenance Suite is a Django reusable application that provides enterprise-grade maintenance control such as:
- Full Maintenance Mode (503)
- Read-Only Mode (No Writes)
- Admin approval workflow
- Time-based maintenance windows
- Audit logging
This package is intended to be installed via pip and plugged directly into any existing Django project.
Features
- Full system maintenance (HTTP 503)
- Read-only mode (blocks POST / PUT / PATCH / DELETE)
- Admin-controlled enable / disable
- Approval workflow
- Time-window based activation
- Middleware based request interception
- Audit trail for maintenance actions
- Production-ready Django app
Installation
1. Install Package from PyPI
pip install django_enterprise_maintenance_suite
2. Add to INSTALLED_APPS
INSTALLED_APPS = [
...
"django_enterprise_maintenance_suite",
...
]
3. Add Middleware
MIDDLEWARE = [
...
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django_enterprise_maintenance_suite.middleware.MaintenanceMiddleware',
]
4. Add to settings.py
MAINTENANCE_SUITE = {
'ADMIN_URL_NAME': 'admin:index',
'MAINTENANCE_TEMPLATE': '503.html',
'READ_ONLY_ALLOWED_METHODS': ["GET", "HEAD"],
}
5. Run Migrations
python manage.py migrate
6. Add to urls.py
from django.urls import path, include
urlpatterns = [
...
path("maintenance/", include("django_enterprise_maintenance_suite.urls")),
]
7. Create SuperUser
python manage.py createsuperuser
Requirements
- Python 3.9+
- Django 4.2+
How It Works
- Incoming requests pass through
MaintenanceMiddleware - Active maintenance window is evaluated
- Mode is applied:
- Maintenance Mode → HTTP 503
- Read-Only Mode → Blocks write methods
- Admin URLs are ignored by default
Maintenance Modes
Full Maintenance Mode
- Blocks all requests
- Returns 503 Service Unavailable
- Intended for deployments & outages
Read-Only Mode
- Allows safe HTTP methods
- Blocks:
- POST
- PUT
- PATCH
- DELETE
- Returns 403 Forbidden
Admin Panel Usage
The Django Admin allows you to:
- Create maintenance windows
- Enable / disable maintenance
- Approve or reject maintenance
- Track audit logs
Custom 503 Page
To override the default maintenance page, create: templates/503.html Django will automatically use this template.
Use Cases
- Production deployments
- Database migrations
- Emergency maintenance
- Compliance-driven outages
- Enterprise change management
Supporting
License
Licensed under the MIT License. Copyright © 2026 TS Tamarai Selvan Copy of the license.
Release files for django-enterprise-maintenance-suite 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django_enterprise_maintenance_suite-1.0.1.tar.gz | 14.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_enterprise_maintenance_suite-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.5 kB
Release files / django_enterprise_maintenance_suite-1.0.1.tar.gz
| Download URL | django_enterprise_maintenance_suite-1.0.1.tar.gz |
|---|---|
| Size | 14.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
44e82832f221fb7967718b227927c9a970de4151c80ba8853b877dae92b491ea
|
|
BLAKE2b-256 checksum How to use checksums |
1d94f85def87aa9272e9fa877c99d97b271d0c78a4f6b4c90d14b7ca5d0bf615
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Release files / django_enterprise_maintenance_suite-1.0.1-py3-none-any.whl
| Download URL | django_enterprise_maintenance_suite-1.0.1-py3-none-any.whl |
|---|---|
| Size | 17.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
876da047d54decb12ebd5e48e354ad8a8278562720191960290c6bd3d1eea192
|
|
BLAKE2b-256 checksum How to use checksums |
1d69b0a933200814096c1c3025c10c9719c8c9317ae5d4c41fd4957becf663d3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|