Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Installer Laravel Package

leanadmin/installer

LeanAdmin Installer provides a simple Artisan command to install and configure the LeanAdmin panel in a Laravel application, publishing assets and running setup steps so you can get a working admin backend quickly.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. leanadmin/installer is a Composer-distributed Laravel scaffolding package, not an application library. Its job is to front-load setup: publish config/views/assets, register a service provider and routes, run migrations, and seed a default admin user — all from a single Artisan command. Architecturally this is a standard and well-understood Laravel pattern, so fit is high if the target app is on a compatible Laravel major version. The package does two distinct things (a one-shot installer and what appears to be runtime wiring via provider/route registration), and that dual role is the main architectural wrinkle: installers should ideally be a require-dev, one-shot artifact, but anything that registers routes and a provider is effectively a runtime dependency.

Integration feasibility. Low-to-moderate effort for a spike. composer require + one Artisan command is a familiar path for any Laravel team. The real feasibility gate is version drift: last release is 2021-01-23 (Laravel 8 era), 5 stars, and a 0.325 composite score. It almost certainly does not declare support for Laravel 10/11/12 and may not install cleanly on modern PHP. Feasibility therefore hinges on the target framework version, not on the package's design.

Documentation inconsistency (material finding). The supplied description.md describes an installer (config/assets/migrations/routes/seeder), while assessment-laravel_dev.md describes a token issuance package (Sanctum-style createToken, plainTextToken, token naming in v0.2.0, abilities/scopes). These are not the same surface. Either the assessment doc was written against a sibling package or the installer also ships token scaffolding. As TPM I would not sign off until this is resolved — onboarding docs, support runbooks, and test strategy all depend on which of the two we are actually adopting.

Technical risk.

  • Maintainer/abandonment risk (high): single low-visibility package, no release in ~4 years, 5 stars. Effectively unmaintained; assume you own the code.
  • Automated migration + seeding (high): an installer that runs migrations and seeds an admin user is convenient in local dev and dangerous anywhere else. Default seeded credentials are a classic production footgun.
  • Non-idempotency (medium): installers that publish/overwrite assets and register routes rarely tolerate re-runs; partial installs leave a half-configured app.
  • Route/provider collision (medium): automatic registration can conflict with existing guards, middleware, or route model bindings.
  • Constraint conflict (medium): illuminate/* version ranges from 2021 will fight a modern composer.lock.

Key questions for the maintainer (or to answer before adoption).

  1. Which Laravel and PHP versions are supported, and is there a maintained fork?
  2. Is the installer safe to run in staging/production, or local-only? What exactly does it seed, and are the credentials configurable?
  3. Can the package be removed after install, or is it a permanent runtime dependency (provider/routes)?
  4. Is the installer idempotent, and can steps be run individually (--only=config,migrations)?
  5. What is the license, and who is accountable for security patches?
  6. Why do the package description and the developer assessment describe two different feature sets?

Integration Approach

Stack fit. Native Laravel conventions throughout: Composer, service providers, vendor:publish, Artisan migrations and seeders, config caching. Nothing exotic to learn or proxy. It slots into a standard Laravel CI/CD flow without new infrastructure.

Migration path (recommended, time-boxed).

  1. Version pin first. Determine the target Laravel/PHP versions and check the package's composer.json constraints before anything else. If it won't resolve, the decision is a fork-and-patch vs. skip, not an integration task.
  2. Disposable spike. Stand up a throwaway app on the exact target version. composer require, then inspect the installer command source before executing it — read what it publishes, migrates, and seeds.
  3. Run against a clean database only. Snapshot the schema and the file diff post-install. Commit generated config/migrations/assets into VCS so the generated state is reviewable and reproducible.
  4. Diff against a hand-rolled setup. Build the equivalent config/provider/migration by hand from the package source. For a package this small and stale, the hand-rolled version is often the lower-risk artifact and removes the dependency entirely.
  5. Introduce as staging-only if you keep it, behind an explicit environment guard.

Compatibility checks to perform explicitly.

  • Composer resolution against the current composer.lock.
  • Laravel package auto-discovery behavior — confirm the provider isn't registered twice (auto-discovery plus a manual entry is a common failure).
  • Migration table-name collisions with existing schemas.
  • Config cache behavior after publishing (config:clear / config:cache).

Sequencing for the wider rollout.

  1. Resolve framework-version gap → 2. Spike + source review → 3. Decide build-vs-buy (fork, wrap, or hand-roll) → 4. Commit generated artifacts and a documented manual-install fallback → 5. Roll to staging with seeded credentials disabled → 6. Only then codify in onboarding docs, with the manual path as the primary and the installer as an optional shortcut.

Do not sequence this as "adopt the installer, then document it." Documentation is the deliverable that survives; the installer is a convenience that may not.

Operational Impact

Maintenance. Treat as vendored code. No upstream releases since January 2021 means any Laravel upgrade will be your patch. Budget for a maintained internal fork (pinned commit, tracked diff, owner named) or plan to delete the dependency after the one-time install. Do not leave an unmaintained 2021 package in require on a production app.

Support. Zero community, 5 stars, no visible issue triage. First-line support is the adopting team. Escalation path is "read the source," which is fine here because the package is small — the source is the documentation.

Scaling. The installer itself runs once and is not a scaling concern. The runtime panel it configures is a separate question that this package doesn't answer. The one scaling-adjacent risk is the seeded admin user: a single shared admin account with default credentials does not scale to multi-tenant or multi-environment use and should be replaced with per-user provisioning immediately.

Failure modes to design against.

  • Partial install: installer fails mid-run, leaving published assets without migrations (or vice versa). Mitigate with a clean-DB, version-controlled snapshot and a documented retry/reset procedure.
  • Seeded default admin: known credentials reach staging or production. Mitigate by disabling the seeder outside local and forcing a password reset on first login.
  • Asset/config overwrite on re-run: user customizations silently replaced. Mitigate by treating published files as first-class app code and never re-running vendor:publish destructively.
  • Stale config cache: naming or route changes don't take effect. Mitigate by making config:cache part of the deploy step, not an afterthought.
  • Version/constraint breakage at upgrade time: the package blocks a Laravel bump. Mitigate by deciding fork-vs-remove before the next framework upgrade, not during it.

Ramp-up. Very low for any Laravel developer — the interface is one Artisan command plus standard publish/migrate steps, and the source is small enough to read in an afternoon. The cost is not learning the tool; it is un-learning the docs. The supplied developer assessment describes token issuance rather than installation, so onboarding material must be rewritten from the actual source and a verified spike before it goes in front of the team. A TPM should budget roughly a day of spike and a day of documentation, and gate the whole thing on the framework-version check, which is the single most likely reason this package is not usable at all.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console