maintenance
The Maintenance module provides site administrators with a powerful and flexible way to control when and how Drupal's maintenance mode is applied and displayed. Designed for both developers and administrators, it offers automation, customization, and visibility filtering to meet real-world needs for scheduled downtimes or access restrictions.
Overview
Advanced Maintenance Mode Control, with scheduling, redirection, theming and more.The Maintenance module is a fully configurable and extensible enhancement to Drupal’s core maintenance mode system. It allows administrators to define how and when maintenance mode is triggered, who sees it, and how it looks—making it ideal for professional-grade sites requiring uptime control and graceful downtime messaging.
Features
- Custom Maintenance Message: Show plain text, formatted HTML, or even render a full node as the page content.
- Scheduling Maintenance: Automatically enable or disable maintenance mode based on time and date.
- Access Control: Show or hide maintenance mode based on IP address, route path, or query string.
- User Redirection: Redirect anonymous users to a custom URL after a delay or instantly.
- Page Reload Options: Add a reload button or automatically refresh the page every 15 seconds.
- Custom HTTP Status Codes: Override the default 503 response to use 200, 403, or other valid HTTP codes.
- Maintenance Themes: Choose from built-in templates such as clean or particles.
- Status Report & Logging: View when maintenance was last enabled and add log notes for clarity.
- Developer-Friendly: Includes services, hooks, and traits for extending logic or theming.
Requirements
This module requires no additional modules beyond Drupal core.
Installation
Follow standard Drupal module installation methods:
- Composer:
composer require drupal/maintenance - Manual: Download and place the module in
/modules/contrib, then enable it from the Extend page.
Please view the project's README.md for detailed installation instructions.
Post-Installation Configuration
All settings are located under: /admin/config/development/maintenance
Here you can:
- Define how maintenance message is displayed.
- Configure scheduling, redirection, reload behavior, and themes.
- Set visibility rules based on IPs, paths, and query strings.
Support
If you have questions, issues, or suggestions for improvement, please submit them via the Maintenance issue queue.
Maintenance Beta 1 is now available!
This beta release includes major structural improvements, fatal bug fixes, better performance, and enhanced coding standards. Developers can now rely on a clean architecture using Traits, helper classes, and detailed inline documentation. Try it now and help shape the stable release!
☉ Issues ☰ File an issueThe Maintenance module continues to evolve with community feedback. Stay up to date with new features and contribute to make it even better.