Files
whale-town-end-v2/README.md

49 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# WhaleTown End V2
WhaleTown V2 后端是基于 NestJS 的多人小镇服务,包含 REST API、WebSocket 实时通信和 React 管理端。
## 功能
- 账号注册、登录、令牌刷新、密码找回与资料管理。
- 世界聊天、私聊、玩家位置与外观实时同步。
- 商城、钱包、背包、房间家具和排行榜。
- 咖啡店陪伴助手、课程资源与 Zulip 集成。
- 管理员登录、用户管理、操作日志和数据管理。
- 可选的服务端角色皮肤生成流程。
## 要求
- Node.js 20+
- pnpm 9+
- MySQL 和 Redis生产环境
- Python 3启用皮肤生成时
## 运行
```bash
pnpm install --frozen-lockfile
cp .env.example .env
pnpm run build
pnpm run start:prod
```
启动前至少需要在 `.env` 中设置随机的 `JWT_SECRET``ADMIN_TOKEN_SECRET`。启用 Zulip 时还必须设置 `ZULIP_API_KEY_ENCRYPTION_KEY`;若 `ZULIP_DEGRADED_MODE_ENABLED=true`,可以不配置 Zulip 凭据和加密密钥,但 Zulip 集成及 API Key 加密存取功能将不可用。生产环境请从 `.env.production.example` 开始配置,不要直接使用示例值。
API 默认监听 `3000` 端口Swagger 地址为 `/api-docs`
## 管理端
```bash
pnpm --filter whale-town-admin run build
```
管理端的 API 地址通过 `client/.env.local` 中的 `VITE_API_BASE_URL` 配置。
## 部署
生产部署、Nginx、PM2、验收和回滚步骤见 [DEPLOYMENT.md](DEPLOYMENT.md)。
## 安全
仓库不包含 `.env`、访问令牌、SSH 私钥、数据库文件、Redis 数据、日志或生成资产。敏感配置必须通过部署环境注入。