Files
whale-town-end-v2/DEPLOYMENT.md
2026-07-22 00:45:16 +08:00

48 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 V2 后端部署
## 1. 生产配置
```bash
cp .env.production.example .env
openssl rand -hex 32 # 分别用于 JWT_SECRET、ADMIN_TOKEN_SECRET 和 ZULIP_API_KEY_ENCRYPTION_KEY
```
必须填写 MySQL、Redis 和三个随机密钥。REST API 使用 `3000` 端口,原生 WebSocket 使用 `3001` 端口。不要把两个端口配成相同值。
## 2. 数据库
部署前先备份现有数据库。v2 不会自动修改表结构(`synchronize: false`)。根据目标库的现有结构审核并执行仓库内的增量 SQL
```bash
mysql -u <user> -p <database> < src/core/db/player_assets/create-player-assets-tables.sql
mysql -u <user> -p <database> < src/core/db/user_wallets/create-user-wallets-tables.sql
mysql -u <user> -p <database> < src/business/notice/migrations/create-notices-table.sql
```
## 3. 构建与启动
```bash
pnpm install --frozen-lockfile
pnpm run build
VITE_API_BASE_URL=https://whaletownend.xinghangee.icu pnpm --filter whale-town-admin run build
pm2 start ecosystem.config.js
pm2 save
```
## 4. 反向代理
`deploy/nginx/whaletownend-v2.conf.example` 将 REST 转发到 `3000`,将 `/game` WebSocket 转发到 `3001`。管理端可使用 `deploy/nginx/whaletown-admin-v2.conf.example` 作为独立静态站点。
启用 HTTPS 后验证:
```bash
curl https://whaletownend.xinghangee.icu/
curl https://whaletownend.xinghangee.icu/api-docs
curl --http1.1 -i \
-H 'Connection: Upgrade' \
-H 'Upgrade: websocket' \
-H 'Sec-WebSocket-Version: 13' \
-H 'Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==' \
https://whaletownend.xinghangee.icu/game
```