कहीं भी एम्बेड होने वाला फ़ाइल मैनेजर
PHP ≥ 8.1 + Flysystem 3। Alpine.js UI। Local, S3, Cloudflare R2, SFTP। कुछ लाइनों के JavaScript से एम्बेड करें।
इसे एक्शन में देखें
आपके ग्राहकों की फ़ाइलें आपके ग्राहकों के बकेट में ही रहती हैं
FluxFiles एक एम्बेड-योग्य फ़ाइल मैनेजर है जिसमें हर टेनेंट अपना S3/R2 बकेट जोड़ता है — और आप न उनका डेटा रखते हैं, न उनके क्रेडेंशियल।
-
डेटा संप्रभुता
फ़ाइलें ग्राहक के अपने क्लाउड अकाउंट और रीजन में रहती हैं — GDPR, अनुपालन और एंटरप्राइज़ खरीद के लिए बना।
-
रेस्ट पर शून्य डेटा, शून्य क्रेडेंशियल
बकेट क्रेडेंशियल JWT के अंदर AES-256-GCM से एन्क्रिप्ट होते हैं और केवल रनटाइम पर डिक्रिप्ट होते हैं — कभी डेटाबेस या लॉग में नहीं लिखे जाते।
-
शून्य तक स्केल होने वाली स्टोरेज लागत
स्टोरेज और एग्रेस हर ग्राहक को बिल होते हैं, आपको नहीं। ऐसा कोई स्टोरेज बिल नहीं जो आपके यूज़रबेस के साथ बढ़े।
-
स्टेटलेस और एम्बेड-योग्य
कोई केंद्रीय डेटाबेस नहीं। picker को iframe या SDK से किसी भी ऐप में डालें; आपका बैकएंड एक स्कोप्ड, अल्पकालिक टोकन जारी करता है।
यह कैसे काम करता है: आपका ऐप टेनेंट के बकेट क्रेडेंशियल को एक अल्पकालिक JWT में एन्क्रिप्ट करता है (HKDF-SHA256 + AES-256-GCM)। FluxFiles उन्हें केवल अनुरोधित ऑपरेशन चलाने के लिए डिक्रिप्ट करता है।
हर टेनेंट के लिए एक टोकन — अपने-अपने नियमों के साथ
FluxFiles स्टेटलेस है: आपका बैकएंड जो JWT जारी करता है वही उस टेनेंट का कॉन्फ़िग है। स्टोरेज पाथ, फ़ाइल साइज़ सीमा, कोटा, फ़ाइल संख्या, अनुमत प्रकार, अनुमतियाँ — सब सर्वर पर लागू। न प्रति-टेनेंट कॉन्फ़िग फ़ाइल, न रीस्टार्ट।
// 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 के साथ मिलाकर हर टेनेंट को उसके अपने बकेट पर रखें।
फ़ाइल फ़ीचर बनाने वाली टीमों के लिए
अगर आपके प्रोडक्ट को अपलोड चाहिए, तो FluxFiles सहजता से जुड़ जाता है — आपको अपने ग्राहकों के डेटा का संरक्षक बनाए बिना।
SaaS और मल्टी-टेनेंट ऐप्स
हर ग्राहक को उसके अपने बकेट पर फ़ाइल मैनेजर दें। प्रति-टेनेंट टोकन स्कोपिंग और डेटा संप्रभुता अंतर्निहित हैं।
एजेंसियाँ और फ्रीलांसर
हर प्रोजेक्ट के लिए स्टोरेज इन्फ्रा खड़ा किए बिना हर ग्राहक को साफ-सुथरी मीडिया लाइब्रेरी दें।
CMS और एडिटर इंटीग्रेशन
iframe SDK के ज़रिए CKEditor, TinyMCE, Summernote या अपने एडिटर में मीडिया पिकर जोड़ें।
आंतरिक टूल्स और डैशबोर्ड
एडमिन पैनल में अपलोड, प्रीव्यू और ऑडिट किए गए फ़ाइल ऑपरेशन एक दोपहर में जोड़ें।
एक आधुनिक फ़ाइल मैनेजर के लिए सब कुछ
लचीलापन चाहने वाले डेवलपर्स के लिए बनाया गया।
मल्टी-स्टोरेज
Local, AWS S3, Cloudflare R2, SFTP — Flysystem v3 के ज़रिए। कॉन्फ़िग से बदलें।
कहीं भी एम्बेड करें
iframe + postMessage SDK। स्टैंडअलोन UI Alpine.js (बिना बिल्ड)। किसी भी फ्रेमवर्क के साथ।
JWT ऑथ + स्कोपिंग
प्रति-यूज़र पाथ प्रीफ़िक्स, अनुमतियाँ, डिस्क व्हाइटलिस्ट, owner-only मोड।
AI ऑटो-टैग
Claude / OpenAI vision — ऑटो alt टेक्स्ट, टाइटल, टैग्स।
इमेज क्रॉप
आस्पेक्ट रेशियो प्रीसेट के साथ इनलाइन क्रॉप टूल।
इमेज ऑप्टिमाइज़ेशन
ऑटो WebP वेरिएंट — thumb, medium, large।
प्रीसाइन्ड अपलोड
ब्राउज़र सीधे S3/R2 पर अपलोड करता है — आपके सर्वर पर ज़ीरो बैंडविड्थ।
चंक अपलोड
10MB से बड़ी फ़ाइलों के लिए S3 मल्टीपार्ट।
फुल-टेक्स्ट सर्च
नाम, टाइटल, टैग्स में इंडेक्स्ड सर्च — फ़ाइल-आधारित, कोई डेटाबेस नहीं।
बल्क ऑपरेशंस
मल्टी-सेलेक्ट मूव, कॉपी, डिलीट, डाउनलोड।
क्रॉस-डिस्क ट्रांसफर
Local ↔ S3 ↔ R2 के बीच कॉपी/मूव।
ट्रैश
रिकवर करने योग्य डिलीट, ऑटो-पर्ज।
SEO मेटाडेटा
शीर्षक, alt, कैप्शन, टैग — क्लाउड पर S3 ऑब्जेक्ट मेटाडेटा, लोकल पर sidecar JSON। फुल-टेक्स्ट सर्च।
डार्क मोड
UI और SDK में लाइट / डार्क / ऑटो।
16 भाषाएँ
डिफ़ॉल्ट अंग्रेज़ी। SDK, URL (?locale=), या FLUXFILES_LOCALE से सेट करें। अरबी के लिए RTL।
ऑडिट लॉग
सभी राइट एक्शन लॉग।
रेट लिमिटिंग
प्रति-यूज़र टोकन बकेट API सुरक्षा।
स्टोरेज कोटा
JWT claims द्वारा प्रति-यूज़र सीमा।
BYOB बकेट
यूज़र अपना S3/R2 जोड़ते हैं — JWT में क्रेडेंशियल एन्क्रिप्ट (AES-256-GCM)।
डुप्लिकेट पहचान
SHA-256 मैच पर अतिरिक्त अपलोड स्किप, जब तक फोर्स ओवरराइट न हो।
SDK टोकन रिफ़्रेश
401 पर onTokenRefresh — एकीकृत रिफ़्रेश, रीट्राय, और updateToken()।
Bucket Doctor
किसी भी S3/R2 डिस्क का निदान करें — क्रेडेंशियल, रीड/राइट/डिलीट, presign, CORS, multipart — पेस्ट करने के लिए तैयार IAM और CORS फिक्स के साथ। BYOB बकेट मिनटों में जोड़ें।
Node token SDK
@fluxfiles/node के साथ किसी भी JS बैकएंड (Express, Next.js, Nuxt) से FluxFiles टोकन बनाएं — PHP कोर के साथ बाइट-संगत। टोकन जारी करने के लिए PHP की ज़रूरत नहीं।
SFTP डिस्क
S3/R2 के बाद तीसरा ड्राइवर — किसी भी VPS या होस्ट को फ़ाइल मैनेजर बनाएं।
कोड / config एडिटर
ब्राउज़र में टेक्स्ट व कॉन्फ़िग फ़ाइलें (wp-config.php, .env) संपादित करें, cPanel जैसा।
ज़िप और एक्सट्रैक्ट
चयन को zip में डाउनलोड करें या आर्काइव निकालें — zip-slip व bomb से सुरक्षित।
वॉटरमार्क
प्रीव्यू सुरक्षा हेतु टेक्स्ट या लोगो वॉटरमार्क तुरंत लगाएं — मूल फ़ाइल अछूती।
ऑन-डिमांड WebP + AVIF
किसी भी आकार की छवि को एक URL के ज़रिए कैश्ड AVIF/WebP के रूप में परोसें (Accept-नेगोशिएटेड), तैयार रेस्पॉन्सिव srcset के साथ।
SFTP अनुमतियाँ
cPanel जैसे डायलॉग से SFTP डिस्क पर Unix फ़ाइल अनुमतियाँ (chmod) बदलें।
उपयोग डैशबोर्ड
स्टोरेज एक नज़र में — कोटा के साथ प्रकार व फ़ोल्डर अनुसार विवरण।
मीडिया प्रीव्यू
इनलाइन इमेज, वीडियो, ऑडियो व PDF प्रीव्यू; निजी लोकल मीडिया सुरक्षित स्ट्रीम।
2 मिनट में चालू करें
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= इनके साथ काम करता है
इंटीग्रेशन
आपके स्टैक के लिए ड्रॉप-इन एडाप्टर
आधिकारिक एडाप्टर FluxFiles को उन्हीं फ्रेमवर्क और एडिटर में नेटिव रूप से एम्बेड करते हैं जिन्हें आप पहले से उपयोग करते हैं।
एम्बेड
कुछ ही लाइनों में एम्बेड करें
fluxfiles.js लोड करें, सर्वर पर बना JWT पास करें, और किसी भी पेज में पूरा फ़ाइल मैनेजर — या फ़ाइल-पिकर मोडल — जोड़ दें।
<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)}
/>
);
} टोकन सर्वर पर बनते हैं — अपना सीक्रेट कभी ब्राउज़र को न भेजें।
जो दूसरे भूल गए, उसके लिए बनाया गया
| फ़ीचर | FluxFiles | elFinder | Laravel-FM | RichFilemanager | Responsive FM |
|---|---|---|---|---|---|
| S3 + R2 + लोकल + SFTP | ✓ | ⚠ | ⚠ | ⚠ | ✗ |
| किसी भी फ्रेमवर्क में एम्बेड | ✓ | ⚠ | ✗ | ⚠ | ✗ |
| JWT ऑथ + स्कोपिंग | ✓ | ✗ | ✗ | ✗ | ✗ |
| SEO मेटाडेटा | ✓ | ✗ | ✗ | ✗ | ✗ |
| AI ऑटो-टैग | ✓ | ✗ | ✗ | ✗ | ✗ |
| इमेज क्रॉप | ✓ | ✓ | ✗ | ✗ | ✗ |
| चंक अपलोड | ✓ | ✗ | ✗ | ✗ | ✗ |
| फुल-टेक्स्ट सर्च | ✓ | ✗ | ✗ | ✗ | ✗ |
| डार्क मोड | ✓ | ✗ | ⚠ | ✗ | ✗ |
| 16 भाषाएँ | ✓ | ✓ | ✗ | ✗ | ✗ |
| PHP ≥ 8.1 | ✓ | ✓ | ✗ | ✓ | ✓ |
| सक्रिय रूप से मेंटेन | ✓ | ✓ | ⚠ | ✗ | ✗ |
| मॉडर्न UI | ✓ | ✗ | ⚠ | ✗ | ✗ |
सेल्फ-होस्टेड और एम्बेड-योग्य — एक और अपलोड SaaS नहीं
होस्टेड फ़ाइल API अच्छे हैं, पर वे आपका डेटा रखते हैं और प्रति उपयोग बिल करते हैं। FluxFiles आपके स्टैक में चलता है, हर टेनेंट अपने बकेट पर।
| क्षमता | FluxFiles | Filestack | Uploadcare | Cloudinary | Supabase Storage |
|---|---|---|---|---|---|
| सेल्फ-होस्टेड (आपके इन्फ्रा में चलता है) | ✓ | ✗ | ✗ | ✗ | ⚠ |
| BYOB — हर ग्राहक का अपना बकेट | ✓ | ⚠ | ⚠ | ✗ | ✗ |
| एम्बेड-योग्य फ़ाइल-मैनेजर UI | ✓ | ✓ | ✓ | ⚠ | ✗ |
| ओपन सोर्स (MIT) | ✓ | ✗ | ✗ | ✗ | ✓ |
| कोई प्रति-स्टोरेज / प्रति-अपलोड SaaS शुल्क नहीं | ✓ | ✗ | ✗ | ✗ | ⚠ |
| मल्टी-स्टोरेज (S3 / R2 / लोकल) | ✓ | ⚠ | ✗ | ✗ | ✗ |
| प्रति-टेनेंट टोकन स्कोपिंग अंतर्निहित | ✓ | ⚠ | ⚠ | ⚠ | ⚠ |
तुलना सामान्य डिफ़ॉल्ट पेशकशों को दर्शाती है; हर उत्पाद अपने क्षेत्र में उत्कृष्ट है। FluxFiles का niche एम्बेड-योग्य, सेल्फ-होस्टेड, ब्रिंग-योर-ओन-बकेट संयोजन है।
बिक्री योग्य उत्पाद
फ़ाइलें प्रबंधित करने से आगे — उन्हें बेचें और प्राप्त करें
मुफ़्त कोर एक फ़ाइल मैनेजर एम्बेड करता है। सशुल्क मॉड्यूल इसे उन उत्पादों में बदल देते हैं जिनके लिए आपके ग्राहक भुगतान करते हैं।
Branded Share
किसी भी फ़ाइल या फ़ोल्डर पर अपने ब्रांड वाला स्व-सेवा लिंक भेजें — समाप्ति, पासवर्ड, डाउनलोड सीमा और व्यू एनालिटिक्स के साथ। आपका लोगो, आपका डोमेन।
- समाप्त होने वाले / पासवर्ड-सुरक्षित लिंक
- डाउनलोड सीमाएँ + व्यू एनालिटिक्स
- स्कोप्ड टोकन — प्राप्तकर्ता के लिए खाता नहीं
Upload Portals
एक सार्वजनिक «हमें अपनी फ़ाइलें भेजें» पेज जो सीधे आपके स्टोरेज में गिरता है। एजेंसियों, फ़ोटोग्राफ़रों और ग्राहक ऑनबोर्डिंग के लिए बढ़िया — अपलोडकर्ता के लिए खाता नहीं।
- सार्वजनिक पोर्टल → आपका बकेट
- प्रति पोर्टल आकार / प्रकार / समाप्ति सीमाएँ
- अनाम अपलोड, स्वामी-स्कोप्ड
Compliance bundle
वायरस स्कैन, C2PA सामग्री उद्गम और ऑडिट प्रतिधारण — विनियमित और एंटरप्राइज़ परिनियोजन के लिए।
WordPress
तीन के बजाय एक प्लगइन
WordPress पर, FluxFiles एक साथ ग्राहक फ़ाइल पोर्टल और मीडिया मैनेजर है — अलग फ़ोल्डर, क्लाउड और ऑफ़लोड प्लगइनों की जगह।
| क्षमता | FluxFiles | FileBird | WP Media Folder | WP Offload |
|---|---|---|---|---|
| मीडिया फ़ोल्डर | — | |||
| S3 / R2 / SFTP स्टोरेज | — | |||
| ऑफ़लोड + URL पुनर्लेखन | — | — | ||
| ग्राहक अपलोड पोर्टल | — | — | — | |
| ब्रांडेड शेयर लिंक | — | — | — | |
| सामान्य मूल्य | एक लाइसेंस | $49/वर्ष | $69/वर्ष | सशुल्क |
फ़ोल्डर + क्लाउड + ऑफ़लोड + ग्राहक पोर्टल एक में — FileBird और WP Media Folder और WP Offload को अलग-अलग खरीदने के बजाय।
मूल्य
कोर मुफ़्त। केवल सशुल्क मॉड्यूल के लिए भुगतान करें।
MIT कोर हमेशा के लिए मुफ़्त। दो प्रमुख उत्पादों — Branded Share + Upload Portals — और उससे आगे अपग्रेड करें।
मुफ़्त (कोर)
पूर्ण MIT फ़ाइल मैनेजर, स्व-होस्टेड।
शुरू करें- Local / S3 / R2 / SFTP स्टोरेज, JWT स्कोपिंग
- ऑन-डिमांड WebP + AVIF + इमेज/PDF अनुकूलन
- वॉटरमार्क, वर्शन हुक, उपयोग डैशबोर्ड, AI ऑटो-टैग
- 7 एडाप्टर + BYO-embed टर्मिनल / PDF / office / ई-हस्ताक्षर
Pro
ग्राहकों के साथ फ़ाइलें भेजें और प्राप्त करें।
जल्द आ रहाजल्द आ रहा- मुफ़्त का सब कुछ
- Branded Share — समाप्ति / पासवर्ड / सीमा / एनालिटिक्स वाले लिंक
- Upload Portals — सार्वजनिक «हमें फ़ाइलें भेजें», बिना खाता
- प्राथमिकता सहायता + अपडेट
Studio
FluxFiles पर उत्पाद बनाएं।
जल्द आ रहाजल्द आ रहा- Pro का सब कुछ
- वर्शनिंग + Webhooks (Zapier/Make/n8n)
- AI विज़न + OCR (अपनी कुंजी)
- मल्टी-टेनेंट स्तर + व्हाइट-लेबल
Enterprise
अनुपालन, बड़े पैमाने पर।
बिक्री से संपर्क करें- Studio का सब कुछ
- वायरस स्कैन + C2PA उद्गम + ऑडिट प्रतिधारण
- SSO ब्रिज + कस्टम ऑनबोर्डिंग
- SLA + प्राथमिकता रोडमैप
एकमुश्त शुल्क, असीमित साइटें — प्रति फ़ाइल/कॉल शुल्क नहीं। वार्षिक ~2 माह बचाता है; लाइफटाइम विकल्प उपलब्ध। 14-दिन रिफंड। खरीदार का VAT चेकआउट पर।
सामान्य प्रश्न
अक्सर पूछे जाने वाले प्रश्न
क्या FluxFiles मुफ़्त और ओपन सोर्स है?
मेरी फ़ाइलें कहाँ संग्रहीत होती हैं?
प्रमाणीकरण कैसे काम करता है?
क्या मेरे उपयोगकर्ताओं को FluxFiles खाता चाहिए?
क्या मैं इसे अपने मौजूदा ऐप या एडिटर में एम्बेड कर सकता हूँ?
इसे चलाने के लिए क्या चाहिए?
सशुल्क स्तरों में क्या शामिल है?
लाइसेंस कैसे सक्रिय करें?
एकमुश्त या सदस्यता?
FluxFiles को एम्बेड करने के लिए तैयार हैं?
मिनटों में अपने ऐप में प्रोडक्शन-रेडी फ़ाइल मैनेजर जोड़ें — कोई फ्रेमवर्क लॉक-इन नहीं, MIT लाइसेंस।