109 lines
1.9 KiB
Markdown
109 lines
1.9 KiB
Markdown
# Backend
|
|
|
|
这是 `CollabLedger` 的后端实现,按 Vercel 官方的 Hono 方式组织:入口放在 `src/index.ts`,默认导出 `app`,部署到 `Vercel Functions` 的 `Node.js runtime`,并保持现有前端 API 协议兼容。
|
|
|
|
## 启动
|
|
|
|
```bash
|
|
pnpm install
|
|
pnpm dev:backend
|
|
```
|
|
|
|
默认本地地址:
|
|
|
|
```text
|
|
http://localhost:3000
|
|
```
|
|
|
|
`pnpm dev:backend` 使用直接的 Node 开发入口:
|
|
|
|
```bash
|
|
pnpm dev:backend
|
|
```
|
|
|
|
如果要按 Vercel 官方方式本地模拟,需要先全局安装 Vercel CLI:
|
|
|
|
```bash
|
|
pnpm add -g vercel
|
|
```
|
|
|
|
然后执行:
|
|
|
|
```bash
|
|
pnpm dev:backend:vercel
|
|
```
|
|
|
|
## 环境变量
|
|
|
|
先复制:
|
|
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
|
|
最少需要配置:
|
|
|
|
- `DATABASE_URL`
|
|
- `REDIS_URL`
|
|
- `JWT_SECRET`
|
|
- `UPLOAD_DIR`
|
|
|
|
## Vercel CLI 部署
|
|
|
|
后端作为独立的 Vercel Project 部署。先全局安装并登录 Vercel CLI:
|
|
|
|
```bash
|
|
pnpm add -g vercel
|
|
vercel login
|
|
```
|
|
|
|
进入后端目录并关联项目:
|
|
|
|
```bash
|
|
cd backend
|
|
vercel link
|
|
```
|
|
|
|
配置生产环境变量:
|
|
|
|
```bash
|
|
vercel env add DATABASE_URL production
|
|
vercel env add REDIS_URL production
|
|
vercel env add JWT_SECRET production
|
|
vercel env add PUBLIC_FILE_BASE_URL production
|
|
```
|
|
|
|
连接串示例:
|
|
|
|
```env
|
|
DATABASE_URL=mysql://user:password@host:3306/collab_ledger
|
|
REDIS_URL=redis://:password@host:6379
|
|
```
|
|
|
|
如果 Redis 服务要求 TLS,使用 `rediss://`。Vercel Functions 不能连接本机 `127.0.0.1`、`localhost` 或 Docker 内网地址。
|
|
|
|
部署:
|
|
|
|
```bash
|
|
vercel deploy --prod
|
|
```
|
|
|
|
## 当前状态
|
|
|
|
已包含:
|
|
|
|
- Hono + Vercel 官方入口
|
|
- 统一响应/错误协议
|
|
- JWT + Redis 会话
|
|
- 登录/注册/验证码/当前用户
|
|
- 合作记录 CRUD
|
|
- 用户/角色/菜单/配置/公告/日志/监控接口骨架
|
|
|
|
仍需继续完善:
|
|
|
|
- 动态路由 `/getRouters`
|
|
- 更完整的权限与数据范围控制
|
|
- Excel 导出
|
|
- 在线用户、Redis 监控细节
|
|
- 上传文件持久化改造为对象存储或 Vercel Blob
|