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.
Çalışırken görün
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.
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.
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,
}); BYOB ile birleştirerek her kiracıyı kendi bucket'ına yerleştirin.
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.
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ış.
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
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.
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.
Başkalarının unuttuğu şeyler için tasarlandı
| Ö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 | ✓ | ✗ | ⚠ | ✗ | ✗ |
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.
| 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.
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
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ı
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)
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
Pro
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
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
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ı?
Dosyalarım nerede saklanıyor?
Kimlik doğrulama nasıl çalışır?
Kullanıcılarımın FluxFiles hesabına ihtiyacı var mı?
Mevcut uygulamama veya editörüme gömebilir miyim?
Çalıştırmak için neye ihtiyacım var?
Ücretli katmanlar neleri içerir?
Lisansı nasıl etkinleştiririm?
Tek seferlik mi abonelik mi?
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ı.