This plugin uses the route:before
hook to hide the whole website from not-logged-in users when option('maintenance')
is set to true
. It also sends a 503
code.
Kirby urls like assets
, api
, media
, panel
will be ignored and are still available.
composer require moritzebeling/kirby-maintenance
composer update moritzebeling/kirby-maintenance
Or download/clone this repo into site/plugins
of your Kirby project.
There are different ways to control the maintenance mode:
// site/config.php
return [
// one line switch
'maintenance' => true,
// more detailed configuration
'moritzebeling.kirby-maintenance' => [
'ignore' => [],
'css' => false,
'text' => 'This website is currently under maintenance and will be back online soon.',
]
];
Add a field maintenance
to the site.yml
blueprint to meet the condition $site->maintenance()->isTrue()
.
Via $site->maintenance_text()
you could edit the text that would welcome any logged out website visitor.
You can also use one of the prefabricated blueprint parts:
tabs/maintenance
sections/maintenance
fields/maintenance
fields/maintenance_text
You could also add a /.maintenance
file to the Kirby root directory to switch on maintenance mode. This method is used by bnomei/kirby3-janitor plugin. If you enter any text inside that file, this will be the output when the site is in maintenance mode.
Suggested by https://github.com/moritzebeling/kirby-maintenance/issues/1
With the moritzebeling.kirby-maintenance.css
option you could add a stylesheet, e.g.:
/* /assets/css/maintenance.css */
body {
width: 100%;
height: 100%;
margin: 0;
padding: 1rem;
display: flex;
text-align: center;
justify-content: center;
align-items: center;
}
.message {
max-width: 500px;
}
cd site/plugins
git clone
this repoRoadmap
maintenance
, if yes, display that pageIf you like this plugin, I would be glad if you would invite for on a coffee via PayPal If you have any ideas for further development or stumble upon any problems, please open an issue or PR. Thank you!
This plugin is work in progress and comes without any warranty. Use at your own risk.