novactive/ezmaintenancebundle

Novactive eZ Maintenance bundle is an Ibexa bundle that helps you to easily enable a Maintenance page.

v2.0.1 2024-01-17 10:15 UTC

README

This repository is what we call a "subtree split": a read-only copy of one directory of the main repository. It is used by Composer to allow developers to depend on specific bundles.

If you want to report or contribute, you should instead open your issue on the main repository: https://github.com/Novactive/Nova-eZPlatform-Bundles

Documentation is available in this repository via .md files but also packaged here: https://novactive.github.io/Nova-eZPlatform-Bundles/master/MaintenanceBundle/README.md.html

Downloads Latest version License

Easily enable a Maintenance page.

Installation

Step 1: Download using composer

Add the lib to your composer.json, run composer require novactive/ezmaintenancebundle to refresh dependencies.

Step 2: Enable the bundle

Then inject the bundle in the bundles.php of your application.

     Novactive\NovaeZMaintenanceBundle\NovaeZMaintenanceBundle::class => [ 'all'=> true ],

Step 3: Add the default routes

Activate the sroutes:

_novaezmaintenance_routes:
    resource: '@NovaeZMaintenanceBundle/Resources/config/routing/main.yaml'

Step 4: Clear the cache and check

php app|ezpublish/console cache:clear --env=dev

Step 5: check X-Maintenance response header to VCL

Maintenance page will return 503 status code and VCL will abandon it, So update your vcl to force displaying response with 503 and X-Maintenance header

if (bereq.http.accept ~ "application/vnd.fos.user-context-hash"
        && beresp.status >= 500 && !beresp.http.X-Maintenance
    ) {
        return (abandon);
    }

Configuration

nova_ezmaintenance:
    system:
        default:
            enable: false # to enable to capability
            template: '@ibexadesign/maintenance.html.twig' # the template you want as a maintenace page
            lock_file_id: 'plop.lock' # the name of the lock file in the cluster