v1.22.0 — Open Source · MIT-licentie

De bestandsbeheerder die overal past

PHP ≥ 8.1 + Flysystem 3. Alpine.js UI. Lokaal, S3, Cloudflare R2. Inbedden met een paar regels JavaScript.

PHP ≥ 8.1
Geen framework nodig
~3 KB
SDK-bundel grootte
MIT
Open source licentie
16
Ondersteunde talen
Live voorbeeld

Bekijk het in actie

FluxFiles desktop file manager UI
FluxFiles mobile file manager UI
FluxFiles create folder modal
Functies

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

Snel installeren

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

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

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