109 lines
2.0 KiB
Markdown
109 lines
2.0 KiB
Markdown
# Brass Birmingham Linux Native Backend v1 Usable
|
||
|
||
这是一个基于现有客户端协议反推出来的 Linux 原生后端,用来替代原始 Windows 服务端。
|
||
|
||
## 版本定位
|
||
|
||
`v1-usable` 是当前可用的基线版本,重点覆盖:
|
||
|
||
- 登录 / 注册
|
||
- 当前用户信息
|
||
- 房间列表 / 创建 / 加入 / 离开
|
||
- 事件读写
|
||
- `lastSeenRevision` 更新
|
||
|
||
## 目录
|
||
|
||
```text
|
||
linux-native-backend-v1-usable/
|
||
app/
|
||
server.py
|
||
data/
|
||
users.json
|
||
games.json
|
||
run.sh
|
||
docker-compose.yml
|
||
```
|
||
|
||
## 快速启动
|
||
|
||
### Docker Compose
|
||
|
||
```bash
|
||
docker compose up -d --build
|
||
```
|
||
|
||
默认监听 `8765` 端口。
|
||
|
||
### 本机运行
|
||
|
||
```bash
|
||
chmod +x run.sh
|
||
./run.sh
|
||
```
|
||
|
||
也可以手动指定:
|
||
|
||
```bash
|
||
HOST=0.0.0.0 PORT=8765 ./run.sh
|
||
```
|
||
|
||
## Docker 镜像
|
||
|
||
Docker Hub 仓库:
|
||
|
||
```text
|
||
docker.io/sigema/brass-birmingham-backend
|
||
```
|
||
|
||
## 数据持久化
|
||
|
||
用户和房间数据保存在 `data/`:
|
||
|
||
- `data/users.json`
|
||
- `data/games.json`
|
||
|
||
容器方式运行时,建议把该目录挂载出去,避免重建后数据丢失。
|
||
|
||
## 认证
|
||
|
||
支持以下方式:
|
||
|
||
- `Authorization: Bearer fake-token-<user_id>`
|
||
- `access_token: fake-token-<user_id>`
|
||
- `X-User-Id: <user_id>`
|
||
|
||
## API
|
||
|
||
- `POST /login`
|
||
- `POST /login/with/e-mail`
|
||
- `POST /register`
|
||
- `GET /me`
|
||
- `POST /logout`
|
||
- `POST /password/email`
|
||
- `GET /1.0.0/games`
|
||
- `POST /1.0.0/games`
|
||
- `PUT /1.0.0/games/<game_id>/players`
|
||
- `DELETE /1.0.0/games/<game_id>/players`
|
||
- `GET /1.0.0/games/<game_id>/events`
|
||
- `POST /1.0.0/games/<game_id>/events`
|
||
- `DELETE /1.0.0/games/<game_id>/events`
|
||
- `GET /1.0.0/games/<game_id>/events-and-metadata`
|
||
- `POST /1.0.0/games/<game_id>/events-and-metadata`
|
||
- `POST /1.0.0/games/<game_id>/metadata/lastSeenRevision`
|
||
- `POST /1.0.0/devices`
|
||
- `GET /debug/games`
|
||
|
||
## 测试
|
||
|
||
```bash
|
||
python test_local.py
|
||
python test_turn_progression.py
|
||
```
|
||
|
||
## 说明
|
||
|
||
- 这是逆向恢复版实现,不保证覆盖所有隐藏边缘逻辑。
|
||
- 当前版本以“可用”为目标,后续可以继续对齐真实客户端返回结构。
|
||
|