Cuando tenemos una aplicación de Laravel en producción, puede que necesitemos «aplicar cambios» que afecten su funcionamiento mientras se lleva a cabo la actualización. Para estos casos, Laravel nos brinda una solución sencilla: El modo de mantenimiento.

El modo de mantenimiento hace que nuestra aplicación no esté disponible mientras realizamos alguna actualización, evitando así que los usuarios obtengan errores inesperados si acceden durante este proceso.

Activar el modo en mantenimiento

Colocar una aplicación de Laravel en modo de mantenimiento es muy sencillo, solo debemos dirigirnos al directorio raíz de nuestro proyecto y ejecutar desde la terminal:

#
php artisan down

Y nos devolverá el mensaje: Application is now in maintenance mode.

De esta manera, la aplicación estará «inactiva» mientras hacemos las actualizaciones y cuando algún usuario intente acceder a nuestra aplicación, verá una vista como la siguiente:

Vista por defecto del modo de mantenimiento de Laravel

Si la aplicación está en modo mantenimiento se lanzará una excepción MaintenanceModeException con un código de estado 503.

Mientras la aplicación esté en mantenimiento las colas de trabajo no se ejecutarán.

Vista pre-renderizada del modo en mantenimiento

En versiones anteriores de Laravel, los usuarios de nuestra aplicación podían encontrar ocasionalmente errores mientras se actualizaban las dependencias de Composer durante el modo en mantenimiento.

Sin embargo, a partir de la versión 8 del framework, Laravel nos permite pre-renderizar una vista para este modo, la cual va a mostrarse antes de que se carguen las dependencias de nuestra aplicación.

Para lograr esto, podemos usar la opción --render con el nombre de la vista que queremos pre-renderizar:

#
php artisan down --render="errors::503"

Personalizar vista del modo en mantenimiento

Laravel también nos permite cambiar la vista por defecto del modo en mantenimiento que viene con el framework, por nuestra propia vista personalizada.

Para hacer esto, solo debemos agregar nuestra plantilla en el archivo 503.blade.php dentro del directorio resources/views/errors/.

Ahora, al colocar nuestra aplicación en modo de mantenimiento, veremos nuestra vista personalizada:

Vista del modo en mantenimiento personalizada

También puedes pasar tu vista personalizada en la opción --render del comando php artisan down.

Permitir acceso en modo de mantenimiento

Laravel también nos brinda la posibilidad de omitir el modo en mantenimiento para que algunos de nuestros usuarios puedan acceder a la aplicación, esto mediante el uso de un token que podemos especificar con la opción --secret:

#
php artisan down --secret="token-secreto"

Ahora, nuestros usuarios pueden ingresar a la aplicación usando una URL como la siguiente: http://www.tu-proyecto.local/token-secreto.

Esta opción emitirá una cookie llamada laravel_maintenance una vez que el usuario acceda a la URL con el token secreto.

Desactivar el modo en mantenimiento

Desactivar el modo de mantenimiento es rápido y sencillo, solo debemos ejecutar en la consola:

#
php artisan up

Lo cual nos mostrará el mensaje: Application is now live.

Para conocer todos las opciones disponibles, ejecuta: php artisan help down.

Material relacionado

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.