Обзор архитектуры
Системная архитектура
┌──────────────────────────────────────────────────────────────────┐
│ Слой пользовательского интерфейса │
│ 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 (заглушка, готова к интеграции) |