No release in over a year
Use simple model and before filter to activate the maintenance mode.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

Simple Maintenance Mode

A simple maintenance mode gem for rails apps. If you need a mode/page for maintenance purposes, this is a gem for you. It provides a simple maintenance page, filter for your controllers and a fairly simple logic for activation/deactivation.

When activated, users will be redirected (maintenance_mode_check filter) to a static maintenance mode page (/maintenance route). The maintenance mode settings will be stored in a app settings model. Additionally each user will get a cookie when the mode is active and a redirection to the maintenance page will happen.

Usage

Activating/deactivating the maintenance mode

To activate the maintenance mode simply run the rails console and do this: SimpleMaintenanceMode::Model::AppSettings.maintenance_mode = true

Overriding maintenance mode for adminis

As a rails app administrator, you will be always able to access the page by using the maintenance_mode_override=1 GET parameter. This will set a cookie and allow administrators to see the app without beeing redirected to the maintenance page. To activate the override access you webapp similar to this: https://<you-app-domain>/?maintenance_mode_override=1.

To remove the override, simply delete the maintenance_mode_override cookie.

Installation

Add this line to your application's Gemfile:

gem 'simple-maintenance-mode'

And then execute:

$ bundle
$ rails g simple_maintenance_mode:install

Or install it yourself as:

$ gem install simple-maintenance-mode

Usage

Put this in your Application Controller

class ApplicationController <  ActionController::Base
  include SimpleMaintenanceMode::Filter
  before_action :check_maintenance_mode
end

You can get/set the maintenance mode with the following method

# get current maintenance mode
SimpleMaintenanceMode::Model::AppSettings.maintenance_mode
# will return true|false

# set maintenance mode
SimpleMaintenanceMode::Model::AppSettings.maintenance_mode = true|false

# use content for custom contents, i.e.
SimpleMaintenanceMode::Model::AppSettings.content.maintenance_info = {
    title: 'This website is in maintenance',
    message: 'The maintenace will take 10min.'
}
# later you can use it in