De bestandsbeheerder die overal past
PHP ≥ 8.1 + Flysystem 3. Alpine.js UI. Lokaal, S3, Cloudflare R2. Inbedden met een paar regels JavaScript.
Bekijk het in actie
Alles wat een moderne bestandsbeheerder nodig heeft
Gebouwd voor ontwikkelaars die flexibiliteit nodig hebben.
Multi-opslag
Lokaal, AWS S3, Cloudflare R2 via Flysystem v3 — wissel via config, geen codewijziging.
Overal integreren
iframe + postMessage SDK. Standalone UI gebruikt Alpine.js (geen build). Werkt met elk framework.
JWT-auth + scoping
Pad-prefix per gebruiker, rechten, schijf-whitelist, alleen-eigenaar modus.
AI auto-tag
Claude / OpenAI vision — automatisch alt-tekst, titel, tags.
Afbeelding bijsnijden
Inline bijsnijdtool met beeldverhouding-presets.
Afbeelding optimalisatie
Automatische WebP-varianten — thumb, medium, groot.
Vooraf ondertekende uploads
Browser uploadt rechtstreeks naar S3/R2 — nul bandbreedte op uw server.
Chunk upload
S3 multipart voor bestanden > 10MB.
Zoeken in volledige tekst
SQLite FTS5 in namen, titels, tags.
Bulkbewerkingen
Multi-select verplaatsen, kopiëren, verwijderen, downloaden.
Cross-disk overdracht
Kopiëren/verplaatsen tussen Lokaal ↔ S3 ↔ R2.
Prullenbak
Herstelbare verwijderingen met automatische opschoning.
SEO-metadata
Titel, alt, bijschrift, tags — S3-objectmetadata (cloud) of sidecar JSON (lokaal). Zoeken in volledige tekst.
Donkere modus
Licht / donker / auto in UI en SDK.
16 talen
Standaard Engels. Stel taal in via SDK, URL (?locale=) of FLUXFILES_LOCALE. RTL voor Arabisch.
Auditlogboek
Alle schrijfacties gelogd voor compliance.
Snelheidsbeperking
Token bucket per gebruiker voor API-bescherming.
Opslagquota
Limieten per gebruiker via JWT-claims.
BYOB-buckets
Gebruikers koppelen eigen S3/R2 — inloggegevens versleuteld in JWT (AES-256-GCM).
Duplicaatdetectie
SHA-256-match slaat redundante uploads over tenzij geforceerd overschrijven.
SDK-token vernieuwen
onTokenRefresh bij 401 — samengevoegde refresh, opnieuw proberen, updateToken().
Klaar in 2 minuten
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= Werkt met
Gebouwd voor wat anderen vergaten
| Functie | FluxFiles | elFinder | Laravel-FM | RichFilemanager | Responsive FM |
|---|---|---|---|---|---|
| S3 + R2 + Lokaal | ✓ | ⚠ | ⚠ | ⚠ | ✗ |
| Integreren in elk framework | ✓ | ⚠ | ✗ | ⚠ | ✗ |
| JWT-auth + scoping | ✓ | ✗ | ✗ | ✗ | ✗ |
| SEO-metadata | ✓ | ✗ | ✗ | ✗ | ✗ |
| AI auto-tag | ✓ | ✗ | ✗ | ✗ | ✗ |
| Afbeelding bijsnijden | ✓ | ✓ | ✗ | ✗ | ✗ |
| Chunk upload | ✓ | ✗ | ✗ | ✗ | ✗ |
| Zoeken in volledige tekst | ✓ | ✗ | ✗ | ✗ | ✗ |
| Donkere modus | ✓ | ✗ | ⚠ | ✗ | ✗ |
| 16 talen | ✓ | ✓ | ✗ | ✗ | ✗ |
| PHP ≥ 8.1 | ✓ | ✓ | ✗ | ✓ | ✓ |
| Actief onderhouden | ✓ | ✓ | ⚠ | ✗ | ✗ |
| Moderne UI | ✓ | ✗ | ⚠ | ✗ | ✗ |