Skip to content

synolia/SyliusMaintenancePlugin

Folders and files

NameName
Last commit message
Last commit date
Jan 29, 2025
May 25, 2021
Jan 29, 2025
Mar 15, 2021
Jan 29, 2025
Jan 29, 2025
Dec 31, 2024
Feb 5, 2025
Feb 5, 2025
Feb 5, 2025
Feb 5, 2025
Jun 8, 2021
Jul 6, 2021
Nov 7, 2022
Mar 16, 2021
Jan 29, 2025
Feb 5, 2025
Mar 15, 2021
Jan 29, 2025
Dec 31, 2024
Mar 15, 2021
Mar 15, 2021
Jul 6, 2021
Mar 15, 2021

Repository files navigation

License CI - Analysis CI - Sylius Version Total Downloads

Sylius Logo.

Sylius Maintenance Plugin

Features

When your website is under maintenance, and you want to :

  • Do not allow access to your website and display the message "the website is under maintenance" on the frontpage.
  • Allow access to your website to some Ips addresses or secret token
  • Activate and deactivate these behaviors by commands
  • Activate and deactivate behaviors in your Sylius Back-office
  • Custom your message in your Sylius Back-office
  • Allow access to search bots to avoid negative impact on SEO

Alt text

Requirements

Version
PHP ^8.2
Sylius ~2.0

Installation

  1. Add the bundle and dependencies in your composer.json :

    composer require synolia/sylius-maintenance-plugin
  2. Import routing in your config/routes.yaml file:

    synolia_maintenance:
        resource: "@SynoliaSyliusMaintenancePlugin/config/routes/admin_routing.yaml"
        prefix: '/%sylius_admin.path_name%'
  3. Clear cache

    php bin/console cache:clear

Usage

  • To turn your website under maintenance, please create a file maintenance.yaml at the root of your project.

  • If you want to allow access for some Ips, please add these Ip into maintenance.yaml
    For example :

    ips: [172.16.254.1, 255.255.255.255, 192.0.0.255]

You can turn your website under maintenance by console commands :

  1. Enable the plugin

    php bin/console maintenance:enable
  2. Enable the plugin and add one or multiple ips addresses separated with a space

    php bin/console maintenance:enable 172.16.254.1 255.255.255.255 192.0.0.255

3.Enable the plugin and disable admin access

``` shell
php bin/console maintenance:enable --disable-admin
```

4.Disable the plugin

``` shell
php bin/console maintenance:disable
```

5.Remove configuration file using CLI

By default, maintenance.yaml configuration file remains when running maintenance:disable or via admin panel using toggle disable Nevertheless passing option [-c|--clear] to command line above will reset previous saved configuration

You can also turn your website under maintenance in Back Office :

  • Enable/disable the plugin
  • Allow access for one or multiple ips addresses (optional)
  • Allow access for secret token (session and request) (optional)
  • Create your custom message (optional)
  • Grant access to search bots during maintenance (optional)
  • Grant access to admins during maintenance (optional)

If you want to put the maintenance.yaml in a directory, please add your directory in .env:

For example :

 SYNOLIA_MAINTENANCE_DIR=var/maintenance

If you want to add cache on the maintenance.yaml:

# .env
SYNOLIA_MAINTENANCE_CACHE=30 # ttl in seconds

And in project code (for example with redis)

# config/packages/prod/cache.yaml
framework:
    cache:
        ...
        pools:
            ...
            synolia_maintenance.cache:
                adapter: cache.adapter.redis

Precisions for access token

Once token is generated, disallowing maintenance will be available thought request as well. So you can use it as query parameter ?synolia_maintenance_token={$token} or in headers HTTP_SYNOLIA_MAINTENANCE_TOKEN: token for a particular request to bypass maintenance mode.

Development

See How to contribute.

License

This library is under the EUPL-1.2 license.

Credits

Developed by Synolia.