django-maintenance-mode
shows a 503 error page when maintenance-mode is on.
Decision gist · record as of 2026-08-14
Yes. The package is actively maintained, has no known vulnerabilities, low install friction, and solves a common operational need in Django deployments. The permissive MIT license and broad Django version support (4.2 through 6.0) make it a safe choice for most projects. Install it if you need to take your site offline without restarting the server.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a custom 503.html template in your templates directory; middleware position matters for which middleware executes during maintenance mode.
- Low install friction with a single wheel distribution.
- Actively maintained with a recent release (31 days old) and consistent commit activity.
License · maintenance · safety
permissive license (permissive) — MIT license (permissive) allows commercial and private use with minimal restrictions.
last release 2026-07-14 (31 days) · last repo commit 2026-08-10 · 526 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 278,084 downloads/mo, #8,138 on PyPI
Alternatives
Verify before relying
pip install django-maintenance-mode
# In settings.py:
INSTALLED_APPS = [
'maintenance_mode',
# ...
]
MIDDLEWARE = [
# ...
'maintenance_mode.middleware.MaintenanceModeMiddleware',
]
# Create templates/503.html, then toggle:
MAINTENANCE_MODE = True- Whether python-fsutil has any known issues or maintenance concerns not reflected in this package's security record.
- Whether the local file backend state file is safe for concurrent writes in multi-process deployments.
What it is and what it does
django-maintenance-mode is a Django middleware that intercepts requests and returns a 503 Service Unavailable response when maintenance mode is enabled. It operates at the application level without touching the database or requiring the server to restart, making it suitable for planned downtime, deployments, or migrations. The middleware can be configured to exclude specific users (staff, superusers, authenticated), IP addresses, or URL patterns, and supports multiple state backends (local file, cache, storage) to track whether maintenance mode is active.
The package is designed for developers who need to take their Django site offline temporarily while keeping the application running. It handles response customization (HTML or JSON), redirect URLs, retry headers, and context processors for template rendering. Configuration is entirely optional—sensible defaults apply if not specified—and the middleware can be positioned in the stack to control which other middleware executes during maintenance.
Use it for
- Display a maintenance page during database migrations or schema updates without restarting the application.
- Temporarily take a site offline for emergency fixes or deployments while keeping the server process running.
- Allow staff and superusers to continue accessing the admin site or specific URLs while other users see the maintenance page.
- Return JSON responses for API endpoints during maintenance while serving HTML to web browsers.
- Redirect users to an external status page or alternative URL during planned downtime.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
The package is actively maintained, has no known vulnerabilities, low install friction, and solves a common operational need in Django deployments. The permissive MIT license and broad Django version support (4.2 through 6.0) make it a safe choice for most projects. Install it if you need to take your site offline without restarting the server.
Install
django-maintenance-mode on PyPI
Before you install
Low install friction with a single wheel distribution. Actively maintained with a recent release (31 days old) and consistent commit activity. Depends only on django and python-fsutil.
Requires a custom 503.html template in your templates directory; middleware position matters for which middleware executes during maintenance mode.
License in practice
MIT license (permissive) allows commercial and private use with minimal restrictions.
Quickstart
pip install django-maintenance-mode
# In settings.py:
INSTALLED_APPS = [
'maintenance_mode',
# ...
]
MIDDLEWARE = [
# ...
'maintenance_mode.middleware.MaintenanceModeMiddleware',
]
# Create templates/503.html, then toggle:
MAINTENANCE_MODE = True
Verify before relying
- Whether python-fsutil has any known issues or maintenance concerns not reflected in this package's security record.
- Whether the local file backend state file is safe for concurrent writes in multi-process deployments.
Package facts
| License | permissive license permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesdjangopython-fsutil |
| Maintenance | Actively maintained 31 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 278,084 / month, #8,138 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: Web EnvironmentFramework :: DjangoFramework :: Django :: 4.2Framework :: Django :: 5.0Framework :: Django :: 5.1Framework :: Django :: 5.2Framework :: Django :: 6.0Intended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Software Development :: Build Tools |
Evidence: django_maintenance_mode-0.23.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “django maintenance mode”
- django-maintenance-modeActivates a 503 maintenance page in Django applications without…
- django-bootstrap3Provides Django template tags and filters to render Bootstrap 3 HTML…
- django-read-onlyPrevents Django database write operations by intercepting and…
Give your agent the search over MCP, or paste the wish link into any chat.
More Build Tools packages
Provides reusable utilities for Python packaging interoperability, including version handling, specifiers, markers, requirements, tags, and metadata parsing according to standards like PEP 440 and PEP 425.
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
pip is the standard installer for Python packages, enabling you to download and install packages from the Python Package Index and other indexes into your Python environment.
Hatchling is a standards-compliant Python build backend that handles packaging, metadata, and distribution of Python projects when configured in a project's pyproject.toml file.
Generates Python gRPC service stubs and message classes from Protocol Buffer definitions, enabling developers to build gRPC clients and servers.
pre-commit is a framework for installing and running git hooks written in any language before commits are made, automating code quality and validation checks across multi-language projects.
Install it if your team needs consistent, automated validation at commit time.
See also dj-rest-auth · dj-materialized-views · django-loginas · django-dirtyfields · django-browser-reload · django-querycount · django-pgmigrate · django-impersonate · django-upgrade