v0.2 — Açık Kaynak · MIT Lisansı

Her yere gömülebilen dosya yöneticisi

PHP ≥ 8.1 + Flysystem 3. Alpine.js arayüzü. Local, S3, Cloudflare R2, SFTP. Birkaç satır JavaScript ile gömün.

PHP ≥ 8.1
Framework gerektirmez
~3 KB
SDK boyutu
MIT
Açık kaynak lisans
16
Desteklenen diller
Canlı Önizleme

Çalışırken görün

Creating a FluxFiles share link with an expiry, a password and a download limit
Dosya paylaş — süre, parola, indirme sınırı
Creating a FluxFiles upload portal with a file limit, size cap and allowed file types
Yükleme portalları — hesap gerekmez
FluxFiles links panel listing shared links with views, downloads and revoke
Her bağlantıyı yönetin, dilediğinizde iptal edin
FluxFiles desktop file manager with image thumbnails
Anında WebP küçük resimli ızgara görünümü
FluxFiles browsing an S3 / R2 bucket with the local, S3 and SFTP disk switcher
Çoklu bulut — S3 / R2 / SFTP, tek arayüz
FluxFiles managing a remote VPS deploy directory over SFTP, same UI as the S3 bucket
SFTP ile uzak VPS — FTP istemcisi gerekmez
Editing an nginx config file inside FluxFiles with syntax highlighting
Yapılandırma dosyalarını yerinde düzenleyin — SSH veya FTP olmadan
FluxFiles previewing a video inline in the detail panel
İndirmeden video, ses ve PDF önizlemesi
FluxFiles Bucket Doctor health checks for an S3 bucket with CORS and IAM remediation
Bucket Doctor — S3/R2 sağlık kontrolü + çözümler
FluxFiles activity log of file operations
Etkinlik günlüğü — kendi bucket'ınızda saklanır
FluxFiles trash with restore and delete forever
Çöp kutusu — geri yükle veya kalıcı sil
FluxFiles responsive mobile file manager
Mobilde duyarlı
Avantaj · BYOB

Müşterilerinizin dosyaları müşterilerinizin bucket'larında kalır

FluxFiles, her kiracının kendi S3/R2 bucket'ını bağladığı gömülebilir dosya yöneticisidir — ne verilerini ne de kimlik bilgilerini siz saklarsınız.

  • Veri egemenliği

    Dosyalar müşterinin kendi bulut hesabında ve bölgesinde bulunur — KVKK/GDPR, uyumluluk ve kurumsal satın alma için tasarlandı.

  • Beklemede sıfır veri, sıfır kimlik bilgisi

    Bucket kimlik bilgileri JWT içinde AES-256-GCM ile şifrelenir ve yalnızca çalışma anında çözülür — asla bir veritabanına veya günlüğe yazılmaz.

  • Sıfıra ölçeklenen depolama maliyeti

    Depolama ve egress her müşteriye faturalandırılır, size değil. Kullanıcı tabanınızla büyüyen bir depolama faturası yok.

  • Durumsuz ve gömülebilir

    Merkezi veritabanı yok. Seçiciyi iframe veya SDK ile herhangi bir uygulamaya yerleştirin; arka ucunuz kapsamlı, kısa ömürlü bir jeton üretir.

SaaS uygulamanız
kapsamlı JWT (şifreli kimlik bilgileri)
FluxFiles
yalnızca çalışma anında çözer
Kiracı A
kendi bucket'ı
Kiracı B
kendi bucket'ı
Kiracı C
kendi bucket'ı

Nasıl çalışır: uygulamanız kiracının bucket kimlik bilgilerini kısa ömürlü bir JWT'ye şifreler (HKDF-SHA256 + AES-256-GCM). FluxFiles bunları yalnızca istenen işlemi yürütmek için çözer.

Çok kiracılı

Kiracı başına bir jeton — her biri kendi kurallarıyla

FluxFiles durumsuzdur: arka ucunuzun ürettiği JWT, o kiracının yapılandırmasıdır. Depolama yolu, dosya boyutu sınırı, kota, dosya sayısı, izin verilen türler, yetkiler — hepsi sunucu tarafında uygulanır. Kiracı başına yapılandırma dosyası yok, yeniden başlatma yok.

// Your backend, per request — the token IS the tenant's config.
import { createToken } from '@fluxfiles/node';

const claims = tenant.plan === 'pro'
  // 100 MB/file · any type · 50 GB · unlimited files · own bucket
  ? { disks: ['s3'],    maxUploadMb: 100, allowedExt: null,
      maxStorageMb: 51200, maxFiles: 0 }
  // 5 MB/file · images only · 500 MB · 200 files
  : { disks: ['local'], maxUploadMb: 5,   allowedExt: ['jpg','png','webp'],
      maxStorageMb: 500,   maxFiles: 200 };

const token = createToken({
  secret: process.env.FLUXFILES_SECRET,
  userId: tenant.id,
  prefix: `tenant_${tenant.id}/`,   // isolates each tenant's files
  perms:  ['read', 'write', 'delete'],
  ...claims,
});
prefix disks / BYOB max_upload max_storage max_files allowed_ext perms

BYOB ile birleştirerek her kiracıyı kendi bucket'ına yerleştirin.

Kimler için

Dosya özellikleri sunan ekipler için tasarlandı

Ürününüz yükleme gerektiriyorsa FluxFiles uyum sağlar — sizi müşterilerinizin verisinin bekçisi yapmadan.

SaaS ve çok kiracılı uygulamalar

Her müşteriye kendi bucket'ında bir dosya yöneticisi verin. Kiracı bazında jeton kapsamı ve veri egemenliği yerleşiktir.

Ajanslar ve serbest çalışanlar

Her proje için depolama altyapısı kurmadan her müşteriye özenli bir medya kütüphanesi sunun.

CMS ve editör entegrasyonları

iframe SDK ile CKEditor, TinyMCE, Summernote veya kendi editörünüze bir medya seçici ekleyin.

İç araçlar ve panolar

Yönetim panellerine yükleme, önizleme ve denetlenen dosya işlemlerini bir öğleden sonrada ekleyin.

Özellikler

Modern bir dosya yöneticisinin ihtiyacı olan her şey

Esneklik isteyen geliştiriciler için tasarlandı.

Çoklu depolama

Yerel, AWS S3, Cloudflare R2, SFTP — Flysystem v3 ile. Yapılandırmayla değiştirin.

Her yere gömün

iframe + postMessage SDK. Bağımsız UI Alpine.js (derleme yok). Her framework ile çalışır.

JWT kimlik doğrulama + kapsam

Kullanıcı başına yol öneki, izinler, disk beyaz listesi, yalnızca sahip modu.

AI otomatik etiket

Claude / OpenAI vision — otomatik alt metin, başlık, etiketler.

Görüntü kırpma

En-boy oranı ön ayarlı satır içi kırpma aracı.

Görüntü optimizasyonu

Otomatik WebP varyantları — küçük, orta, büyük.

Ön imzalı yüklemeler

Tarayıcı doğrudan S3/R2'ye yükler — sunucunuzda sıfır bant genişliği.

Parçalı yükleme

10MB üzeri dosyalar için S3 multipart.

Tam metin arama

İsim, başlık, etiketlerde dizinli arama — dosya tabanlı, veritabanı yok.

Toplu işlemler

Çoklu seçim: taşıma, kopyalama, silme, indirme.

Diskler arası transfer

Yerel ↔ S3 ↔ R2 arasında kopyalama/taşıma.

Çöp kutusu

Kurtarılabilir silme, otomatik temizleme.

SEO meta verileri

Başlık, alt, açıklama, etiketler — S3 nesne meta verisi (bulut) veya sidecar JSON (yerel). Tam metin arama.

Karanlık mod

Açık / koyu / otomatik — UI ve SDK'da.

16 dil

Varsayılan İngilizce. SDK, URL (?locale=) veya FLUXFILES_LOCALE ile ayarlayın. Arapça RTL.

Denetim günlüğü

Tüm yazma işlemleri kaydedilir.

Hız sınırlama

Kullanıcı başına token bucket API koruması.

Depolama kotası

JWT claims ile kullanıcı başına limitler.

BYOB kovaları

Kullanıcılar kendi S3/R2'sini ekler — kimlik bilgileri JWT'de şifreli (AES-256-GCM).

Yinelenen algılama

SHA-256 eşleşmesi zorla yazma dışında gereksiz yüklemeleri atlar.

SDK belirteci yenileme

401'de onTokenRefresh — birleşik yenileme, yeniden deneme, updateToken().

Bucket Doctor

Herhangi bir S3/R2 diskini teşhis edin — kimlik bilgileri, okuma/yazma/silme, presign, CORS, multipart — yapıştırmaya hazır IAM ve CORS düzeltmeleriyle. BYOB bucket'larını dakikalar içinde ekleyin.

Node token SDK

@fluxfiles/node ile herhangi bir JS arka ucundan (Express, Next.js, Nuxt) FluxFiles jetonları üretin — PHP çekirdeğiyle bayt uyumlu. Jeton üretmek için PHP gerekmez.

SFTP diski

S3/R2'den sonra 3. sürücü — herhangi bir VPS veya hosting'i dosya yöneticisine dönüştürün.

Kod / yapılandırma düzenleyici

Metin ve yapılandırma dosyalarını (wp-config.php, .env) tarayıcıda düzenleyin.

Zip ve Çıkarma

Seçimi zip olarak indirin veya arşivi yerinde çıkarın — zip-slip & bomb korumalı.

Filigran

Önizleme koruması için anında metin/logo filigranı — kaynak dosyaya dokunulmaz.

İstek üzerine WebP + AVIF

Herhangi bir görsel boyutunu tek bir URL üzerinden önbelleklenmiş AVIF/WebP olarak sunun (Accept ile pazarlıklı), hazır duyarlı srcset ile.

SFTP izinleri

SFTP disklerinde Unix dosya izinlerini (chmod) cPanel tarzı pencereyle değiştirin.

Kullanım panosu

Depolamayı bir bakışta görün — kota artı türe ve klasöre göre dağılım.

Medya önizleme

Satır içi görsel, video, ses ve PDF önizleme; özel yerel medya güvenli akış.

Hızlı kurulum

2 dakikada hazır

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
npm install @fluxfiles/node

// Express / Next.js route — mint a token from your JS backend (no PHP)
import { createToken } from '@fluxfiles/node';

app.get('/fluxfiles-token', (req, res) => {
    const token = createToken({
        secret: process.env.FLUXFILES_SECRET, // >= 32 bytes
        userId: req.user.id,
        perms: ['read', 'write', 'delete'],
        prefix: `users/${req.user.id}`,
        ttl: 3600,
    });
    res.json({ token });
});
<!-- Demo: unpkg. In production, serve fluxfiles.js from your FluxFiles host -->
<script src="https://unpkg.com/fluxfiles@latest/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
docker build -f fluxfiles/docker/Dockerfile.prod -t fluxfiles fluxfiles

docker run -p 8080:80 \\
  -e FLUXFILES_SECRET=your-random-32-char-secret \\
  fluxfiles

# UI: http://localhost:8080/public/index.html
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=

Şunlarla çalışır

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

Entegrasyonlar

Yığınınız için hazır adaptörler

Resmi adaptörler, FluxFiles'ı zaten kullandığınız çerçevelere ve editörlere yerel olarak gömer.

Laravel
PHP
WordPress
Plugin
React
Component
Vue / Nuxt
Component
CKEditor 4
Plugin
TinyMCE
Plugin
Summernote
Plugin

Gömme

Birkaç satırda gömün

fluxfiles.js'i yükleyin, sunucuda üretilen bir JWT geçirin ve herhangi bir sayfaya tam bir dosya yöneticisi — ya da dosya seçme penceresi — yerleştirin.

<script src="https://fm.example.com/fluxfiles.js"></script>

FluxFiles.open({
  endpoint: 'https://fm.example.com',
  token: 'eyJhbGci...',   // JWT from your backend
  disk: 'local',
  mode: 'picker',         // select & close
  theme: 'auto',
  onSelect(file) {
    // { url, key, name, size, disk, meta, variants }
    document.querySelector("#img").src = file.url;
  },
});
<div id="fm" style="height:600px"></div>

FluxFiles.open({
  endpoint: 'https://fm.example.com',
  token: 'eyJhbGci...',
  mode: 'browser',          // full manager, stays open
  container: '#fm',         // omit for a modal overlay
  disks: ['local', 's3', 'r2'],
});

FluxFiles.on('FM_EVENT', (e) => console.log(e.event));
FluxFiles.navigate('/photos/2024');
import { FluxFilesModal } from '@fluxfiles/react';

function Picker({ open, setOpen, token }) {
  return (
    <FluxFilesModal
      open={open}
      endpoint="https://fm.example.com"
      token={token}
      onSelect={(file) => console.log(file.url)}
      onClose={() => setOpen(false)}
    />
  );
}

Token'lar sunucu tarafında üretilir — secret'ınızı asla tarayıcıya göndermeyin.

Neden FluxFiles

Başkalarının unuttuğu şeyler için tasarlandı

Karşılaştırmak için kaydırın
Özellik FluxFiles elFinder Laravel-FM RichFilemanager Responsive FM
S3 + R2 + Yerel + SFTP
Her framework'e gömme
JWT kimlik doğrulama + kapsam
SEO meta verileri
AI otomatik etiket
Görüntü kırpma
Parçalı yükleme
Tam metin arama
Karanlık mod
16 dil
PHP ≥ 8.1
Aktif olarak bakımı yapılıyor
Modern UI
dosya-API SaaS'larına karşı

Kendi sunucunuzda ve gömülebilir — bir başka yükleme SaaS'ı değil

Barındırılan dosya API'leri harikadır ama verinizi saklar ve kullanım başına ücret alır. FluxFiles kendi yığınınızda çalışır, her kiracı kendi bucket'ında.

Karşılaştırmak için kaydırın
Yetenek FluxFiles Filestack Uploadcare Cloudinary Supabase Storage
Kendi sunucunuzda (altyapınızda çalışır)
BYOB — her müşterinin kendi bucket'ı
Gömülebilir dosya yöneticisi arayüzü
Açık kaynak (MIT)
Depolama / yükleme başına SaaS ücreti yok
Çoklu depolama (S3 / R2 / yerel)
Kiracı başına yerleşik jeton kapsamı

Karşılaştırma tipik varsayılan sunumları yansıtır; her ürün kendi alanında öne çıkar. FluxFiles'ın nişi gömülebilir, kendi sunucusunda ve bring-your-own-bucket birleşimidir.

Satılabilir ürünler

Dosya yönetmenin ötesinde — onları satın ve alın

Ücretsiz çekirdek bir dosya yöneticisi gömer. Ücretli modüller onu müşterilerinizin ödediği ürünlere dönüştürür.

Pro

Branded Share

Herhangi bir dosya veya klasöre markalı, self-servis bir bağlantı gönderin — süre, parola, indirme limiti ve görüntüleme analitiği ile. Sizin logonuz, sizin alan adınız.

  • Süreli / parola korumalı bağlantılar
  • İndirme limitleri + görüntüleme analitiği
  • Kapsamlı jeton — alıcı için hesap gerekmez
Pro

Upload Portals

Doğrudan depolamanıza düşen herkese açık bir «bize dosyalarınızı gönderin» sayfası. Ajanslar, fotoğrafçılar ve müşteri katılımı için mükemmel — yükleyen için hesap gerekmez.

  • Herkese açık portal → kovanız
  • Portal başına boyut / tür / süre limitleri
  • Anonim yükleme, sahip kapsamlı
Enterprise

Compliance bundle

Virüs taraması, C2PA içerik kökeni ve denetim saklama — düzenlemeye tabi ve kurumsal dağıtımlar için.

WordPress

Üç yerine tek eklenti

WordPress'te FluxFiles hem bir müşteri dosya portalı HEM de bir medya yöneticisidir — ayrı klasör, bulut ve offload eklentilerinin yerini alır.

Yetenek FluxFiles FileBird WP Media Folder WP Offload
Medya klasörleri
S3 / R2 / SFTP depolama
Offload + URL yeniden yazma
Müşteri yükleme portalları
Markalı paylaşım bağlantıları
Tipik fiyat Tek lisans $49/yıl $69/yıl ücretli

Klasörler + bulut + offload + müşteri portalları tek pakette — FileBird ve WP Media Folder ve WP Offload'u ayrı ödemek yerine.

Fiyatlar

Çekirdek ücretsiz. Yalnızca ücretli modüllere ödeyin.

MIT çekirdeği sonsuza dek ücretsiz. İki amiral gemisi ürüne — Markalı Paylaşım + Yükleme Portalları — ve ötesine yükseltin.

Ücretsiz (Çekirdek)

$0 sonsuza dek

Tam MIT dosya yöneticisi, kendi sunucunuzda.

Başla
  • Local / S3 / R2 / SFTP depolama, JWT kapsamı
  • İstek üzerine WebP + AVIF + görsel/PDF optimizasyonu
  • Filigran, sürüm kancası, kullanım paneli, AI otomatik etiket
  • 7 adaptör + BYO-embed terminal / PDF / office / e-imza
En popüler

Pro

$79 /yıl

Müşterilerle dosya gönderip alın.

YakındaYakında
  • Ücretsizdeki her şey
  • Markalı Paylaşım — süreli / parolalı / limitli / analitikli bağlantılar
  • Yükleme Portalları — herkese açık «bize dosya gönderin», hesapsız
  • Öncelikli destek + güncellemeler

Studio

$299 /yıl

FluxFiles üzerine bir ürün kurun.

YakındaYakında
  • Pro'daki her şey
  • Sürümleme + Webhooks (Zapier/Make/n8n)
  • AI Görü + OCR (kendi anahtarınız)
  • Çok kiracılı kademeler + beyaz etiket

Enterprise

Özel

Uyumluluk, ölçekte.

Satışa ulaşın
  • Studio'daki her şey
  • Virüs taraması + C2PA köken + denetim saklama
  • SSO köprüsü + özel katılım
  • SLA + öncelikli yol haritası

Sabit ücret, sınırsız site — dosya/çağrı başına ücret yok. Yıllık ~2 ay tasarruf; ömür boyu seçeneği mevcut. 14 gün iade. Alıcı KDV'si ödemede işlenir.

SSS

Sıkça sorulan sorular

FluxFiles ücretsiz ve açık kaynak mı?
Evet — MIT lisanslı, ücretsiz olarak kendiniz barındırabilir, Composer ve npm'de yayınlanmıştır. Ücretli kademe veya kullanım sınırı yok.
Dosyalarım nerede saklanıyor?
Nereyi gösterirseniz orada: yerel disk, AWS S3, Cloudflare R2 veya SFTP üzerinden uzak bir sunucu — hepsi Flysystem üzerinden. Depolama sizindir — hiçbir şey üçüncü taraftan geçmez.
Kimlik doğrulama nasıl çalışır?
Durumsuz JWT (HS256): sunucuda ayrıntılı talep'lerle (izinler, diskler, yol kapsamı, limitler) bir token üretirsiniz; böylece her kullanıcı yalnızca izin verdiğinizi görür.
Kullanıcılarımın FluxFiles hesabına ihtiyacı var mı?
Hayır. FluxFiles kendi uygulamanızın verdiği JWT'ye güvenir, böylece mevcut kimlik doğrulamanıza doğrudan bağlanır — ayrı bir kullanıcı sistemi yok.
Mevcut uygulamama veya editörüme gömebilir miyim?
Evet — iframe + JS SDK her sayfada çalışır; Laravel, WordPress, React, Vue/Nuxt, CKEditor 4, TinyMCE ve Summernote için resmi adaptörler vardır.
Çalıştırmak için neye ihtiyacım var?
Birkaç yaygın eklenti ile PHP 8.1+ ve Composer. Bir diske yönlendirin, bir secret ve izin verilen origin'leri ayarlayın, ardından sunun — küçük bir VPS'te çalışır.
Ücretli katmanlar neleri içerir?
Çekirdek ücretsizdir (MIT). Ücretli katmanlar portal modüllerini açar: Markalı Paylaşım (süreli/parolalı bağlantılar) ve Yükleme Portalları (herkese açık «bize dosya gönderin»), ayrıca üst katmanlarda Sürümleme, Webhooks, AI Görü/OCR ve bir uyumluluk paketi.
Lisansı nasıl etkinleştiririm?
Satın alma sonrası bir lisans anahtarı alırsınız. Ortamınızda FLUXFILES_LICENSE_KEY ayarlayın; modüller açılır — çevrimdışı doğrulanır (phone-home yok), yani air-gapped ortamda da çalışır.
Tek seferlik mi abonelik mi?
İkisi de. Bağlayıcı olmayan bir başlangıç için aylık, tasarruf için yıllık (~2 ay ücretsiz) veya tek seferlik ömür boyu. Süresi dolan lisans mevcut sürümünüzü çalıştırmaya devam eder; yalnızca güncelleme/destek duraklar.

FluxFiles'ı gömmeye hazır mısınız?

Üretime hazır bir dosya yöneticisini uygulamanıza dakikalar içinde ekleyin — çerçeve bağımlılığı olmadan, MIT lisanslı.