- Is kilik/maintenance-bundle a Laravel package?
- No. It is a Symfony2 bundle built around Symfony's Bundle class, dependency-injection extension, kernel.request event subscriber, and console commands. Laravel has no equivalent registration path for a Symfony Bundle class, so it cannot be installed as a Laravel drop-in. Laravel already provides native maintenance mode through php artisan down.
- How do I install kilik/maintenance-bundle in Laravel?
- You cannot meaningfully install it in Laravel. Composer may resolve the package, but the bundle will not boot because Laravel has no Symfony DI container, no kernel.request event, and no Bundle registration mechanism. Adding symfony/framework-bundle and symfony/http-kernel would introduce a second container and event system alongside Laravel's. The realistic path is a native reimplementation, not integration.
- What Laravel versions does kilik/maintenance-bundle support?
- None officially. The package is Symfony2-era, and Symfony 2 reached end-of-life in 2018. Its PHP constraints and dependency pins may not even resolve on PHP 8.x, which Laravel 10 and 11 require. Treat it as unsupported for any modern Laravel version.
- What is the Laravel equivalent of this maintenance bundle?
- Laravel's built-in php artisan down and php artisan up commands cover the same use case. The down command supports --secret, --allow, --render, --retry, and --redirect options for bypass tokens, IP allowlists, custom views, and Retry-After headers. For custom behavior, write a small middleware that checks a cached flag and returns a 503 response.
- How does the IP allowlist work and is it safe behind a proxy?
- The bundle checks the client IP against a configured allowlist and lets trusted addresses bypass maintenance mode. That is only reliable if your proxy or CDN trust configuration is correct, because X-Forwarded-For can be spoofed otherwise. A maintenance gatekeeper is security-adjacent, so an unmaintained component deciding between 503 and 200 is risky. In Laravel, use php artisan down --allow with properly configured TrustProxies middleware.
- Can I use kilik/maintenance-bundle with Symfony 6 or Laravel 10?
- No. The bundle targets Symfony2 conventions, including its Bundle class, YAML service definitions, and DI extension structure. Symfony 6 and Laravel 10 both require modern PHP versions and different extension points. There is no known maintained fork that updates it for current frameworks.
- How do I show a custom maintenance page with this bundle?
- The bundle renders a configurable template when the maintenance lock is active, returning a 503 response to visitors. In Laravel, the equivalent is php artisan down --render=errors.503 or a custom middleware that returns view('errors.503', [], 503). Do not try to wire the Symfony bundle's template rendering into Laravel's view layer.
- Does kilik/maintenance-bundle support multiple servers or containers?
- Its file driver stores lock state locally, so multiple nodes or containers will not see the same maintenance flag. A database driver is mentioned in configuration, but the package is unmaintained and untested for distributed deployments. In Laravel, use a shared cache or database-backed flag if you need consistent maintenance state across instances.
- Is kilik/maintenance-bundle maintained and secure?
- Signals are weak: zero stars, zero dependents, a last release in January 2022, and a namespace referencing the known LexikMaintenanceBundle project. It is unclear whether this is a maintained fork, a mirror, or a stale copy. Because it controls whether production serves a 503 or 200 response, an unmaintained gatekeeper is a poor security risk to carry. Avoid it in production.
- How do I test maintenance mode in Laravel?
- Use php artisan down in a test environment, then assert that normal requests receive a 503 response with the expected Retry-After header. Test the --secret and --allow bypass paths, and confirm php artisan up restores normal traffic. If you build custom middleware, feature-test it with the cache flag toggled on and off.