shipu/web-installer
Shipu Web Installer adds a browser-based setup wizard to Laravel apps. It checks server requirements and folder permissions, configures the .env and database connection, runs migrations, and creates the first admin user so you can ship a self-installing app.
Architecture fit. shipu/web-installer is a Laravel package that provides a browser-driven installation flow (environment file generation, database configuration, initial admin provisioning) rather than a runtime library. Architecturally it sits in the bootstrap/deployment layer, not the application request path. That makes it a good fit for greenfield Laravel deployments and internal tooling, and a poor fit for apps that already have an established, automated provisioning pipeline (Terraform/Ansible/CI-driven artisan commands).
Integration feasibility. Standard Laravel package mechanics apply: Composer install, service provider auto-discovery, config/asset publishing, and one or more installer routes. The v1.0.1 change is a concrete signal about how the package wires itself in — it fixes config:cache failures caused by closures in published configuration, which previously prevented the entire application config from being cached. Any team whose deployment pipeline runs php artisan config:cache would have hit a hard failure under v1.0.0. That the defect shipped in the initial release suggests the deployment path was not covered by CI.
Technical risk.
.env and creates an administrator is effectively an unauthenticated privileged endpoint until it is disabled. The package's guardrails (post-install lock, route middleware, environment checks) are the single most important thing to verify and are not evidenced in the release notes.Key questions for the maintainer / spike.
composer.json?.env directly, and how does it handle read-only filesystems and containerized deployments?config:cache, route:cache, and optimize?.env, half-migrated database)?Stack fit. Laravel-only. It offers no value to non-Laravel services and should not be considered a general provisioning tool. The natural home is a platform template or starter kit where a fresh Laravel instance needs first-boot configuration without shell access — for example, a self-service or on-premise distribution where the operator cannot run CLI commands.
Migration path. Treat it as an optional, environment-scoped dependency rather than a permanent one:
^1.0.1 (v1.0.0 must be explicitly excluded — it is known-broken under config caching).Compatibility. The v1.0.1 fix directly removes a blocker for any pipeline using config:cache, which is the Laravel production default and effectively mandatory in autoscaled/containerized deployments where each instance rebuilds caches on boot. Teams that never cache config would have been unaffected; teams that do would have seen a total deployment failure. Verify our own pipeline's cache steps (config:cache, route:cache, view:cache) as part of acceptance testing, not just the interactive installer.
Sequencing. Because this touches deployment, sequence it behind, not alongside, other platform changes. Recommended order: (a) confirm Laravel/PHP support, (b) validate installer lock-down, (c) validate cache commands, (d) integrate into one non-critical environment, (e) add a deployment-runbook entry and an automated check that the installer is disabled, (f) roll out to templates. Do not bundle this with an unrelated framework upgrade.
Maintenance. Low code surface, low release cadence, single primary maintainer. The realistic maintenance task is not upgrading the package but policing its lifecycle: ensuring it is disabled post-install, removed from production images where it is not needed, and re-validated on each Laravel major upgrade. Budget a small ongoing allowance for patching or forking if upstream stalls.
Support. Community-only (GitHub issues/PRs). No vendor SLA. Escalation for a production-blocking defect is effectively "fix it ourselves," which is acceptable for a bootstrap-time tool but not for anything in the request path.
Scaling. Negligible runtime scaling impact — the installer executes a handful of times per environment, not per request. The scaling-relevant concern is horizontal: in an autoscaled fleet, every new instance runs config:cache at boot, which is precisely where v1.0.0 failed and v1.0.1 now succeeds. Post-fix, this risk is retired; pre-fix it was a fleet-wide boot failure.
Failure modes.
.env or partially migrated schema; needs a documented teardown/re-run procedure..env fail silently or noisily on read-only container filesystems.Ramp-up. Low for any Laravel-fluent engineer — the package follows conventional patterns and the installer is a UI over familiar operations. The non-obvious learning is operational, not technical: the team must internalize the "install once, then disable" discipline and encode it in the runbook and in automated post-deploy checks. Estimate roughly half a day for a first end-to-end evaluation in a disposable environment, plus runbook and guardrail work before any production-adjacent use.
How can I help you explore Laravel packages today?