v1.22.0 — Open Source · Licenza MIT

Il file manager integrabile ovunque

PHP ≥ 8.1 + Flysystem 3. UI Alpine.js. Locale, S3, Cloudflare R2. Integra con poche righe di JavaScript.

PHP ≥ 8.1
Nessun framework richiesto
~3 KB
Dimensione SDK
MIT
Licenza open source
16
Lingue supportate
Anteprima

Guardalo in azione

FluxFiles desktop file manager UI
FluxFiles mobile file manager UI
FluxFiles create folder modal
Funzionalità

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().

Installazione rapida

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

Laravel WordPress React / Next.js Vue / Nuxt CKEditor 4 TinyMCE Any framework
Perché FluxFiles

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