Skip to content
This repository was archived by the owner on Aug 9, 2026. It is now read-only.
racespeedtimePublic archive

About

有生之年系列:游戏模式完整体的重构版后端(未完成)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

RST Logo

rst-backend

完全自研重构的次世代游戏服全生态后端。

技术栈

技术 说明
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 说明

  • 当 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 初始化数据库。

Docker 构建

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 客户端

License

MIT

About

有生之年系列:游戏模式完整体的重构版后端(未完成)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages