← ClaudeAtlas

laravel-env-maintenancelisted

Toggles Laravel maintenance mode from .env (APP_MAINTENANCE) with branded 503 page, secret bypass URL, and safe coexistence with manual artisan down. Use when deploying upgrades without SSH or for scheduled maintenance windows.
Yaz-inc/yazinc-ai-toolkit · ★ 0 · AI & Automation · score 60
Install: claude install-skill Yaz-inc/yazinc-ai-toolkit
# Laravel Env-Driven Maintenance Mode Control maintenance via `.env` instead of only `php artisan down` — synced on each boot to `storage/framework/down`. ## When to use - Flip maintenance on/off by editing `.env` + deploy (or config clear) - Branded 503 page for visitors; staff bypass via secret URL - Avoid accidentally clearing a manual `artisan down` with env toggle ## .env ```env APP_MAINTENANCE=true APP_MAINTENANCE_MESSAGE="Application offline for scheduled upgrade." APP_MAINTENANCE_SECRET=your-bypass-token APP_MAINTENANCE_RETRY=60 APP_MAINTENANCE_STATUS=503 ``` Bypass while down: visit `https://domain.com/{APP_MAINTENANCE_SECRET}` ## Config ```php // config/app.php 'maintenance_env' => [ 'enabled' => filter_var(env('APP_MAINTENANCE', false), FILTER_VALIDATE_BOOL), 'message' => env('APP_MAINTENANCE_MESSAGE', '...'), 'secret' => env('APP_MAINTENANCE_SECRET'), 'retry' => (int) env('APP_MAINTENANCE_RETRY', 60), 'status' => (int) env('APP_MAINTENANCE_STATUS', 503), ], ``` ## EnvMaintenanceService Boot from `AppServiceProvider::boot()`: 1. If `APP_MAINTENANCE=true` → activate down file with payload flag `env_managed: true` 2. If `APP_MAINTENANCE=false` → deactivate **only** if current down state is env-managed 3. Manual `php artisan down` (no `env_managed`) → **never** cleared by `.env` Reuse middleware `$except` paths from `PreventRequestsDuringMaintenance` (e.g. `logo/*`, `database-setup`). ## Branded 503 view `resources/views/errors/50