Laravel Maintenance Mode
, (*1)
Put your application down and browse in dev mode., (*2)
, (*3)
Installation
- Install package through composer
composer require mahmud/maintenance-mode
Or add dependency to composer.json file, (*4)
{
"require": {
"mahmud/maintenance-mode": "^1.0"
}
}
- Add Service Provider to
providers array in config/app.php
'providers' => [
\Mahmud\MaintenanceMode\MaintenanceModeServiceProvider::class,
]
- Add the following Middleware in middleware array in app/Http/Kernel.php
protected $middleware = [
\Mahmud\MaintenanceMode\Middleware\MaintenanceModeMiddleware::class,
];
- Publish resources by this command
php artisan vendor:publish --tag=maintenance-mode --force
- Add
APP_STATUS and UP_TIME to your .env file
APP_STATUS=down
UP_TIME='2017-05-19 23:30:15'
Usage
.env
Set APP_STATUS in your .env file. Possible values are up and down.
Set app status to down when you want to go for maintenance. And Also set UP_TIME when your application will be up.
UP_TIME format is 'YYYY-MM-DD hh:mm:ss'., (*5)
UP_TIME has no effect when APP_STATUS=up, (*6)
Dev Mode
You can access you app when it is in maintenance mode. To access you must visit your site with query param mode=dev
The URL will be, (*7)
http://your-site.com?mode=dev
Once you browse like this you can browse for the next few minutes specified in cookie_exp_min, (*8)
Configuration
To change configuration go to config/maintenance-mode.php. Available configurations are listed below., (*9)
app_status
This is the status of your app. Possible value are: down | up . When you start maintenance work, you should set the status to down. You can also set the status from .env file. Just set APP_STATUS=down in your environment., (*10)
up_time
You should set time when your application will be up. You can set up time from .env file by setting UP_TIME='YYYY-MM-DD hh:mm:ss' in this format., (*11)
cookie_exp_min
Dev mode will be expired after specified minutes. After being expired user should visit the site with mode=dev query param to start dev session again., (*12)
down_status_code
This status code will be send with the header when you app is down., (*13)
app_down_msg
This message will be sent as a response when client sent AJAX request to the app. Response will be in JSON format where key is error and value is the message. For example:, (*14)
[
'error' => 'Application is down for maintenance'
]
view
This view is returned when your application is down. You can set a custom view by specifying the view path here. i.e., (*15)
[
'view' => 'public.errors.custom_view'
]
when you view path is resources/views/public/errors.custom_view.blade.php, (*16)