- Does mwguerra/filemanager support Laravel 11?
- Only through the legacy 1.x line. Version 1.x targets Filament 4, Laravel 11, and Livewire 3, while 2.x requires Laravel 12, Filament 5, Livewire 4, and PHP 8.2 or newer. There is no documented compatibility matrix for versions in between, so match your stack exactly before installing.
- What is the difference between database mode and storage mode in FileManager?
- Database mode persists file_system_items rows with metadata, thumbnails, and a folder tree alongside the objects on a Laravel disk. Storage mode is a read-only view over a disk with no schema and no metadata, so there is no drift but also no ownership, audit trail, or per-file authorization. Choosing a mode is the most consequential architectural decision before adoption.
- How do I install FileManager in a Filament v5 panel?
- Run composer require mwguerra/filemanager:^2.0, publish the config with vendor:publish --tag=filemanager-config, run php artisan migrate, then run php artisan filemanager:install. Finally register FileManagerPlugin::make() in your panel provider's plugins array. No service provider changes or queue workers are required.
- Does it work with S3, MinIO, or other Laravel disks?
- Yes. All storage access goes through Laravel's Storage facade, so local, S3, MinIO, and any other configured Laravel disk driver are interchangeable. Credentials stay in your existing config/filesystems.php setup, which is the package's strongest architectural property.
- Is mwguerra/filemanager secure enough for production?
- It ships MIME validation, blocked extensions, filename sanitization, signed URLs, and configurable Laravel Policy authorization. The README lists capabilities rather than enforcement points, so verify server-side validation depth and that policies are actually wired before trusting the defaults. Also weigh the single-maintainer bus factor and the narrow version window.
- Can I embed the file manager inside a Filament form instead of a full page?
- Yes. The FileManagerEmbed and FileSystemEmbed schema components let the same implementation serve a standalone admin page and an inline form field. That keeps the surface area small compared with building a separate page and a separate upload widget.
- Does this package have tests and CI?
- There is no evidence of a test suite or CI in the supplied material; the maturity signals are a README and changelog. Because the package writes to your filesystem and database in database mode, that gap is load-bearing and should be verified in the repository before adoption.
- How do I upgrade from v1.x to v2.x?
- v2.x targets Filament 5, Laravel 12, and Livewire 4. Table ->actions() becomes ->recordActions(), ->bulkActions() becomes ->toolbarActions(), and any published views using @entangle must switch to $wire.entangle(). Expect panel upgrades to force package major upgrades on the same schedule.
- How does authorization and permissions work in FileManager?
- Authorization is Laravel Policy-based and configurable per the package documentation. The correct hook is there, but the effective default matters enormously if policies are not wired. Verify the behavior in code rather than assuming it from the README.
- When should I avoid mwguerra/filemanager?
- If your admin layer is Nova, Backpack, plain Blade, or a separate SPA, the real cost is adopting Filament first, which is a platform decision rather than a package decision. Database mode also means owning a subsystem with dual-write drift risk and no documented reconciliation tooling. Storage mode is the cheaper, low-coupling option when you only need browsing.