- What is grafite/maintenance used for in Laravel?
- Grafite Maintenance is a Composer package that adds a configurable maintenance-mode layer to Laravel applications. It is intended for planned downtime, deploys, and upgrades where you want to take the site offline while letting selected IPs or users continue testing. The package advertises custom maintenance views, allowlists, and Artisan commands for enabling, disabling, and checking maintenance status.
- How do I install grafite/maintenance in a Laravel app?
- Install it with Composer using composer require grafite/maintenance. Laravel package auto-discovery should register the service provider, and you publish any package config or views only if the package documentation requires it. Because the repository has little public usage signal, verify the service provider and config keys in the source before relying on the default setup.
- Which Laravel versions does grafite/maintenance support?
- The provided package context does not declare a definitive Laravel or PHP version matrix. Check the composer.json constraints in the repository and compare them with your application's framework and PHP versions before installing. For older or newly released Laravel majors, test the package in a staging branch rather than assuming compatibility.
- How do I let specific IPs or users bypass maintenance mode?
- The package overview describes allowlists for IP addresses and users so developers and stakeholders can keep testing during downtime. Configure those allowlists in the package config and confirm how user-based bypass is resolved in the middleware. If you are behind a load balancer or proxy, verify trusted-proxy and X-Forwarded-For handling so the allowlist cannot be spoofed.
- Can I use a custom branded maintenance page with grafite/maintenance?
- Yes, the package is described as supporting custom maintenance pages so you can serve a branded view instead of Laravel's default response. You will typically publish or override the package view and point configuration at your own template. Confirm the exact view namespace and response status codes in the source or README before shipping.
- What Artisan commands does grafite/maintenance provide?
- The package advertises Artisan commands to enable, disable, and check maintenance status quickly. Some assessments also describe thin aliases over framework cache, config, route, and queue commands, so the exact command set should be verified in src/. Avoid command names that collide with Laravel built-ins, and test the runbook in staging.
- How is grafite/maintenance different from Laravel's built-in down and up commands?
- Laravel already provides php artisan down and php artisan up with basic maintenance responses and bypass options. Grafite Maintenance claims to extend that with custom views, IP and user allowlists, and package-specific configuration. The practical difference depends on whether the installed version is a request-path middleware gate, a command suite, or both, so inspect the source before choosing it over the framework feature.
- Is grafite/maintenance safe for production use?
- Treat it as a low-maturity dependency: the repository shows no meaningful stars, dependents, or maintenance signal in the supplied assessment. If it gates HTTP requests, a failure could either expose a half-deployed app or lock out on-call staff, so test fail-open and fail-closed behavior. For revenue-critical or compliance-sensitive services, prefer Laravel's built-in maintenance mode or a maintained alternative unless you are prepared to own the package.
- Does grafite/maintenance pause queue workers and scheduled jobs during maintenance?
- The package description focuses on the HTTP maintenance layer and does not clearly state whether queue workers and scheduled tasks are paused. Laravel's own maintenance mode has separate queue and schedule considerations, and those should be tested explicitly. If background jobs must stop during deploys, add your own worker and scheduler controls rather than assuming this package handles them.
- How do I test maintenance mode and allowlist bypasses with grafite/maintenance?
- Write feature tests that hit a normal route while maintenance is enabled and assert the expected response, then repeat with an allowlisted IP or authenticated user. Use Laravel's HTTP testing helpers and simulate proxy headers only if your trusted-proxy configuration is set. Also test the Artisan enable, disable, and status commands and verify they behave idempotently across multiple app instances.