v1.22.0 — Open Source · MIT-Lizenz

Der Dateimanager, der überall eingebettet wird

PHP ≥ 8.1 + Flysystem 3. Alpine.js UI. Local, S3, Cloudflare R2. Einbetten mit wenigen Zeilen JavaScript.

PHP ≥ 8.1
Kein Framework erforderlich
~3 KB
SDK-Paketgröße
MIT
Open-Source-Lizenz
16
Unterstützte Sprachen
Vorschau

In Aktion sehen

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

Alles, was ein moderner Dateimanager braucht

Gebaut für Entwickler, die Flexibilität brauchen.

Multi-Speicher

Lokal, AWS S3, Cloudflare R2 über Flysystem v3 — per Konfiguration wechseln, kein Code-Change.

Überall einbetten

iframe + postMessage SDK. Standalone-UI mit Alpine.js (ohne Build). Funktioniert mit jedem Framework.

JWT-Auth + Scoping

Pfad-Präfix pro Nutzer, Berechtigungen, Disk-Whitelist, Owner-only-Modus.

AI Auto-Tag

Claude / OpenAI Vision — automatisch Alt-Text, Titel, Tags.

Bildzuschnitt

Inline-Zuschnitt mit Seitenverhältnis-Vorlagen.

Bildoptimierung

Automatische WebP-Varianten — Thumb, Mittel, Groß.

Vorsignierte Uploads

Browser lädt direkt zu S3/R2 hoch — null Bandbreite auf Ihrem Server.

Chunk-Upload

S3 Multipart für Dateien > 10MB.

Volltextsuche

SQLite FTS5 in Namen, Titeln, Tags.

Massenoperationen

Mehrfachauswahl: Verschieben, Kopieren, Löschen, Herunterladen.

Cross-Disk-Transfer

Kopieren/Verschieben zwischen Lokal ↔ S3 ↔ R2.

Papierkorb

Wiederherstellbares Löschen mit automatischer Bereinigung.

SEO-Metadaten

Titel, Alt, Beschriftung, Tags — S3-Objektmetadaten (Cloud) oder Sidecar-JSON (lokal). Volltextsuche.

Dunkelmodus

Hell / dunkel / auto in UI und SDK.

16 Sprachen

Standard Englisch. Locale über SDK, URL (?locale=) oder FLUXFILES_LOCALE. RTL für Arabisch.

Audit-Protokoll

Alle Schreibaktionen werden protokolliert.

Ratenbegrenzung

Token Bucket pro Benutzer zum API-Schutz.

Speicherkontingent

Benutzerlimits über JWT-Claims.

BYOB-Buckets

Nutzer bringen eigenes S3/R2 — Zugangsdaten verschlüsselt im JWT (AES-256-GCM).

Duplikaterkennung

SHA-256-Match überspringt redundante Uploads außer bei erzwungenem Überschreiben.

SDK-Token-Refresh

onTokenRefresh bei 401 — zusammengefasster Refresh, Retry und updateToken() für proaktive Rotation.

Schnellinstallation

In 2 Minuten einsatzbereit

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=

Kompatibel mit

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

Gebaut für das, was andere vergessen haben

Funktion FluxFiles elFinder Laravel-FM RichFilemanager Responsive FM
S3 + R2 + Local
Jedes Framework einbetten
JWT-Auth + Scoping
SEO-Metadaten
AI Auto-Tag
Bildzuschnitt
Chunk-Upload
Volltextsuche
Dunkelmodus
16 Sprachen
PHP ≥ 8.1
Aktiv gewartet
Moderne UI