Weave Code
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

Laravel Installer Laravel Package

jmrashed/laravel-installer

View on GitHub
Deep Wiki
Context7
v2.0.9

๐Ÿ› BUG FIXES

  • Added Laravel 12 support (illuminate/console, illuminate/http, illuminate/support now accept ^12.0; orchestra/testbench dev dependency now accepts ^10.0). composer create-project laravel/laravel has defaulted to Laravel 12 since its release, so composer require jmrashed/laravel-installer into any new Laravel app was failing to resolve entirely until this fix โ€” this affected every new install, not just CI
  • Added laravel: 12.* to the CI test matrix (excluding php: 8.1 + laravel: 12.*, since Laravel 12 requires PHP ^8.2), and fixed the CI integration job, which creates a real laravel/laravel project and installs this package into it โ€” it had been failing since Laravel 12's release
v2.0.8

๐Ÿ” SECURITY FIXES

  • ๐Ÿšจ Critical: Fixed a command-injection vulnerability in the dependency installer โ€” DependencyController::installPackage() now validates the package name against a strict allow-list pattern and shells out via an argument-array Process instead of an interpolated shell string
  • ๐Ÿšจ Critical: Registered the 5 v2.0 middleware (SecurityMiddleware, PerformanceMiddleware, ProgressMiddleware, DependencyMiddleware, ExceptionHandlerMiddleware) on the install/update route groups โ€” they were fully implemented but never wired into the service provider, so the advertised rate limiting, security headers, suspicious-content filtering, and audit logging were not actually active in any v2.0.x release before this one
  • ๐Ÿšจ Critical: PurchaseController::validatePurchase() no longer unconditionally bypasses license validation โ€” it returned before running any of its own logic, so a purchase code was never actually checked. Now gated by installer.purchase_validation.enabled (defaults to false, preserving prior default behavior for consumers who don't sell through Envato; real validation runs when enabled)
  • High: Added an optional IP allow-list / shared access-token gate for the entire install/update flow (installer.security.allowed_ips, installer.security.access_token) โ€” previously the only gate was a storage/installed lock file that doesn't exist until installation is complete, leaving every route (including database migrate/rollback and dependency-install) reachable by anyone who got there first
  • High: Sanitized .env writes in CacheQueueManager::updateEnvFile() to strip control characters, closing an env-line-injection path for the Redis queue-setup form (EnvironmentManager already had this protection; CacheQueueManager didn't)
  • High: DatabaseBackupManager::restoreBackup() now validates the backup identifier format before building a filesystem path from it
  • Medium: mysqldump/mysql/pg_dump/psql now receive database credentials via MYSQL_PWD/PGPASSWORD environment variables instead of a --password= CLI flag, so they're no longer visible in ps aux for the life of the process
  • Medium: Backup directories/files are now created with 0700/0600 permissions instead of world-readable defaults
  • Medium: Implemented the previously-declared-but-unused audit.sensitive_fields redaction in LogManager โ€” passwords/secrets are now stripped before any operation is written to the audit log
  • Medium: Fixed EnvironmentController::checkDatabaseConnection() mutating the application's ambient config('database') state during a connection test, which could leak the installer's test credentials into the rest of the request lifecycle

๐Ÿ› BUG FIXES

  • Fixed layouts/master.blade.php referencing nonexistent route names (LaravelInstaller::environment/LaravelInstaller::requirements), which threw a RouteNotFoundException whenever an error page (or the resume-installation page) tried to render
  • Fixed missing createPostgresBackup/restorePostgresBackup implementations โ€” the driver switch in DatabaseBackupManager referenced them, but they didn't exist, so any PostgreSQL install would fatally error on backup
  • Fixed DatabaseOptimizer::optimizeMemoryUsage() โ€” memory-limit recommendations were based on the current process's own memory usage rather than the configured memory_limit, and a MySQL-only PDO attribute was being set unconditionally on all drivers (would warn/fail on PostgreSQL/SQLite, both advertised as supported)
  • Fixed a broken Dockerfile/docker-compose.yml/package.json chain: docker-compose.yml mounted a nonexistent docker/nginx/default.conf, Dockerfile ran npm run build against a package.json with no build script, and the asset paths in package.json pointed at the wrong directory โ€” docker-compose up and a from-scratch npm run build both failed before this release

๐Ÿงน CLEANUP

  • Removed dead ad-hoc scripts test-installer.php / test-package.php from the repo root (not wired into CI, and test-package.php referenced a controller class that no longer exists)
  • Removed ~190KB of orphaned pre-Tailwind sass//scss/ source trees, an unreferenced style-prev.css, and unused CSS source maps โ€” none of it was reachable from the actual Tailwind build script or any view

๐Ÿ“š DOCUMENTATION

  • Added CODE_OF_CONDUCT.md (referenced by CONTRIBUTING.md since it was written, but never existed)
  • Rewrote SECURITY.md, which was an unmodified template: a fake supported-versions table (5.x/4.x for a package that has never shipped past 2.0.x) and a security@example.com placeholder contact
  • Fixed the README license link (pointed at LICENSE.md; the file is LICENSE)
  • Corrected the README's minimum PHP requirement (8.0 โ†’ 8.1, matching composer.json) and softened the "18+ languages supported" claim to reflect that most locales are partial

โš ๏ธ Known issues carried into this release

  • 14 of 19 non-English locale files remain incomplete (English is complete); see CONTRIBUTING.md if you'd like to help translate
  • Long-running install operations (database migration, backup, dependency install) still run synchronously within the request instead of being queued โ€” acceptable for typical installer usage, but can be slow against large databases
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.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky