- Does outl1ne/nova-media-hub require Laravel Nova?
- Yes. This is a Laravel Nova tool, not a standalone package, so laravel/nova is a hard prerequisite and it carries a commercial, per-site license. If your application is not already on Nova, the evaluation effectively ends there, because adopting Nova as a side effect of wanting a media library is a much larger decision than adding a dependency. Teams running Filament or a plain Laravel admin panel should look at that ecosystem's media tools instead.
- How do I install outl1ne/nova-media-hub?
- Install with composer require outl1ne/nova-media-hub, publish the provider config, run the migrations, and run storage:link if you are serving from the public disk. Then register the tool in NovaServiceProvider::tools() and add the media field to whichever Nova resource needs it. Expect roughly half a day to a day for a spike on a branch, and one to two days for a first production resource once storage config and authorization review are included. Before estimating, check whether the release tag ships compiled dist assets, because otherwise your CI needs a build step inside vendor that will not survive a clean composer install.
- Which Laravel, PHP, and Nova versions does nova-media-hub support?
- Support is pinned by the require block in the composer.json of the specific release tag you plan to install, so open that file rather than assuming. Confirm the Nova major, the PHP floor, and the Laravel version range all match your application. If your Nova major is not listed, you are evaluating a fork, not a dependency, and you should budget for that accordingly.
- Does nova-media-hub use spatie/laravel-medialibrary under the hood?
- Yes, it layers on top of spatie/laravel-medialibrary, so it does not introduce a wholly foreign persistence model into your application. What it adds is the expensive part to hand-roll: the admin surface for browsing, folders, search, upload, and cropping, plus a Nova field for attaching existing media to any resource. That is realistically one to three sprints of undifferentiated internal tooling you avoid writing.
- How do I attach an existing media library file to a Nova resource?
- Add the package's media field to the Nova resource's fields method, and editors can then pick from the shared library or upload a new asset inline without leaving the form. Because the library is a central pool rather than per-record uploads, the same asset can be reused across many resources, which is the main architectural change to plan for. Keep delivery concerns such as URL resolution, responsive markup, CDN base paths, and cache headers in your application behind a single accessor.
- Can I configure which storage disks and file types the media hub uses?
- Yes, storage disks and allowed file types are configurable through the published config file, so you can point the library at local storage or S3 and restrict what editors may upload. Decide per environment which disks are public versus private and whether a CDN sits in front. Private disks mean signed or expiring URLs, and that behavior belongs in your application's URL accessor rather than being discovered in production with cached HTML.
- Does nova-media-hub support image cropping and thumbnails, and what does it need on the server?
- It ships with built-in image editing including cropping, plus previews and thumbnails in the browsing interface. Image conversion requires GD or ImageMagick, adequate memory, and a decision on queue versus synchronous processing. Synchronous crops can stall the Nova UI, and queue workers without the image extension fail silently, so verify every worker node before rollout.
- Can I isolate media folders per tenant with nova-media-hub?
- Not out of the box. Nova's authorization is resource and model level, and the package will not scope folders per tenant for you. If you need per-tenant isolation, plan to implement it yourself on top of the package, or keep the hub restricted to trusted admin users only.
- What happens when a media file that is still referenced gets deleted?
- The package does not guard referential integrity on delete, so it will not tell you whether an asset is still in use by a page or record. Moving from per-record uploads to a shared pool creates questions you may not have today, such as who owns a broken reference and how it is surfaced. Add a usage check or soft-delete policy in your application before editors start reusing assets widely.
- Is outl1ne/nova-media-hub actively maintained, and what are the alternatives?
- Treat it as an early-adopter dependency: community validation is thin, release cadence is tied to Nova majors and lands on the maintainer's schedule, and the last release date is unusual enough that you should verify commit activity directly. Confirm the release tag you plan to use and name the engineer who can read and patch the source if upstream stalls. Set a written abandonment threshold, such as no Nova-compatible release across two Nova majors, and consider using spatie/laravel-medialibrary directly with your own admin UI if vendor lock-in or maintenance risk outweighs the saved build time.