完全自研重构的次世代游戏服全生态后端。
| 技术 | 说明 |
|---|---|
| NestJS 11 | Node.js 服务端框架 |
| Prisma 7 | ORM |
| PostgreSQL | 数据库 |
| Redis 7 | 缓存(角色/会话/限流等) |
| Zod 4 | 校验 |
| Oxlint/Oxfmt | 代码检查 / 格式化 |
在项目根目录创建 .env 文件(参考 .env.example),可配置项如下:
| 变量名 | 说明 | 默认值 |
|---|---|---|
DATABASE_URL |
PostgreSQL 连接地址 | (必填) |
JWT_SECRET |
JWT 密钥(至少 32 位) | (必填) |
REDIS_URL |
Redis 连接地址 | (必填) |
JWT_EXPIRES_IN |
Access token 过期时间 | 15m |
JWT_REFRESH_EXPIRES_IN |
Refresh token 过期时间 | 7d |
PORT |
服务端口 | 3000 |
CORS_ORIGIN |
CORS 允许来源 | http://localhost:3000 |
CORS_METHODS |
CORS 允许方法 | GET,HEAD,PUT,PATCH,POST,DELETE |
CORS_CREDENTIALS |
是否允许携带凭据 | true |
THROTTLE_TTL |
限流窗口(ms) | 60000 |
THROTTLE_LIMIT |
每窗口最大请求数 | 60 |
UPLOAD_DIR |
文件上传存储目录 | uploads |
UPLOAD_MAX_FILE_SIZE |
单文件最大大小 | 10485760(10 MB) |
UPLOAD_CHUNK_SIZE |
分片大小 | 5242880(5 MB) |
UPLOAD_EXPIRY_HOURS |
未完成上传会话过期时间 | 24 |
UPLOAD_CLEANUP_INTERVAL |
清理过期上传会话的间隔 | 5(分钟) |
SMTP_HOST |
SMTP 服务器地址 | smtp.aliyun.com |
SMTP_PORT |
SMTP 端口 | 465 |
SMTP_USER |
SMTP 用户名 | 空 |
SMTP_PASS |
SMTP 密码 / 授权码 | 空 |
SMTP_FROM |
发件人邮箱 | noreply@example.com |
REQUIRE_EMAIL_VERIFICATION |
是否启用邮箱验证码校验 | false |
- 当
SMTP_USER或SMTP_PASS为空时,系统不会真正发邮件。 - 如果你开启了
REQUIRE_EMAIL_VERIFICATION=true,请同时正确配置SMTP_HOST、SMTP_PORT、SMTP_USER、SMTP_PASS、SMTP_FROM。 - 常见情况是
SMTP_PASS填邮箱服务商提供的 SMTP 授权码,而不是登录密码。
在项目根目录放置 sensitive-words.txt,每行一个敏感词。词库需自行寻找,项目不附带。
pnpm install
pnpm prisma:generate
pnpm start:dev首次使用前请先手动导入
init.sql初始化数据库。
app service 通过 env_file: .env 加载全部配置。若在 Docker 下运行,.env 中的 DATABASE_URL 和 REDIS_URL 主机名需使用 Docker 服务名:
DATABASE_URL="postgresql://root:password@db:5432/rst_next_server?schema=public"
REDIS_URL="redis://:password@redis:6379"db / redis service 的配置需要在 docker-compose.yml 中单独填写,与 .env 无关。
docker compose up -d| 宿主机路径 | 容器路径 | 说明 |
|---|---|---|
/opt/rst-next/backend/pgdata |
/var/lib/postgresql/data |
PostgreSQL 数据 |
/opt/rst-next/backend/redisdata |
/data |
Redis 数据 |
/opt/rst-next/backend/uploads |
/app/uploads |
上传文件 |
/opt/rst-next/backend/logs |
/app/logs |
日志 |
| 命令 | 说明 |
|---|---|
pnpm start:dev |
启动开发服务器 |
pnpm build |
构建生产版本 |
pnpm start:prod |
启动生产版本 |
pnpm test |
运行单元测试 |
pnpm test:e2e |
运行 E2E 测试 |
pnpm lint |
代码检查(oxlint) |
pnpm format |
代码格式化(oxfmt) |
pnpm prisma:gen |
生成 Prisma 客户端 |
