আর্কিটেকচার ওভারভিউ
সিস্টেম আর্কিটেকচার
┌──────────────────────────────────────────────────────────────────┐
│ ইউজার ইন্টারফেস লেয়ার │
│ Web UI (React) · S3 ক্লায়েন্ট (rclone, AWS CLI) · WebDAV │
└──────────────┬──────────────────────┬────────────────┬───────────┘
│ │ │
┌──────▼──────┐ ┌──────▼──────┐ ┌─────▼──────┐
│ REST API │ │ S3 API │ │ WebDAV │
│ :5212 │ │ :5213 │ │ :5214 │
└──────┬──────┘ └──────┬──────┘ └─────┬──────┘
│ │ │
┌──────▼──────────────────────▼────────────────▼──────┐
│ Gin Router │
│ Middleware: CORS → Auth → Rate Limit │
└──────────┬───────────────────────────────────────────┘
│
┌──────────▼───────────────────────────────────────────┐
│ সার্ভিস লেয়ার │
│ Auth · ফাইল ম্যানেজমেন্ট · স্পেস ম্যানেজমেন্ট · শেয়ার│
└──────────┬───────────────────────────────────────────┘
│
┌──────────▼───────────────────────────────────────────┐
│ স্টোরেজ অ্যাবস্ট্রাকশন │
│ ইন-মেমোরি ফাইলসিস্টেম (Inode + Block-ভিত্তিক) │
│ ┌──────────┐ ┌──────────┐ ┌──────────────────────┐ │
│ │ RAM │ │ VRAM │ │ Swap/পার্সিস্টেন্স │ │
│ │ ড্রাইভার │ │ ড্রাইভার│ │ লেয়ার (ঐচ্ছিক) │ │
│ └────┬─────┘ └────┬─────┘ └──────────────────────┘ │
└───────┼─────────────┼─────────────────────────────────┘
│ │
┌───────▼─────────────▼─────────────────────────────────┐
│ ডিভাইস ম্যানেজমেন্ট লেয়ার │
│ mmap / VirtualAlloc / CUDA / NVML │
└───────────────────────────────────────────────────────┘পোর্ট ম্যাপ
| পোর্ট | সার্ভিস | বিবরণ |
|---|---|---|
| 5212 | REST API + Web UI | HTTP API এবং ফ্রন্টএন্ডের জন্য প্রধান পোর্ট |
| 5213 | S3 API | AWS S3-সামঞ্জস্যপূর্ণ প্রোটোকল |
| 5214 | WebDAV | WebDAV প্রোটোকল |
টেক স্ট্যাক
| লেয়ার | প্রযুক্তি |
|---|---|
| ব্যাকএন্ড | Go 1.22+, Gin, ent, golang.org/x/net/webdav |
| ফ্রন্টএন্ড | React 18, TypeScript, Ant Design 5, Zustand, Vite |
| ডাটাবেস | SQLite / PostgreSQL (শুধুমাত্র মেটাডেটা) |
| RAM | mmap (Linux/macOS) / VirtualAlloc (Windows) |
| VRAM | CUDA + NVML (স্টাব, ইন্টিগ্রেশনের জন্য প্রস্তুত) |