aaix / laravel-islands-filemanager
A file manager for Laravel Islands: folders, list and thumbnail views, notes, comments, previews and full-text search.
Package info
github.com/jonaaix/laravel-islands-filemanager
pkg:composer/aaix/laravel-islands-filemanager
Requires
- php: >=8.3
- ext-zip: *
- aaix/laravel-islands: ^1.0
- aaix/laravel-islands-datagrid: ^1.0
- aaix/laravel-islands-search: ^1.0
- illuminate/support: ^12.0|^13.0
- intervention/image: ^4.0
- spatie/temporary-directory: ^2.0
Requires (Dev)
- orchestra/testbench: ^11.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Laravel Islands File Manager
A file manager for Laravel Islands: folders, list and thumbnail views, an info column with notes and comments, previews, keyboard shortcuts and full-text search — including Office files and scanned documents.
A file manager as one Laravel Islands page: folder tree, list and thumbnail views, notes and comments, previews, keyboard shortcuts, folder uploads and full-text search — including Office files and scanned documents.
Requirements
- PHP 8.3+, Laravel 12 or 13, a queue worker
aaix/laravel-islands,aaix/laravel-islands-datagrid,aaix/laravel-islands-search- PHP
zipand Imagick, the poppler tools; optionallytesseractfor scans
apt-get install poppler-utils tesseract-ocr tesseract-ocr-deu tesseract-ocr-eng
Installation
composer require aaix/laravel-islands-filemanager php artisan vendor:publish --tag=filemanager-migrations php artisan vendor:publish --tag=filemanager-config php artisan migrate
// vite.config.js import islandsFilemanager from './vendor/aaix/laravel-islands-filemanager/vite.js'; export default defineConfig({ plugins: [/* … */ islandsFilemanager()], });
// resources/js/app.js import { filemanagerIslands } from '@aaix/laravel-islands-filemanager'; startVueIslands({ ...islands, ...filemanagerIslands });
@source '../../vendor/aaix/laravel-islands-filemanager/resources/js/**/*';
FILEMANAGER_HASH_SALT=a-long-random-string # never change once files are stored
Setup
Allow access through a gate (set filemanager.ability to null to let every signed-in user in):
Gate::define('filemanager.access', fn (User $user): bool => $user->hasRole('office'));
Place the page inside your layout — it answers under /files and renders filemanager.page.view
with $island and $islandProps:
{{-- resources/views/files.blade.php, config: 'page' => ['view' => 'files'] --}} <x-layouts.app :title="$title"> <x-island :name="$island" :props="$islandProps" /> </x-layouts.app>
Optionally add the sources to your Laravel Islands Search endpoint:
IslandsSearch::route('search', [FileSearchSource::class, FileContentSearchSource::class]);
Route prefix, middleware, storage disk, OCR languages and more live in config/filemanager.php.
License
The MIT License (MIT). See LICENSE for more information.