Il file manager integrabile ovunque
PHP ≥ 8.1 + Flysystem 3. UI Alpine.js. Locale, S3, Cloudflare R2. Integra con poche righe di JavaScript.
Guardalo in azione
Tutto ciò che serve a un file manager moderno
Progettato per sviluppatori che necessitano di flessibilità.
Multi-storage
Locale, AWS S3, Cloudflare R2 tramite Flysystem v3 — cambia con la config, senza codice.
Integra ovunque
iframe + SDK postMessage. UI standalone con Alpine.js (zero build). Con qualsiasi framework.
Auth JWT + scoping
Prefisso percorso per utente, permessi, whitelist dischi, modalità solo proprietario.
AI auto-tag
Claude / OpenAI vision — alt text, titolo, tag automatici.
Ritaglio immagine
Strumento di ritaglio con proporzioni predefinite.
Ottimizzazione immagine
Varianti WebP automatiche — miniatura, medio, grande.
Upload pre-firmati
Il browser carica direttamente su S3/R2 — zero bandwidth sul tuo server.
Upload a blocchi
S3 multipart per file > 10MB.
Ricerca full-text
SQLite FTS5 in nomi, titoli, tag.
Operazioni in blocco
Selezione multipla: spostare, copiare, eliminare, scaricare.
Trasferimento cross-disk
Copia/sposta tra Locale ↔ S3 ↔ R2.
Cestino
Eliminazione recuperabile con pulizia automatica.
Metadati SEO
Titolo, alt, didascalia, tag — metadati oggetto S3 (cloud) o JSON sidecar (locale). Ricerca full-text.
Modalità scura
Chiaro / scuro / auto in UI e SDK.
16 lingue
Inglese predefinito. Imposta locale via SDK, URL (?locale=) o FLUXFILES_LOCALE. RTL per arabo.
Log di audit
Tutte le azioni di scrittura registrate.
Limitazione della velocità
Token bucket per utente per la protezione API.
Quota di archiviazione
Limiti per utente tramite JWT claims.
Bucket BYOB
Gli utenti portano il proprio S3/R2 — credenziali criptate nel JWT (AES-256-GCM).
Rilevamento duplicati
Match SHA-256 salta upload ridondanti salvo sovrascrittura forzata.
Refresh token SDK
onTokenRefresh su 401 — refresh coalescente, retry e updateToken().
Pronto in 2 minuti
composer require fluxfiles/fluxfiles
cp .env.example .env
# .env
FLUXFILES_SECRET=your-random-32-char-secret
FLUXFILES_ALLOWED_ORIGINS=https://yourapp.com
require_once 'vendor/autoload.php';
$token = fluxfiles_token(
userId: 'user-123',
perms: ['read', 'write', 'delete'],
disks: ['local', 's3', 'r2'],
prefix: 'user-123/',
maxUploadMb: 10,
allowedExt: null,
ttl: 3600
); composer require fluxfiles/laravel
php artisan vendor:publish --tag=fluxfiles-config
# .env — point the adapter at your FluxFiles server
FLUXFILES_ENDPOINT=https://fm.yourdomain.com
FLUXFILES_SECRET=your-secret-min-32-chars
# Optional: match CORS on the FluxFiles host
# FLUXFILES_ALLOWED_ORIGINS=https://yourapp.com
# Config: config/fluxfiles.php <!-- Demo: unpkg. In production, serve fluxfiles.js from your FluxFiles host -->
<script src="https://unpkg.com/fluxfiles@1.22.0/fluxfiles.js"></script>
<script>
FluxFiles.open({
endpoint: 'https://your-api.com',
token: 'eyJhbGci...',
disk: 'local',
mode: 'picker',
container: '#file-picker',
onSelect: function(file) {
console.log('Selected:', file.url);
},
async onTokenRefresh() {
const r = await fetch('/api/auth/refresh-fluxfiles-token');
const { token } = await r.json();
return token;
}
});
</script> npm install @fluxfiles/react
import { FluxFilesModal } from '@fluxfiles/react';
<FluxFilesModal
open={open}
endpoint="https://your-api.com"
token={token}
onSelect={(file) => console.log(file)}
onClose={() => setOpen(false)}
/> npm install @fluxfiles/vue
<script setup>
import { FluxFilesModal } from '@fluxfiles/vue';
</script>
<FluxFilesModal
v-model:open="open"
endpoint="https://your-api.com"
:token="token"
@select="onSelect"
@close="open = false"
/> git clone https://github.com/thai-pc/fluxfiles.git
cd fluxfiles
composer install -d packages/core
cp .env.example .env
cd packages/core
php -S localhost:8080 router.php
# UI: http://localhost:8080/public/index.html
# API: http://localhost:8080/api/fm/list?disk=local&path= Funziona con
Progettato per ciò che gli altri hanno dimenticato
| Funzionalità | FluxFiles | elFinder | Laravel-FM | RichFilemanager | Responsive FM |
|---|---|---|---|---|---|
| S3 + R2 + Locale | ✓ | ⚠ | ⚠ | ⚠ | ✗ |
| Integra in qualsiasi framework | ✓ | ⚠ | ✗ | ⚠ | ✗ |
| Auth JWT + scoping | ✓ | ✗ | ✗ | ✗ | ✗ |
| Metadati SEO | ✓ | ✗ | ✗ | ✗ | ✗ |
| AI auto-tag | ✓ | ✗ | ✗ | ✗ | ✗ |
| Ritaglio immagine | ✓ | ✓ | ✗ | ✗ | ✗ |
| Upload a blocchi | ✓ | ✗ | ✗ | ✗ | ✗ |
| Ricerca full-text | ✓ | ✗ | ✗ | ✗ | ✗ |
| Modalità scura | ✓ | ✗ | ⚠ | ✗ | ✗ |
| 16 lingue | ✓ | ✓ | ✗ | ✗ | ✗ |
| PHP ≥ 8.1 | ✓ | ✓ | ✗ | ✓ | ✓ |
| Mantenuto attivamente | ✓ | ✓ | ⚠ | ✗ | ✗ |
| UI moderna | ✓ | ✗ | ⚠ | ✗ | ✗ |