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
Nova Media Hub

Nova Media Hub Laravel Package

outl1ne/nova-media-hub

A media library and file manager for Laravel Nova. Upload, organize, search, and attach images and files to your resources through a clean, centralized interface, keeping all your assets in one place and simplifying media handling across the admin panel.

View on GitHub
Deep Wiki
Context7

Outl1ne Nova Media Hub adds a full-featured media library to Laravel Nova, giving you a central place to upload, browse, and organize files and images in nested folders. It ships with a dedicated Media Hub resource plus a field type you can attach to any Nova resource, so selecting existing media or uploading new assets feels native to your admin panel.

  • Drag-and-drop uploads with folder creation, renaming, moving, and deletion
  • Reusable media field for attaching library files to Nova resources
  • Built-in image editing (cropping) and previews/thumbnails
  • Search, filtering, and bulk selection across the library
  • Configurable file types, storage disks, and access permissions
Frequently asked questions about Nova Media Hub
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.
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.
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect