本文档记录了项目设计阶段达成的所有高层架构决策与工作流。
| 层级 | 技术选型 | 说明 |
|---|---|---|
| 前端框架 | Next.js 15 (App Router), TypeScript, Tailwind CSS, shadcn/ui | 全栈 React 框架,提供现代化的 UI 组件。 |
| 后端逻辑 | Next.js Server Actions & Route Handlers | 无状态逻辑设计,支持水平扩展。 |
| 数据库 | PostgreSQL 16 + Drizzle ORM | 高性能关系型数据库,负责结构化数据存储。 |
| 身份认证 | Auth.js (NextAuth v5) | 处理用户登录、Session 管理及身份提供商集成。 |
| 对象存储 | MinIO (S3 兼容) | 私有化部署,用于存储所有媒体文件和文档。 |
| 流媒体服务 | SRS (Simple Realtime Server) | 提供专业的 HLS/WebRTC 流媒体分发。 |
| 异步任务 | Redis + BullMQ | 处理转码、预处理等耗时后台任务的队列系统。 |
| 部署方式 | 手动脚本化部署 (systemd, Nginx) | 高度可控,无 Docker 开销,便于调试和维护。 |
系统采用混合模式,平衡了组织架构的宏观管理与资源访问的微观控制。
逻辑: 用户 $\rightarrow$ 用户组 $\rightarrow$ 角色 $\rightarrow$ 权限
逻辑: 资源 (文件/文件夹) $\leftarrow$ 特定的 ACL 规则
为了保证用户体验,所有媒体处理均采用异步非阻塞模式。
流程: 上传 $\rightarrow$ MinIO (原始文件) $\rightarrow$ BullMQ 队列 $\rightarrow$ FFmpeg Worker $\rightarrow$ SRS (HLS/WebRTC) $\rightarrow$ 前端播放